由于某种原因,GRUB 在例行更新后不会更新可用内核列表
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
这是启动文件夹中的内容:
$> 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
我彻底清除了 45 版并重新安装。我没有看到任何错误,apt 也没有。
当我重新启动时,我将进入紧急模式,并且必须通过以下方式手动返回内核版本 44:
update-initramfs -u -k 6.8.0-44-generic
然后系统按预期启动 - 但使用旧内核。
grub 有啥问题?
向 grub-amd64-efi 包报告的错误
https://bugs.launchpad.net/ubuntu/+source/grub2-unsigned/+bug/2084584
我认为我已经解决了这个问题。即使您的池未正确导入 zfs,您也可以执行 update-grub。
我注意到列表如下所示:
导入 bpool 之后。
现在看起来像
grub 脚本再次开始正常运行。完全重新安装最新的 *47 内核现在可以正确更新启动选择列表并让我启动到正确的内核。
反思
我仍然认为这是 grub 脚本中的一个错误。
如果 bpool 没有正确导入,脚本应该尝试执行此操作,或者 - 甚至更好 - 简单地退出并显示描述性错误。
此外,当 grub-probe 可执行文件出现错误时 - 请确保它准确打印出失败的探测器在何处(在哪个设备上)运行。
我使用 cannonical 更新了该错误来反映这一点。