我想在 ubs-stick 上安装 Ubuntu 16.04,并在装有 Windows 的 Destop-PC 上运行它。我不能使用实时 USB,因为我需要安装显卡驱动程序。到目前为止,我已经尝试了很多方法,例如,我使用实时 DVD 将 Ubuntu 安装到 USB 棒上。问题是 PC 已启用 UEFI 和安全启动,我看不到,因此也无法选择从中启动的 USB。这就是我在 bios 设置中看到的全部内容我无法切换到传统模式,也无法禁用安全启动,因为我担心 Windows 将无法再运行,而且我不能对它(不是我的计算机)造成任何损害。我在 BIOS 中没有找到任何快速启动,但我在 Windows 10 中禁用了它。我还使用 rufus 创建了一个可以从 UEFI 启动的实时 USB。我想从那里将 Ubuntu 安装到第二个 USB,但是当我运行实时 USB 时,Ubuntu 不会显示 PC 的硬盘驱动器,而只会显示另一个 USB 棒。并且在安装菜单上有一个警告,即安装了其他操作系统,它们可能无法在安装后启动。所以基本上我需要一种方法来在 USB 上安装 Ubuntu 并使其在 UEFI 中启动。有人可以帮助我或告诉我怎么做吗?
答案1
有很多方法可以做到这一点,但我建议的步骤大致如下:
- 从基于 EFI 的 x86-64 (AMD64) 计算机开始。不要尝试在 BIOS/CSM/legacy 模式下安装,因为这会使 GRUB 安装和配置变得复杂,特别是当目标系统在安全启动处于活动状态时启动。
- 拔下将用于安装的计算机上的所有硬盘。
- 插入目标 USB 闪存驱动器和 Ubuntu x86-64 (AMD64) 安装介质并启动后者。请注意,您必须安装与目标计算机固件相同架构的 Ubuntu。这通常是 AMD64。不要使用 i386 版本的 Ubuntu。
- 正常安装。使用自动分区或手动设置,视情况而定;但如果选择后者,请务必创建一个EFI 系统分区 (ESP)。
- 安装 Ubuntu 后,使用任何方便的计算机,将 ESP 从 USB 闪存驱动器安装
cd
到其EFI
目录,键入sudo cp -r ubuntu BOOT
然后sudo mv BOOT/shimx64.efi BOOT/bootx64.efi
。 (或者在另一个操作系统中发出等效命令。)这里的重点是将 Shim 安装EFI/BOOT/bootx64.efi
在 USB 闪存驱动器的 ESP 上,同时保持其后续grubx64.efi
文件grub.cfg
可访问。
此时,USB 驱动器应该可以在与目标系统具有相同架构(本例中为 AMD64)的任何基于 EFI 的计算机上启动,无论存在硬件不兼容问题。
重要警告:您用于安装的计算机可能无法再启动其操作系统,即使您重新插入硬盘也是如此,因为在您拔下硬盘后,它可能已经清除了其 NVRAM 启动变量。如果计算机运行的是 Windows,它可能会启动到 Windows;但如果它运行的是 Ubuntu 或其他 Linux,您可能需要使用命令efibootmgr
创建新的启动项或启动修复来完全重新安装 GRUB。有办法解决这个问题,但它们被一系列条件包围——如果磁盘以这种方式设置,那么那样;如果计算机以这种方式启动,那么其他事情也是如此。处理这些问题会使我刚刚介绍的过程的长度增加一倍或三倍。事后修复损坏的启动可能(但不一定)更简单,而且对我来说描述起来肯定更简单。另一方面,这有可能造成新的问题,所以您应该意识到这种可能性。