ZFS:内核恐慌:无法在未知块(0,0)上挂载根文件系统

ZFS:内核恐慌:无法在未知块(0,0)上挂载根文件系统

我刚刚安装了 Ubuntu 22.04,并且在 GRUB 菜单/高级选项中有两个 Linux 内核:5.15.0-43-generic 和 5.15.0-46-generic。

默认情况下,它会尝试启动较新的系统,但由于以下错误而崩溃:

未同步:VFS:无法在未知块(0,0)上挂载根文件系统

我必须选择较旧的一个才能开始。

我的笔记本:Dell XPS 9370
我使用带有 Ubuntu 安装程序加密的 ZFS。

我试过了https://askubuntu.com/a/41939/1623974,但这对我不起作用。

我有/boot

  1. initrd.img -> initrd.img-5.15.0-46-generic
  2. initrd.img.old -> initrd.img-5.15.0-43-generic
  3. 和类似的符号链接vmlinuz*

编辑:

user@computer:~$ sudo update-grub
Sourcing file `/etc/default/grub'
Sourcing file `/etc/default/grub.d/init-select.cfg'
Generating grub configuration file ...
Found linux image: vmlinuz-5.15.0-46-generic in rpool/ROOT/ubuntu_2zhbmp
Found initrd image: initrd.img-5.15.0-46-generic in rpool/ROOT/ubuntu_2zhbmp
Found linux image: vmlinuz-5.15.0-43-generic in rpool/ROOT/ubuntu_2zhbmp
Found initrd image: initrd.img-5.15.0-43-generic in rpool/ROOT/ubuntu_2zhbmp
Memtest86+ needs a 16-bit boot, that is not available on EFI, exiting
Warning: os-prober will not be executed to detect other bootable partitions.
Systems on them will not be added to the GRUB boot configuration.
Check GRUB_DISABLE_OS_PROBER documentation entry.
Adding boot menu entry for UEFI Firmware Settings ...
done

user@computer:~$ dpkg --list | grep linux-image
ii  linux-image-5.15.0-43-generic              5.15.0-43.46                            amd64        Signed kernel image generic
ii  linux-image-5.15.0-46-generic              5.15.0-46.49                            amd64        Signed kernel image generic
ii  linux-image-generic                        5.15.0.46.46                            amd64        Generic Linux kernel image
ii  linux-image-generic-hwe-22.04              5.15.0.46.46                            amd64        Generic Linux kernel image

EDIT2:
我已经删除了5.15.0-46版本,但是当我尝试执行dist-upgrade或时full-upgrade,它没有显示任何可用的更新。

谢谢你的帮助!

答案1

Grub 会负责告诉您使用哪个内核映像、initrd 映像进行引导。因此您需要更改此文件“/boot/grub/grub.cfg”中的 grub 配置选项。

        menuentry 'Ubuntu, with Linux 5.15.0-46-generic' --class ubuntu --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-5.15.0-46-generi
c-advanced-6c8f350d-4e7c-4841-98e5-15ca9d43ef32' {
                recordfail
                load_video
                gfxmode $linux_gfx_mode
                insmod gzio

                ....

                echo    'Loading Linux 5.15.0-46-generic ...'
                linux   /boot/vmlinuz-5.15.0-46-generic root=UUID=6c8f350d-4e7c-4841-98e5-15ca9d43ef32 ro  quiet splash $vt_handoff
                echo    'Loading initial ramdisk ...'
                initrd  /boot/initrd.img-5.15.0-46-generic
        }

选项initrd默认不会从您的 initrd.img 加载,因此您需要将 initrd 名称从 更改initrd.img-5.15.0-46-genericinitrd.img

希望这会有所帮助。

相关内容