[Bug 1881153] [NEW] Update-grub fails to populate menu with existing ZFS root installation

Chris Box 1881153 at bugs.launchpad.net
Thu May 28 16:16:43 UTC 2020


Public bug reported:

I had an existing ZFS system running 18.04 which I upgraded to 20.04. It
uses an ext4 /boot, but / is ZFS. So I am expecting /boot/grub/grub.cfg
to contain this:

        set root='hd0,gpt2'
        linux   /vmlinuz-5.4.0-31-generic root=ZFS=ssd/root ro boot=zfs rpool=ssd bootfs=ssd/root  
        initrd  /initrd.img-5.4.0-31-generic                                                                                                                                                       

However after do-release-upgrade, the above was absent and after reboot
all I had was an option to go into UEFI bios settings, plus my 40_custom
entries.

The cause of this is that both these sections were empty:

### BEGIN /etc/grub.d/10_linux ###                                                                                                                                                                 
### END /etc/grub.d/10_linux ###                                                                                                                                                                   
                                                                                                                                                                                                   
### BEGIN /etc/grub.d/10_linux_zfs ###                                                                                                                                                             
### END /etc/grub.d/10_linux_zfs ###                                                                                                                                                               

Looking at those scripts, 10_linux outputs nothing because it aborts
early, due to the presence of 10_linux_zfs installed by focal's grub-
common 2.04-1ubuntu26:

    xzfs)
        # We have a more specialized ZFS handler, with multiple system in 10_linux_zfs.
        if [ -e "`dirname $(readlink -f $0)`/10_linux_zfs" ]; then
          exit 0                                                                                                                                                                                   
        fi                                                                                                                                                                                         

However 10_linux_zfs doesn't output anything either, although it is hard
to read so I'm not sure why. Is 10_linux_zfs supposed to cover the cases
where /boot is on ext4?

To recover my system, I renamed 10_linux_zfs and re-ran update-grub.
This then generated the correct entries under ### BEGIN
/etc/grub.d/10_linux ###.

As I say, I'd first like to understand which script has the responsibility of finding bootable kernels for this kind of layout, then we can work from there.
                                                                                                                                                             
Thanks,
Chris

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


** Tags: zfs

-- 
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/1881153

Title:
  Update-grub fails to populate menu with existing ZFS root installation

Status in grub2 package in Ubuntu:
  New

Bug description:
  I had an existing ZFS system running 18.04 which I upgraded to 20.04.
  It uses an ext4 /boot, but / is ZFS. So I am expecting
  /boot/grub/grub.cfg to contain this:

          set root='hd0,gpt2'
          linux   /vmlinuz-5.4.0-31-generic root=ZFS=ssd/root ro boot=zfs rpool=ssd bootfs=ssd/root  
          initrd  /initrd.img-5.4.0-31-generic                                                                                                                                                       

  However after do-release-upgrade, the above was absent and after
  reboot all I had was an option to go into UEFI bios settings, plus my
  40_custom entries.

  The cause of this is that both these sections were empty:

  ### BEGIN /etc/grub.d/10_linux ###                                                                                                                                                                 
  ### END /etc/grub.d/10_linux ###                                                                                                                                                                   
                                                                                                                                                                                                     
  ### BEGIN /etc/grub.d/10_linux_zfs ###                                                                                                                                                             
  ### END /etc/grub.d/10_linux_zfs ###                                                                                                                                                               

  Looking at those scripts, 10_linux outputs nothing because it aborts
  early, due to the presence of 10_linux_zfs installed by focal's grub-
  common 2.04-1ubuntu26:

      xzfs)
          # We have a more specialized ZFS handler, with multiple system in 10_linux_zfs.
          if [ -e "`dirname $(readlink -f $0)`/10_linux_zfs" ]; then
            exit 0                                                                                                                                                                                   
          fi                                                                                                                                                                                         

  However 10_linux_zfs doesn't output anything either, although it is
  hard to read so I'm not sure why. Is 10_linux_zfs supposed to cover
  the cases where /boot is on ext4?

  To recover my system, I renamed 10_linux_zfs and re-ran update-grub.
  This then generated the correct entries under ### BEGIN
  /etc/grub.d/10_linux ###.

  As I say, I'd first like to understand which script has the responsibility of finding bootable kernels for this kind of layout, then we can work from there.
                                                                                                                                                               
  Thanks,
  Chris

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



More information about the foundations-bugs mailing list