我想将 Ubuntu 安装到外部 USB 驱动器,以免对我正在使用的笔记本电脑进行任何更改(预装 UEFI Windows 8.1)
如果我在安装过程中选择手动分区并选择 USB 驱动器进行引导加载程序安装,这是否足以能够通过在初始启动时使用笔记本电脑选择启动设备从 USB 驱动器启动,还是我需要做任何额外的准备?
我是否需要手动将 USB 驱动器预先分区为 gpt,还是 Ubuntu 安装程序会处理它?
我读到过当没有插入 USB 驱动器时会出现 grub 错误,但是因为它应该安装到 USB 驱动器上,所以当没有插入时怎么会出现错误呢?
答案1
通常,安装 Ubuntu 会产生以下变化:
- 为 Ubuntu 创建分区并在该分区上安装 Ubuntu 文件。只要您在安装过程中细心,这些更改就可以毫不费力地限制在您的外部磁盘上。
- 安装引导加载程序。这可能意味着:
- 如果安装在 BIOS 模式下,代码将被写入 MBR 和/或您选择的分区以及磁盘上的其他位置。
- 如果安装在 EFI 模式下,文件将被写入EFI 系统分区 (ESP)安装程序会识别该引导加载程序。EFI 模式安装还会修改 NVRAM 中维护的引导加载程序列表。
您建议的安装类型使得控制引导加载程序安装变得困难,因为 Ubuntu 安装程序 (Ubiquity) 用于控制引导加载程序位置的工具有点粗糙,尤其是对于 EFI 模式安装。除非您知道自己在做什么并且非常小心,否则您最终可能会更改内置硬盘上的文件。大多数尝试这样做的人最终会将 GRUB 部分安装在计算机的内置磁盘上,部分安装在外部磁盘上,这意味着当您尝试在拔下外部磁盘的情况下启动时,计算机将无法启动。
另外,请注意启动模式很重要。您现有的预装 Windows 8.1 几乎肯定处于 EFI 模式。因此建议以 EFI 模式安装 Ubuntu;但是,请注意 Ubuntu 安装模式实际上只会影响引导加载程序。因此,根据您的操作方式,您可能能够在 BIOS 模式下安装(或在仅 BIOS 的计算机上安装),只要您安装了 EFI 模式的引导加载程序即可。(稍后会详细介绍……)
基本上有两种好的方法可以进行:
- 安装到外部驱动器,但要确保 GRUB 也安装在那里,而不是内部驱动器。最好的方法是临时更改内部磁盘上 ESP 的类型代码,确保外部磁盘上有 ESP,然后正常安装处于 EFI 模式。完成后,您应该将内部 ESP 的类型代码改回正确值,并将
EFI/ubuntu/
外部磁盘的 ESP 复制到EFI/BOOT
并shimx64.efi
在该目录中重命名为bootx64.efi
。这应该使外部磁盘像 USB 驱动器一样可启动。您将得到一个更改后的 NVRAM,但条目将被自动删除,或至少被忽略。您必须使用固件的启动管理器来确定要启动哪个操作系统。错误可能会导致我描述的那种问题,其中 GRUB 将控制一切,如果您在未插入外部磁盘的情况下启动,它将失败。然后您需要通过适当的文件处理来解决该问题。 - 以“安装前尝试”模式启动 Ubuntu 安装盘,打开终端,然后输入
ubiquity -b
。这将导致安装程序正常安装,但跳过安装任何引导加载程序。您必须通过安装您选择的引导加载程序来自行纠正此问题。存在用于安装 GRUB 2 的半自动化工具,但出错的可能性与正确的可能性一样大。最简单的解决方案可能是安装我自己的重新索引.zip
使用--usedefault
选项从其文件中获取install.sh
,例如,./install.sh --usedefault /dev/sdb1
如果您的外部磁盘的 ESP 是/dev/sdb1
。或者,由于 rEFInd 不依赖于 ESP 上的配置文件,因此您可以将其安装到内部磁盘,并且当外部磁盘拔出时,计算机仍将启动 Windows,但 rEFInd 将调解该启动过程。您可以使用此方法在 EFI 或 BIOS 模式下安装 Ubuntu。另请注意,如果您使用此方法,您可能需要禁用安全启动或跳过额外的步骤来安装 Shim。
如果您有一台测试/一次性计算机,则可以使用它来安装 Ubuntu。这样,如果出现问题,您就不会弄乱主计算机上的内部硬盘或其 NVRAM 条目。
抱歉,这些程序有点粗略;您必须做出很多决定,而且问题可能特定于系统且难以预测。