我完全拔掉了 Linux SSD,并在另一个硬盘上重新安装了 Windows。
安装后我再次插入 Linux-SSD,但是当我尝试启动它时,我的计算机想要启动到 Windows。我进入 BIOS 并将启动顺序更改回之前的状态(我的机器默认总是启动到 Linux)。通常我会看到 GRUB 2.0 几秒钟,但随后我的 Windows 想要修复 Linux 驱动器,所以我按下了重新启动按钮以防止进一步损坏。
我将启动模式从UEFI and Legacy
设为UEFI only
。之后我的电脑会提示
“重新启动并选择正确的启动设备或在选定的启动设备中插入启动介质并按一个键”
Windows 甚至在 GRUB 中没有条目,并且系统设置为仅允许通过手动选择 Windows 驱动器来启动 Windows。
有人可以解释一下我的 Linux 驱动器或引导加载程序(我认为它位于 Linux 分区上)发生了什么,以及如何修复此问题以再次引导到 Linux?
可能是 Windows 对 BIOS 进行了一些更改,因此 BIOS 找不到 Linux 引导加载程序?
附加信息/现状:
efivar-tester
在 arch-chroot 中:
About to test empty [runs through]
About to test one skips at:
testing efi_get_variable()
FAIL: "one"(line 212) (-1) get size test failed: wrong size: 1 should be 2 (append may be at fault)
我对 EFI 缺乏经验。
modprobe efivars
在直播系统上:
modprobe: FATAL: Module efivars not found in directory /lib/modules/4.16.3-301.fc28.x86_64
答案1
使用 arch-chroot 中的命令通过 Archiso Live Stick 重新安装 GRUB 就足够了:
mkinitcpio -p linux
grub-install --target=x86_64-efi --efi-directory=boot --bootloader-id=GRUB
grub-mkconfig -o /boot/grub/grub.cfg
我仍在寻找有关拔掉磁盘时到底发生了什么的技术、深入的解释,因为我不仅希望能够解决这个问题,而且还希望能够完全理解这个问题。