安装到外部USB闪存/ HDD UEFI

我想将Ubuntu安装到外部USB驱动器,以免对我正在使用的笔记本电脑进行任何更改(UEFI Windows 8.1预先安装)

如果我在安装过程中选择手动分区并选择USB驱动器进行引导加载程序安装,这是否足以通过使用笔记本电脑在初始引导时选择引导设备从USB驱动器引导,还是需要做任何其他准备工作?

我是否需要手动将USB驱动器分区为gpt,或者Ubuntu安装程序是否需要处理它?

我已经读过没有插入USB驱动器时接收grub错误,但因为它应该安装到USB驱动器,所以如何在没有插入时出错?

通常,安装Ubuntu将进行以下更改:

  • 为Ubuntu创建分区并在那个/那些分区上安装Ubuntu文件。 如果您在安装过程中注意,可以将这些更改限制在外部磁盘上而不会太困难。
  • 安装引导加载程序。 这可能意味着:
    • 如果安装处于BIOS模式,则代码将写入MBR和/或您选择的分区,以及磁盘上的其他位置。
    • 如果安装处于EFI模式,则文件将写入安装程序标识的EFI系统分区(ESP) 。 EFI模式安装还将修改NVRAM中维护的引导加载程序列表。

您建议的安装类型使得控制引导加载程序安装变得困难,因为Ubuntu安装程序(Ubiquity)用于控制引导加载程序位置的工具有点粗糙,特别是对于EFI模式安装。 除非你们都知道自己在做什么并且非常小心,否则你最终可能会更改内部硬盘上的文件。 大多数尝试此操作的人最终将GRUB部分安装在计算机的内部磁盘上,部分安装在外部磁盘上,这意味着当您尝试在拔出外部磁盘的情况下启动计算机时,计算机将无法启动。

另请注意,启动模式很重要。 您现有的预安装Windows 8.1几乎肯定处于EFI模式。 因此建议在EFI模式下安装Ubuntu; 但请注意,Ubuntu安装模式实际上只影响引导加载程序。 因此,根据您的操作方式,只要安装了EFI模式的引导加载程序,您就可以在BIOS模式下(或仅在BIOS上运行)安装。 (稍后会详细介绍….)

基本上有两种好的方法可以进行:

  • 安装到外部驱动器,但确保GRUB也安装在那里,而不是内部驱动器。 执行此操作的最佳方法是临时更改内部磁盘上ESP的类型代码,确保外部磁盘上有ESP,并在EFI模式下正常安装 完成后,您应该将内部ESP的类型代码更改回正确的值,并将外部磁盘的ESP上的EFI/ubuntu/复制到EFI/BOOT ,并将该目录中的bootx64.efi重命名为bootx64.efi 。 这应该使外部磁盘像USB驱动器一样可启动。 您将留下更改的NVRAM,但条目将被自动删除,或至少被忽略。 您必须使用固件的启动管理器来确定要启动的操作系统。 错误可能会导致我所描述的那种问题,如果你在没有插入外部磁盘的情况下启动,GRUB将控制所有内容并失败。然后你需要通过适当的文件杂耍解决这个问题。
  • 在“安装前尝试”模式下启动Ubuntu安装盘,打开终端,然后键入ubiquity -b 。 这将导致安装程序正常安装但跳过安装任何引导加载程序。 您必须通过安装您选择的引导加载程序来自行更正此问题。 存在用于安装GRUB 2的半自动化工具,但是为了使其正确,可能会出错。 最简单的解决方案可能是通过使用--usedefault选项来安装我自己的.zip文件,例如./install.sh --usedefault /dev/sdb1如果外部磁盘的ESP是/dev/sdb1 。 或者,由于rEFInd不依赖于ESP上的配置文件,您可以将其安装到内部磁盘,并且当外部磁盘被拔出时计算机仍将启动Windows,但rEFInd将调解该启动过程。 您可以使用此方法在EFI或BIOS模式下安装Ubuntu。 另请注意,如果使用此方法,您可能需要禁用安全启动或跳过额外的环以安装Shim。

如果您有测试/一次性计算机,则可以将其用于Ubuntu安装。 这样,如果出现问题,您就不会搞乱主计算机上的内部硬盘或NVRAM条目。

对不起,这些程序有点粗略; 你必须做出很多决定,问题可能是系统特定的,很难预测。