在双引导中生成 grub 配置时 GRUB 找不到 linux 映像

在双引导中生成 grub 配置时 GRUB 找不到 linux 映像

几天前,我需要在我的笔记本电脑上重新安装一些游戏的 Windows。在此之前我使用 arch linux 几个月了,没有出现任何问题。但是安装 Windows 后,唯一被认为可启动的就是 Windows。

我按照一些教程(以及几个月前安装 arch 时观看的安装教程)中的说明进行操作,但似乎没有任何效果。

直到此刻,我尝试按照本教程重新安装并安装新的 grub: https://youtu.be/C3D_qzw94v8

基本上他为 Windows 制作了 /mnt 和 /mnt2 并将它们安装到 EFI 分区,但是当他运行 grub makeconfig 时,他得到的输出如下:“找到 linux 映像,...,找到 Windows 映像”,但是当我运行 makeconfig 时,我只得到“找到 Windows 映像,完成”。

在整个过程中,我可能把所有事情都搞混了,因为我试图在凌晨 2 点进行配置。

重新安装 Linux 确实不是一个选择,因为我不想再次配置和安装所有内容,而且我有重要的文档。

因为我真的不知道哪些信息可以帮助别人帮助我,所以我会附上一些我认为有用的信息。

这是 df、lsblk、fdisk 的输出 https://ibb.co/1MYjyYd

这是/mnt和/mnt/boot的文件夹结构 https://ibb.co/BZ7zSyh

稳定表: https://ibb.co/6s6vCg1

答案1

评论明确了出发点后:

第一部分:您的 fstab 建议安装基于所谓的 UUID。如果重新创建分区,这些会发生变化。使用 shell 命令 blkid 或 lsblk -o PATH,UUID,LABEL 仔细检查。如果某些分区的 UUID 发生更改,请将其写入 fstab。 (删除它并重新运行特定于发行版的内容或重新创建实用程序会离开此答案的范围。)

您的 /boot 文件夹不太可能是 FAT32 分区并且包含普通 EFI 资源。您的分区架构没有显示这样的内容。

因此,第二点也是更重要的一点:检查您的 Linux 的 /boot 文件夹,该文件夹应该位于您的 Linux 分区上。反过来,(其中一个)EFI 分区必须作为 /boot/efi 安装到此 /boot-文件夹中,以便 Grub 可以将必要的加载程序复制到其中。 (grub install 命令使用 --efi-directory 作为参数,有像 /boot/efi 这样的默认值以及带有 /boot 本身的 EFI 分区。后者可以工作,但不建议这样做,因为它会将一些操作系统的功能暴露给其他格式,FAT32 不太可靠。)

Grub 通常根据 vmlinuz/kernel-images 以及 ramdisk 来检测 /boot 的内容。对于所有其他技巧(例如启动其他操作系统),它会查找外部分区的内容。 (这还包括 grub 安装时连接的 USB 磁盘。)

我个人更喜欢单独的 /boot 分区,因此在早期用户空间挂载后没有必要,因此可以从 fstab 中删除。这也避免了意外覆盖其中的配置,例如 Grub。然而,在升级/安装新的内核映像时需要(手动)安装它。

相关内容