Grub 条目未启动

Grub 条目未启动

我的 grub 安装最近坏了。我尝试通过从我的 Ubuntu 发行版和 Arch Linux 发行版运行以下命令来修复它:

sudo os-prober
sudo grub-mkconfig /boot/grub/grub.cfg
sudo grub-install --efi-directory=/boot/EFI /dev/nvme0n1

现在 grub 再次显示我安装的所有操作系统,我可以使用它启动到我安装的两个操作系统。然而,一个菜单项仍然不允许我启动相应的 Linux 发行版。当我选择它时,笔记本电脑的开始屏幕(一个大的联想图标)出现,之后没有任何反应。您是否有任何提示我如何解决此问题或收集有关其无法启动原因的更多信息?

不从以下位置加载的 grub 菜单条目/boot/grub/grub.cfg

menuentry 'Arch Linux (rolling) (on /dev/nvme0n1p2)' --class arch --class gnu-linux --class gnu --class os $menuentry_id_option 'osprober-gnulinux-simple-c53daa31-996c-468d-bd57-df5b73cb87cc' {
        savedefault
        insmod part_gpt
        insmod fat
        if [ x$feature_platform_search_hint = xy ]; then
          search --no-floppy --fs-uuid --set=root  0DD8-ECF1
        else
          search --no-floppy --fs-uuid --set=root 0DD8-ECF1
        fi
        linux /vmlinuz-linux root=UUID=c53daa31-996c-468d-bd57-df5b73cb87cc rw loglevel=3 quiet
        initrd /intel-ucode.img
}

我用 blkid 仔细检查了 UUID 是否53daa31-996c-468d-bd57-df5b73cb87cc对应于正确的驱动器 ( /dev/nvme0n1p5),并且命令中的 UUIDsearch对应于/dev/nvme0n1p1EFI Boot。

编辑:我按照@Recct的建议删除了“安静”,并将日志级别增加到7。然后我收到下图中的错误,我认为最相关的部分如下:

No filesystem could mount root, tried:

Kernell panic - not syncing VFS: Unable to mount root fs on unknown-block(0, 0)

错误的图像

编辑2:

现在我已经成功第二次将其他发行版添加到 grub.cfg 文件中,这次它启动了(我不太明白我做了什么),将 /initramfs-linux.img 添加到 initrd 命令中是本质的改变。

据我了解,该文件应该由 grub-mkconfig 基于 /etc/grub.d 和 /etc/default/grub 自动生成。如何更改 /etc/grub.d 中的设置以永久修复此问题?

menuentry 'Arch Linux' --class arch --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-simple-c53daa31-996c-468d-bd57-df5b73cb87cc' {
    savedefault
    load_video
    set gfxpayload=keep
    insmod gzio
    insmod part_gpt
    insmod fat
    search --no-floppy --fs-uuid --set=root 0DD8-ECF1
    echo    'Loading Linux linux ...'
    linux   /vmlinuz-linux root=UUID=c53daa31-996c-468d-bd57-df5b73cb87cc rw  loglevel=7 
    echo    'Loading initial ramdisk ...'
    initrd  /intel-ucode.img /initramfs-linux.img
}
submenu 'Advanced options for Arch Linux' $menuentry_id_option 'gnulinux-advanced-c53daa31-996c-468d-bd57-df5b73cb87cc' {
    menuentry 'Arch Linux, with Linux linux' --class arch --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-linux-advanced-c53daa31-996c-468d-bd57-df5b73cb87cc' {
    savedefault
        load_video
        set gfxpayload=keep
        insmod gzio
        insmod part_gpt
        insmod fat
        search --no-floppy --fs-uuid --set=root 0DD8-ECF1
        echo    'Loading Linux linux ...'
        linux   /vmlinuz-linux root=UUID=c53daa31-996c-468d-bd57-df5b73cb87cc rw  loglevel=3 quiet
        echo    'Loading initial ramdisk ...'
        initrd  /intel-ucode.img /initramfs-linux.img
    }
    menuentry 'Arch Linux, with Linux linux (fallback initramfs)' --class arch --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-linux-fallback-c53daa31-996c-468d-bd57-df5b73cb87cc' {
    savedefault
        load_video
        set gfxpayload=keep
        insmod gzio
        insmod part_gpt
        insmod fat
        search --no-floppy --fs-uuid --set=root 0DD8-ECF1
        echo    'Loading Linux linux ...'
        linux   /vmlinuz-linux root=UUID=c53daa31-996c-468d-bd57-df5b73cb87cc rw  loglevel=3 quiet
        echo    'Loading initial ramdisk ...'
        initrd  /intel-ucode.img /initramfs-linux-fallback.img
    }
    menuentry 'Arch Linux, with Linux linux (recovery mode)' --class arch --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-linux-recovery-c53daa31-996c-468d-bd57-df5b73cb87cc' {
        load_video
        set gfxpayload=keep
        insmod gzio
        insmod part_gpt
        insmod fat
        search --no-floppy --fs-uuid --set=root 0DD8-ECF1
        echo    'Loading Linux linux ...'
        linux   /vmlinuz-linux root=UUID=c53daa31-996c-468d-bd57-df5b73cb87cc rw single 
        echo    'Loading initial ramdisk ...'
        initrd  /intel-ucode.img /initramfs-linux-fallback.img
    }
}

相关内容