[Bug 1899372] Re: update-grub 10_linux_zfs fails when /usr is a separate filesystem
Tessa
1899372 at bugs.launchpad.net
Tue Feb 2 00:44:24 UTC 2021
I think it's an important use case to support, since it's more than
likely going to be needed once Ubuntu supports ZFS on server installs.
the zfs tools and scripts should definitely be bulletproof'd to handle
any zfs fs configuration, especially around something like this where it
should be easy to fix.
--
You received this bug notification because you are a member of Ubuntu
Foundations Bugs, which is subscribed to grub2 in Ubuntu.
https://bugs.launchpad.net/bugs/1899372
Title:
update-grub 10_linux_zfs fails when /usr is a separate filesystem
Status in grub2 package in Ubuntu:
Incomplete
Status in grubzfs-testsuite package in Ubuntu:
Confirmed
Bug description:
Description: Ubuntu 20.04.1 LTS
Release: 20.04
grub-common: 2.04-1ubuntu26.4
I expect grub-update to create grub.cfg with Linux entries for ZFS.
Instead I am left with an empty list and an unbootable OS.
The output from update-grub:
Sourcing file `/etc/default/grub'
Sourcing file `/etc/default/grub.d/init-select.cfg'
Sourcing file `/etc/default/grub.d/kdump-tools.cfg'
Generating grub configuration file ...
/etc/grub.d/10_linux_zfs: 404: .: Can't open /tmp/zfsmnt.stGSQC/etc/os-release
Found memtest86+ image: /memtest86+.elf
Found memtest86+ image: /memtest86+.bin
done
This is failing because I have a separate ZFS filesystem for /usr.
The 10_linux_zfs script is gathering information from /etc/os-release
which is a symlink to ../usr/lib/os-release.
The first issue I see in 10_linux_zfs is under function get_dataset_info() at line 382:
mount -o noatime,zfsutil -t zfs "${base_dataset}" "${mntdir}"
Since /usr is under a separate filesystem, the symlink would be broken
and the script fails. This should mount /usr as well if it is a
separate filesystem.
The next issue I see is when the script iterates the zsys snapshots at line 514:
for snapshot_dataset in $(zfs list -H -o name -t snapshot "${dataset}"); do
boot_list="${boot_list}$(get_dataset_info ${snapshot_dataset} ${mntdir})\n"
done
You would get a similar error message about os-release.
/etc/grub.d/10_linux_zfs: 410: .: Can't open /.zfs/snapshot/autozsys_oiimb5/etc/os-release
Again, the script should consider reading the /usr snapshot as well if
it is a separate filesystem.
To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/grub2/+bug/1899372/+subscriptions
More information about the foundations-bugs
mailing list