安装后无法启动到 arch linux(与 Windows 10 双重启动)

安装后无法启动到 arch linux(与 Windows 10 双重启动)

这几天我一直在尝试安装arch linux,但没有成功。安装完全正常,但是当我重新启动计算机时,我没有看到 GRUB,它甚至没有出现在启动选项中。

我进行了大量的研究,但还没有找到有效的解决方案。我不确定这是否是问题的根源,但在 /boot/efi/EFI 中,执行 grub-install 和 grub-mkconfig 后没有 arch 文件夹(当我有 ubuntu 时有一个 ubuntu 文件夹)。

我很确定 fstab 已正确配置。我按照拱门指南中的所有步骤进行操作,但我不知道可能出了什么问题。

编辑:安全启动被禁用,它直接启动到 Windows。如果我让启动菜单出现(按 F12),我只能看到 Windows 选项。 efibootmgr -v 的输出如下:

BootCurrent: 0000
Timeout: 0 seconds
BootOrder: 2001,0001,2002,2003
Boot0000* USB HDD: USB     Flash Disk   PciRoot(0x0)/Pci(0x14,0x0)/USB(0,0)/USB(1,0)/HD(1,MBR,0x72539,0x800,0xf00000)RC  
Boot0001* Windows Boot Manager  HD(1,GPT,88f77a3e-99ca-42d8-9191-96d66428a9f6,0x800,0x32000)/File(\EFI\Microsoft\Boot\bootmgfw.efi)RC
Boot0002* GRUB  HD(1,GPT,88f77a3e-99ca-42d8-9191-96d66428a9f6,0x800,0x32000)/File(\EFI\GRUB\grubx64.efi)
Boot0004* arch  HD(1,GPT,88f77a3e-99ca-42d8-9191-96d66428a9f6,0x800,0x32000)/File(\EFI\arch\grubx64.efi)
Boot2001* EFI USB Device    RC
Boot2002* EFI DVD/CDROM RC
Boot2003* EFI Network   RC

答案1

输出efibootmgr表明 BootOrder 中列出的第一个非 USB 启动项是 0001,它对应Boot0001于 Windows 启动加载程序行。因此,Windows 10 刚刚将自己提升到了列表的顶部,就像在重大更新期间有时会发生的那样。

首先,使用输出中列出的 UUID 识别您的 EFI 系统分区efibootmgr

# blkid | grep 8f77a3e-99ca-42d8-9191-96d66428a9f6

/dev/sd*这应该标识与固件使用的实际 ESP 相对应的Linux 设备(可能类似于)。确保它安装在/boot/efi;一些 Linux 发行版实际上默认将其卸载。

然后验证/boot/efi/EFI/GRUB/grubx64.efi或是否/boot/efi/EFI/arch/grubx64.efi存在。

如果这些都不存在,请运行grub-install <disk device reported by blkid>: 应该可以修复它。

如果这些grubx64.efi文件中的任何一个存在,您可以使用以下命令将 Linux 添加回引导顺序:

# efibootmgr -o 2001,0002,0004,0001,2002,2003

(这对应于“首先尝试从 USB HDD 进行 UEFI 启动,然后\EFI\GRUB\grubx64.efi从 ESP 分区,然后\EFI\arch\grubx64.efi从 ESP 分区,然后回退到 Windows 启动加载程序以及 DVD 和网络启动选项。”)

通常,最后一步是主要 Windows 更新后您唯一需要的,但如果某些因素实际上导致 ESP 分区内容被完全重写,您可能grub-install也需要该步骤。

答案2

我知道这是我自己的问题,但我解决了它并决定添加答案,以防其他人遇到这个问题。

我按照 Microsoft 的说明重置了我的电脑这里。然后,我删除了 linux 主分区和根分区以进行全新安装。在此过程中,我必须将 EFI 系统分区挂载到 /boot/efi 上,并且我意识到即使在重置 PC 后 /boot/efi/EFI/GRUB 和 /boot/efi/EFI/arch 仍然存在。我删除了这些目录,以防它们损坏,这就是我之前尝试中的问题。

安装没有任何问题,但 Windows 仍然不允许我启动到 arch,所以我必须以管理员身份从 windows cmd 运行以下命令

bcdedit /set {bootmgr} path \EFI\GRUB\grubx64.efi

然后我就可以从启动菜单启动进入 arch(启动时按 f12)。

我仍然不知道确切的问题是什么。如果有人可以解释,请添加答案。

相关内容