For some reason GRUB will not update the list of available kernels after a routine update
Sourcing file `/etc/default/grub'
Generating grub configuration file ...
grub-probe: error: unknown filesystem.
Found linux image: vmlinuz-6.8.0-44-generic in rpool/ROOT/ubuntu_9jipvg
Found initrd image: initrd.img-6.8.0-44-generic in rpool/ROOT/ubuntu_9jipvg
Found linux image: vmlinuz-6.8.0-41-generic in rpool/ROOT/ubuntu_9jipvg
Found initrd image: initrd.img-6.8.0-41-generic in rpool/ROOT/ubuntu_9jipvg
/usr/sbin/grub-probe: error: unknown filesystem.
Warning: os-prober will be executed to detect other bootable partitions.
Its output will be used to detect bootable binaries on them and create new boot entries.
Adding boot menu entry for UEFI Firmware Settings ...
done
This is the contents in the boot folder:
$> ls -lah /boot
total 185M
drwxr-xr-x 4 root root 15 Oct 2 14:56 .
drwxr-xr-x 22 root root 26 Apr 27 20:04 ..
-rw-r--r-- 1 root root 281K Oct 2 13:23 config-6.8.0-44-generic
-rw-r--r-- 1 root root 281K Aug 30 10:32 config-6.8.0-45-generic
drwxr-xr-x 2 root root 2 Sep 11 02:18 efi
drwxr-xr-x 2 root root 4 Oct 2 14:57 grub
lrwxrwxrwx 1 root root 27 Oct 2 14:50 initrd.img -> initrd.img-6.8.0-45-generic
-rw-r--r-- 1 root root 77M Oct 2 13:48 initrd.img-6.8.0-44-generic
-rw-r--r-- 1 root root 77M Oct 2 14:50 initrd.img-6.8.0-45-generic
lrwxrwxrwx 1 root root 27 Oct 2 14:56 initrd.img.old -> initrd.img-6.8.0-44-generic
-rw------- 1 root root 8,7M Aug 30 10:32 System.map-6.8.0-45-generic
lrwxrwxrwx 1 root root 24 Oct 2 14:50 vmlinuz -> vmlinuz-6.8.0-45-generic
-rw------- 1 root root 15M Aug 13 12:22 vmlinuz-6.8.0-44-generic
-rw------- 1 root root 15M Aug 30 11:02 vmlinuz-6.8.0-45-generic
lrwxrwxrwx 1 root root 24 Oct 2 14:56 vmlinuz.old -> vmlinuz-6.8.0-44-generic
I completely purged version 45 and reinstalled it. I cant see any errors and neither can apt.
When I reboot I will end up in emergency mode and I have to manually move back to the 44 version of the kernel via
update-initramfs -u -k 6.8.0-44-generic
Then the system boots as expected - but on the old kernel.
What is up with grub?
Bug reported to the grub-amd64-efi package
https://bugs.launchpad.net/ubuntu/+source/grub2-unsigned/+bug/2084584
I think I worked this out. You are able to execute an update-grub even if your pools are not correctly imported into zfs.
I noticed the list looked like this:
After an import of the bpool.
Now looks like
And the grub scripts once again starts behaving. A full reinstall of the latest *47 kernel now correctly updates the boot selection list and lets me boot into the correct kernel.
To reflect
I still see this as a bug in the grub scripts.
If the bpool is not correctly imported the scripts should either try to do this or - maybe even better - simply exit with a descriptive error.
Also when the grub-probe executable gets an error - see to it it prints out exactly where (on which device) the failing probe was running.
I updated the bug with cannonical to reflect this.