我正在尝试将 Lubuntu 或 Kubuntu 17.04 安装到外部驱动器。我使用的是IODD 2451启动 ISO,并安装到由 VHD 支持的模拟物理驱动器。无论出于何种目的,我都是从 livecd/dvd 安装到我的固件检测为可启动设备的常规外部硬盘驱动器。
我正在运行具有安全启动的系统,但我不想关闭它。
这两种变体似乎都没有提供在哪里安装引导加载程序的选项,或者忽略它,并且似乎没有将 EFI 引导文件写入它们创建的 ESP 分区。
虽然 IODD 是一种不寻常的硬件,但就我的电脑而言,它们只是一个普通的蓝光驱动器(不重要)和一个可启动的硬盘驱动器。它甚至可以从驱动器启动,看到另一个驱动器并进行安装。Lubuntu 的安装程序不让我选择在哪里安装引导加载程序,也不会创建 ESP 分区。KDE 有,所以假设我使用的是 Kubuntu
Kubuntu 很乐意在我的外部驱动器上创建一个 ESP 分区。然后继续将我的引导加载程序和 EFI 引导文件安装到系统的主驱动器中尽管告诉它安装到外部驱动器。
虽然理论上我可以安装到虚拟机然后转换,我认为没有任何免费的虚拟机软件可以模拟安全启动系统。
那么,我怎样才能让这两种版本的 Ubuntu 尊重我的选择,并将其安装到我想要的驱动器上,而不会破坏我的其他驱动器?
答案1
我以前从未听说过你使用的硬件。它看起来是个有趣的设备,但我怀疑它是否是你的问题根源。
在 EFI/UEFI 模式下安装时,Ubuntu 安装程序 (Ubiquity) 会提示输入引导加载程序的位置,但会立即忽略该信息。有几个与此相关的错误:
- https://bugs.launchpad.net/ubuntu/+source/ubiquity/+bug/1466367
- https://bugs.launchpad.net/ubuntu/+source/ubiquity/+bug/1173457
- https://bugs.launchpad.net/ubuntu/+source/ubiquity/+bug/1396379
我还没有专门检查过 Lubuntu 和 Kubuntu,但我预计它们有相同的错误。
一个解决方法如下:
- 将安装介质启动到“安装前尝试”模式。
- 打开终端窗口。
- 键入
ubiquity -b
。该-b
选项告诉 Ubiquity不安装根本没有引导加载程序。 - 正常继续安装。
- 手动安装引导加载程序。不过,这可能有点棘手。有几种方法可以继续:
- 您可以从已经启动的安装介质进行安装,也可以使用我的rEFInd 启动管理器在 USB 闪存驱动器或 CD-R 上一次性启动基于磁盘的安装。
- 你可以安装 GRUB 2(Ubuntu 的默认设置)或者其他东西。
- 您可能需要调整
/etc/fstab
或以其他方式确保您要使用的 ESP 已安装在/boot/efi
。
请注意,许多(但不是全部)EFI 会删除指向无效引导加载程序的 NVRAM 引导条目。因此,如果您将 Ubuntu 引导加载程序安装到外部磁盘,然后拔下该磁盘并启动,则引导加载程序条目可能会消失。解决方案是将引导加载程序路径(EFI/ubuntu/
默认情况下)重命名为EFI/BOOT
,并将引导加载程序本身重命名为后备文件名(EFI/BOOT/bootx64.efi
)。该文件名将通过在固件的启动菜单中指定磁盘使外部磁盘可启动。或者,您可以在内部磁盘上安装 rEFInd。rEFInd 比 GRUB 更具动态性;它会主动扫描所有媒体以查找可启动映像,因此其选项会根据每次启动进行调整,并且不会受到外部磁盘的出现和消失的影响。不过,您需要完成一些额外的工作才能让 rEFInd 与安全启动配合使用,如中所述它的文档。
至于虚拟机,是支持安全启动的 QEMU 的 EFI 固件映像。有一些关于如何使用它的链接和说明这里,除其他地方外——如果您对我提供的链接有疑问,请尝试进行 Web 搜索。我不知道有任何为 VirtualBox 预构建的东西。