外部驱动器上的 Ubuntu 启动问题

外部驱动器上的 Ubuntu 启动问题

我尝试在外部驱动器上安装 Ubuntu 14.04 LTS,同时在内部驱动器上安装 Windows 10 操作系统。

如果我的外部驱动器已连接,则一切正常。 GRUB 菜单加载,我可以选择 Ubuntu 或 Windows。

但是当我的外部驱动器未连接时,Windows 应该会自动启动,但实际上并没有。相反,我会得到一种 gr​​ub-bash。我尝试了启动修复,发现我的 Windows 启动驱动器 sda1 上有一些 Ubuntu 条目,但我认为这些条目不应该在那里。我猜它们应该在外部驱动器 sdb1 上,还是我错了?

如果是这个问题,我该如何移动它们?

我对这些安装东西还不太熟悉。我只想尝试使用 Linux 系统进行 Web 开发。

这是我的启动修复信息

感谢您的帮助!

答案1

你遇到了 Ubuntu 配置 GRUB 2 的设计缺陷。基本上,在基于 EFI 的系统上,主 GRUB 二进制文件位于EFI 系统分区 (ESP),但该二进制文件依赖于grub.cfgUbuntu/boot/grub目录中的一个文件,而这个文件在您的情况下位于外部磁盘上。由于 Ubuntu 将 GRUB 配置为您的默认引导加载程序,因此每当您拔下该外部磁盘时,引导过程都会失败。有几种方法可以纠正此问题,包括:

  • 移动/boot-- 您可以重新对磁盘进行分区,以便/boot在内部磁盘上有一个 ~500MB 的分区,然后重新安装 GRUB。这样,即使大部分 Ubuntu 将安装到外部磁盘,GRUB 也能够从内部磁盘读取其配置文件。缺点是,无论何时系统启动,您都会看到 Ubuntu 条目,即使由于外部磁盘被拔出而无法运行。
  • 重新确定引导加载程序的优先级-- 您可以efibootmgr在 Linux 中使用,简易UEFI在 Windows 中,或者使用其他工具重新排列引导加载程序优先级。通常,您希望将 Windows 放在最上面。然后,您可以使用固件的内置引导管理器(通常通过按 Esc、Enter 或功能键(通常是 F8 或更高)来访问)仅在您想要启动时选择 Ubuntu。如果您不经常启动 Ubuntu,这可能是一个可行的解决方案,但是如果您想频繁启动 Ubuntu,访问引导管理器的麻烦使这个解决方案变得很糟糕。
  • 使用 rEFind(或其他启动管理器)-- 您可以安装我的rEFInd 启动管理器到 ESP。然后它将接管作为默认启动管理器。由于 rEFInd 是逐个启动地构建其启动列表,因此当 Ubuntu 磁盘未插入时,启动菜单将仅显示 Windows,而当 Ubuntu 磁盘插入时,启动菜单将显示 Windows 和 Ubuntu。如果您将 rEFInd 的默认设置为启动 Ubuntu,结果甚至会在插入磁盘时启动 Ubuntu,而在未插入磁盘时启动 Windows。还有其他启动管理器,如 gummiboot/systemd-boot 和 rEFIt(rEFInd 的前身),也可以充当这个角色。

答案2

您必须启动 Windows USB/DVD,然后在选择语言等之后,不要单击“立即安装”,而是单击“修复计算机”。从那里您可以打开命令提示符。确保您的外部驱动器未连接,然后使用以下命令:bootrec.exe /FixMbr。这应该会将 Windows MBR 重写到主硬盘驱动器。

相关内容