使用 Windows 8.1 UEFI 在外部硬盘上安装 Ubuntu 14.04

使用 Windows 8.1 UEFI 在外部硬盘上安装 Ubuntu 14.04

我最近买了一台新笔记本电脑,联想 Essential B50-70 MCC39MB Azerty,我有一个外置硬盘,上面装有 ubuntu 14.04。我想如果我可以随时使用这个硬盘就好了。只需将其插入并在 GRUB 中选择 ubuntu。所以我按照这些说明

但现在我遇到了一个问题,当外部硬盘未连接时,我会收到 GRUB 错误。当我输入“exit”时,我可以启动 Windows,但这不太实际。我只希望 GRUB 在硬盘连接时显示,否则启动 Windows。

我已经搜索了一段时间,但并没有找到这个特定问题的答案。任何帮助都将不胜感激。

答案1

不幸的是,这些说明是针对 Windows 8 的自安装副本,因此他们的设置不是 UEFI 机器。对于在 UEFI 机器上预装 Windows 8 的情况略有不同。

外部(可移动)启动设备应具有自己的 300M、FAT、EFI 分区来保存引导加载程序。当您选择引导加载程序的位置(外部的在 sdb 上)时,请使用此分区(可能有效)而不是设备(永远无法工作)。当它不起作用时,将使用内部硬盘,因此只需将文件从内部磁盘的 EFI 复制到外部磁盘的 EFI 即可。现在,安装程序仍然可能无法将引导加载程序设置到可移动设备的正确目录中 - 它们应该进入 /EFI/Boot,并命名为 /EFI/Boot/bootx64.efi。相反,grubx64.efi 和 shimx64.efi(引导加载程序)通常被放入 /EFI/ubuntu(就像在内部硬盘上一样)。我喜欢使用 shimx64.efi 作为 bootx64.efi 文件,这样无论安全启动是启用还是禁用,启动都可以正常工作。因此,将 /EFI/ubuntu/shimx64.efi 复制到 /EFI/Boot/bootx64.efi(注意名称更改),并将 /EFI/ubuntu/grubx64.efi 复制到 /EFI/Boot/grubx64.efi。grub.cfg 文件可能留在 /EFI/ubuntu 中。

USB(磁盘...)的 nvram 启动项现在应该可以启动外部磁盘了——nvram 中不需要新的项。如果您在没有外部硬盘的情况下获取 grub,则看起来它已安装到内部硬盘的 EFI(没有问题),并且按启动顺序放在 Windows 引导加载程序之前(有问题)。Ubuntu 中的 efibootmgr 将允许您更改启动顺序,或删除不需要的 Ubuntu 项(请记住,您将使用 USB 项进行启动)。

答案2

Ubfan1 的方法(将一个EFI 系统分区(ESP),在外部磁盘上安装 GRUB 的副本)应该可以正常工作。不过,有几个潜在的障碍:

  • 现有的外部磁盘很可能使用主引导记录 (MBR)分区系统,而不是GUID 分区表 (GPT)EFI 青睐的。尽管 EFI 通常适用于 MBR,但这并不是 100% 确定的。至少,与 GPT 相比,它是一个测试较少的选项。gdisk如果出现此问题,从 MBR 转换为 GPT(通过)可以克服此问题。
  • 必须在外部磁盘上创建 ESP。这几乎肯定需要调整至少一个分区的大小并创建一个新分区。对于有经验的人来说,这不是什么大问题,但至少有点麻烦。
  • 在操作系统之间切换启动可能需要使用计算机的内置启动管理器。这些启动管理器可能有点难以激活——它们通常需要在系统启动时按下一个键。
  • 您需要将 GRUB 安装到外部硬盘上。据我所知,GRUB 安装脚本不是为此设计的,因此您需要即兴发挥。Ubfan1 提供了一些有用的端点信息,但从头到尾需要花费更多时间。对于这种自定义设置,GRUB 也不是最好的选择。总的来说,我认为这是 ubfan1 的建议最大的潜在问题,因为它需要从通常的 GRUB 设置“脱离脚本”,而且 GRUB 的配置非常困难,除非通过其配置脚本。

另一种方法是将 Linux 启动管理器和/或启动加载程序放在内部硬盘上的现有 ESP 上。这种放置方式意味着您首选的启动加载程序(GRUB 或其他程序)可以在每次计算机启动时运行,因此您无需经常处理机器的内部启动管理器。您也不需要重新分区外部磁盘或将其从 MBR 转换为 GPT。启动修复可能有助于自动完成设置。

另一方面,如果 GRUB 的配置文件最终位于外部磁盘上,那么当外部磁盘被移除时,它将完全无法工作。(可以将 GRUB 的grub.cfg文件和其他必要的支持文件放在 ESP 上,而不是放在 Linux 的/boot目录中,但我不记得如何设置它的具体细节。)我没有使用 GRUB 来扮演这个角色,而是使用我自己的rEFInd 启动管理器可能是更好的选择。它可以通过 USB 闪存驱动器或 CD-R 进行测试——但现成的图像不支持安全启动,因此您需要禁用它进行测试。rEFInd 应该使您能够启动 Windows 或(插入磁盘时)Ubuntu。除非 GRUB 设置比我预期的要容易,否则 rEFInd 应该更容易设置——如果 USB 闪存驱动器或 CD-R 上的 rEFInd 可以启动您现有的 Ubuntu,只需在 Ubuntu 中安装 Debian 包或 PPA,它就会自动将自身设置为内部磁盘上的 ESP。(如果外部磁盘也有 ESP,则 rEFInd 可能会安装在那里。)

相关内容