我在外部硬盘上安装了 Linux,但是拔掉外部硬盘后,我无法访问 Windows(会出现 grub,但 grub 在外部硬盘中),只有当我放回外部硬盘时,才会出现 grub,我选择 Windows,然后在 Windows 上移除硬盘,Windows 才能正常工作。有没有办法像以前一样正常使用 Windows,而不需要插入硬盘?
答案1
显然,您将 grub 安装在了内部驱动器上。您可能在外部驱动器上安装了它的模块和 grub.cfg,但引导代码(或 UEFI 系统的 EFI 二进制文件)已安装到内部驱动器的 MBR(以及 MBR 后间隙/BIOS 引导分区)中。我敢打赌,当您拔下外部驱动器时,您会看到 grub RESCUE shell。
解决方案是重新正确安装 grub。例如,如果
/dev/sda
:内部 Windows 驱动器/dev/sdb
:外部 Linux 驱动器
您可能已经做过以下事情:
grub-install /dev/sda
,其中包括隐含期权--boot-directory /boot
,/boot
而/dev/sdb
你应该做的是:
grub-install /dev/sdb
请注意,/dev/sdX 命名在启动时可能会发生变化。因此,在运行此命令之前,请务必使用lsblk
或findmnt
确认哪个驱动器是 Linux 驱动器。
然后修复内部(Windows)驱动器的 MBR:https://technet.microsoft.com/en-us/library/cc749177%28v=ws.10%29.aspx