![在 USB 上安装了 Ubuntu 15.1(完整安装),但无法启动](https://linux22.com/image/1054742/%E5%9C%A8%20USB%20%E4%B8%8A%E5%AE%89%E8%A3%85%E4%BA%86%20Ubuntu%2015.1%EF%BC%88%E5%AE%8C%E6%95%B4%E5%AE%89%E8%A3%85%EF%BC%89%EF%BC%8C%E4%BD%86%E6%97%A0%E6%B3%95%E5%90%AF%E5%8A%A8.png)
我还是 Linux 新手,但我正在努力学习。我有两个 USB,一个是 4GB,有 Ubuntu 的 ISO 安装(我认为它被称为 live,即最大永久存储为 4GB 的那个),还有一个 64GB 的 USB,可以永久完整安装。我按照以下方法安装它这教程,一切看起来都很好(我必须用终端创建 EFI 分区)但它就是无法启动,实时安装启动没有问题。
我使用的是学校的计算机,这些计算机的 UEFI 菜单受密码保护,因此我无法访问它,而且我将有大约 3 周的时间无法使用笔记本电脑(我这样做的主要原因)。我用朋友的笔记本电脑测试了它,禁用了安全启动,但仍然无法启动。我还看到一些教程没有添加 EFI 分区,所以我尝试不使用那个,但仍然无法工作。我知道这不是 64GB usb 无法启动,因为我之前也对其进行了实时安装,并且它启动正常。
请问,我已经尝试让它工作了两天了,有什么想法吗?我几乎不能理解这些东西,所以如果你能一步一步解释的话那就太好了。
答案1
在 EFI 下,引导加载程序作为普通文件存储在EFI 系统分区 (ESP)。启动哪个引导加载程序存储在 NVRAM 中。在 EFI 模式下,标准 Linux 安装将其引导加载程序作为EFI/ubuntu/shimx64.efi
(进而调用EFI/ubuntu/grubx64.efi
)放置在 ESP 上,并在 NVRAM 中存储对此的引用。当磁盘是内部磁盘时,这可以正常工作。但是,对于外部磁盘,当磁盘从计算机中拔出时,NVRAM 变量可能会被擦除;即使没有,磁盘也只能在安装了操作系统的计算机上启动。
由于必须在运行操作系统安装程序和应急实用程序的计算机上准备它们,因此 EFI 为此类引导加载程序提供了一个特殊的文件名。在 x86-64 系统上,该名称为EFI/BOOT/bootx64.efi
。因此,Ubuntu 安装程序使用此名称。安装到 USB 闪存驱动器后,您可以自己执行相同的操作:
- 挂载 USB 闪存驱动器上的 ESP。假设它在 中
/mnt
。 - 通过键入来复制原始引导加载程序文件
cp -r /mnt/EFI/ubuntu /mnt/EFI/BOOT
。 - 通过键入 重命名 shim 的副本
mv /mnt/efi/BOOT/shimx64.efi /mnt/efi/BOOT/bootx64.efi
。
现在,磁盘应该可以在任何基于 64 位 EFI 的计算机上启动。当然,您可能需要使用计算机的内置启动管理器(就像在基于 BIOS 的计算机上一样)从 USB 闪存驱动器启动。
答案2
我不知道为什么,我也不在乎,我只是很高兴它终于起作用了...我尝试使用 v.15.1,尝试使用 14.04.4 LTS,没有任何问题!:)