[Bug 1688424] [NEW] grub-mkrelpath returns invalid zfs dataset -> initramfs: mount /root fails

Launchpad Bug Tracker 1688424 at bugs.launchpad.net
Fri May 5 03:08:43 UTC 2017


You have been subscribed to a public bug:

If zfs is used for boot, boot will fail because of bogus information returned by
/usr/bin/grub-mkrelpath.  E.g. if the zfs dataset for / is rpool/ROOT/linux:

# /usr/bin/grub-mkrelpath /
/ROOT/linux@


This leads to a bogus /boot/grub/grub.cfg because /etc/grub.d/10_linux generates a boot entry like this:
linux   /ROOT/linux@/boot/vmlinuz-4.4.0-77-generic root=ZFS=/ROOT/linux ro crashkernel=384M-2G:64M,2G-:128M bootdegraded=true debug=y console=ttyS1,115200  crashkernel=384M-:128M

This in turn causes that initramfs to fail on boot:
...
+ wait_for_udev
+ command -v udevadm
+ udevadm settle
+ modprobe zfs zfs_autoimport_disable=1
+ ZFS_BOOTFS=/ROOT/linux
+ echo /ROOT/linux
+ sed -e s,/.*,,
+ ZFS_RPOOL=
+ delay=0
+ [ 0 -gt 0 ]
+ unset delay
+ zpool import -N 
[   10.922149] SPL: The /etc/hostid file is not found.
[   10.927031] SPL: using hostid 0x00000000
+ ZFS_STDERR=cannot import '': no such pool available
+ ZFS_ERROR=1
+ [ 1 -ne 0 ]
+ panic Command: zpool import -N 
Message: cannot import '': no such pool available
Error: 1

Manually import the root pool at the command prompt and then exit.
Hint: Try:  zpool import -f -R / -N 


Wrong hint BTW, but at least a hint: "zpool import; zpool import ${poolID}|rpool" fixes it.
Anyway, when continuing after an 'exit' it fails with:

...
+ zpool status -L 
+ [ n != y ]
+ log_begin_msg Setting mountpoint=/ on ZFS filesystem /ROOT/linux
+ _log_msg Begin: Setting mountpoint=/ on ZFS filesystem /ROOT/linux ... 
+ [ n = y ]
+ printf Begin: Setting mountpoint=/ on ZFS filesystem /ROOT/linux ... 
Begin: Setting mountpoint=/ on ZFS filesystem /ROOT/linux ... + zfs set mountpoint=/ /ROOT/linux
+ ZFS_STDERR=cannot open '/ROOT/linux': invalid dataset name
+ [ n != y ]
+ log_end_msg
+ _log_msg done.\n
+ [ n = y ]
+ printf done.\n
done.
+ [ n != y ]
+ log_begin_msg Mounting ZFS filesystem /ROOT/linux
+ _log_msg Begin: Mounting ZFS filesystem /ROOT/linux ... 
+ [ n = y ]
+ printf Begin: Mounting ZFS filesystem /ROOT/linux ... 
Begin: Mounting ZFS filesystem /ROOT/linux ... + mount -t zfs -o zfsutil /ROOT/linux /root
+ ZFS_STDERR=filesystem 'ROOT/linux' cannot be mounted, unable to open the dataset
mount: mounting /ROOT/linux on /root failed: No such file or directory
+ ZFS_ERROR=1
+ [ n != y ]
+ log_end_msg
+ _log_msg done.\n
+ [ n = y ]
+ printf done.\n
done.
+ [ 1 -ne 0 ]
+ panic Command: mount -t zfs -o zfsutil /ROOT/linux /root
Message: filesystem 'ROOT/linux' cannot be mounted, unable to open the dataset
mount: mounting /ROOT/linux on /root failed: No such file or directory
Error: 1

Manually mount the root filesystem on /root and then exit.


A 'mount -t zfs -o zfsutil rpool/ROOT/linux /root' fixis it and after an 'exit' the system finally starts.

** Affects: grub2 (Ubuntu)
     Importance: Undecided
         Status: New

-- 
grub-mkrelpath returns invalid zfs dataset -> initramfs: mount /root fails
https://bugs.launchpad.net/bugs/1688424
You received this bug notification because you are a member of Ubuntu Foundations Bugs, which is subscribed to grub2 in Ubuntu.



More information about the foundations-bugs mailing list