Public bug reported:

For ~4 years, this server ran Ubuntu-18.04 with the OS on mirrored SSDs
and all persistent data in a zpool on separate disks. Last week I
upgraded it.  Installation of Ubuntu-22.04 ZFS-root on a new SSD ran
flawlessly. But after importing the persistent data pool, update-grub
(specifically 10_linux_zfs) found the valid kernels but wouldn't create
grub entries for them so /boot/grub/grub.cfg only contained memtest86.
10_linux_zfs's section of grub-mkconfig output is below.

The problem turned out to be a FreeBSD backup I'd zfs-send/rec'd to the
Ubuntu system 2 years ago.  At the time, I added a prefix ("zmule") to
all of the FreeBSD filesystems' mountpoints and turned off "canmount".
Somehow I missed the *actual* root filesystem so it was still set to
mount on '/' with "canmount" enabled - though Ubuntu22.04 wouldn't mount
it on top of /, so I never noticed it.  However, that's what was
confusing /etc/grub.d/10_linux_zfs even though 18.04 was fine with it.
Once I changed FreeBSD's root mountpoint to not '/', update-grub ran as
expected.

I know this is a strange, unusual situation that shouldn't happen, but a
missing /etc/os-release file in one root(ish) filesystem shouldn't block
it from creating entries for valid ones.  If you'd like me to break it
again and run 10_linux_zfs with 'set -x' or similar, I'll be happy to do
that.  (I'm a Linux SRE professionally so breaking stuff is all in a
days work.)

One more note: the bug submission wouldn't let me use "grub-common" as
the package, so I changed that to "grub2" even though, as you can see
below, that's not what's installed.

===================================================================
More detail:

$ lsb_release -rd 
Description:    Ubuntu 22.04 LTS
Release:        22.04
$ apt-cache policy grub-common
grub-common:
  Installed: 2.06-2ubuntu7
  Candidate: 2.06-2ubuntu7
  Version table:
 *** 2.06-2ubuntu7 500
        500 http://us.archive.ubuntu.com/ubuntu jammy/main amd64 Packages
        100 /var/lib/dpkg/status
$ apt-cache policy grub2
grub2:
  Installed: (none)
  Candidate: 2.06-2ubuntu7
  Version table:
     2.06-2ubuntu7 500
        500 http://us.archive.ubuntu.com/ubuntu jammy/universe amd64 Packages

-----------------

### BEGIN /etc/grub.d/10_linux_zfs ###
Found linux image: vmlinuz-5.15.0-27-generic in rpool/ROOT/ubuntu_lva06t
Found initrd image: initrd.img-5.15.0-27-generic in rpool/ROOT/ubuntu_lva06t
Found linux image: vmlinuz-5.15.0-25-generic in rpool/ROOT/ubuntu_lva06t
Found initrd image: initrd.img-5.15.0-25-generic in rpool/ROOT/ubuntu_lva06t
/etc/grub.d/10_linux_zfs: 404: .: cannot open 
/tmp/zfsmnt.Z7nWCz/etc/os-release: No such file
-----------------

$ zfs get mountpoint persist/backup/mule-zfs/ROOT/default 
NAME                                    PROPERTY    VALUE       SOURCE
persist/backup/mule-zfs/ROOT/default    mountpoint  /           local
-----------------

# oops!  This fixed it:
$ sudo zfs set mountpoint=zmule persist/backup/mule-zfs/ROOT/default 
$ zfs get mountpoint persist/backup/mule-zfs/ROOT/default 
NAME                                    PROPERTY    VALUE       SOURCE
persist/backup/mule-zfs/ROOT/default    mountpoint  /zmule      local

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

-- 
You received this bug notification because you are a member of Ubuntu
Bugs, which is subscribed to Ubuntu.
https://bugs.launchpad.net/bugs/1973669

Title:
  10_linuxzfs fails if a non-root filesystem has a mountpoint of /

To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/grub2/+bug/1973669/+subscriptions


-- 
ubuntu-bugs mailing list
ubuntu-bugs@lists.ubuntu.com
https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs

Reply via email to