制作一个可以在 BIOS 和 UEFI 模式下启动的 U 盘

制作一个可以在 BIOS 和 UEFI 模式下启动的 U 盘

我已经使用以下方式制作了一个 LiveCD本指南加上在互联网上的额外搜索,我使用来自 Ubuntu xenial 存储库的软件包制作了一个可以运行的系统:它可以启动,系统可以使用,无线可以在我测试过的所有笔记本电脑上使用,并且可以使用 Ubiquity 安装(我印象深刻)。

问题是:我只能在 BIOS 模式下启动。在 UEFI 模式下,什么都没有出现,甚至没有 GRUB 救援,所以完全出了问题。

我曾尝试复制引导电喷直接从 Ubuntu 的 ISO 下载,但不起作用。Ubuntu 的 ISO 有一些文件,特别是casper/vmlinuz.efiEFI/BOOT/bootx64.efiEFI/BOOT/grubx64.efi无论我做什么,我都无法创建或找到它。我只找到了 vmlinuz,它没有 .efi 扩展名,至于其他两个,我不知道如何创建这些文件。

为了在 BIOS 模式下启动计算机,我使用了 isolinux,它很管用。我也尝试使用 syslinux 在 UEFI 模式下启动,但没有成功,所以我尝试使用 GRUB,就像在 Ubuntu 的 LiveCD 中所做的那样。

要使我制作的 LiveCD 像 Ubuntu 一样以 UEFI 模式启动,需要哪些步骤?我认为我需要创建特殊文件。如果是,我该如何创建它们?

谢谢。

答案1

一般来说,你需要在准备好的 USB 驱动器上安装 Linux 的 EFI 模式引导加载程序。此引导加载程序应存储EFI/BOOT/bootx64.efiEFI 系统分区 (ESP),这是磁盘上的 FAT 分区。您准备的磁盘可能缺少 ESP,因此您可能需要创建它。(即使是普通的 FAT 分区通常也足够了,因此如果磁盘有 FAT 分区,您可能不需要单独的 ESP。)

棘手的是,您写入磁盘的引导加载程序必须正确配置才能引导磁盘上的安装。从 Ubuntu 安装.iso文件中获取的 GRUB 如果不进行更改将无法工作,因为它被配置为引导 Ubuntu 安装程序,而不是您在 USB 驱动器上创建的安装。因此,您必须对引导加载程序有足够的了解才能知道如何配置它,并且对您的安装有足够的了解才能知道在引导加载程序的配置文件中输入哪些值。

不幸的是,GRUB 2 是一个很难配置的引导加载程序;它的配置文件格式相当复杂,通常由专门的脚本创建。甚至二进制文件也可能需要根据您的具体情况进行修改,因为主配置文件 ( grub.cfg) 通常位于 Ubuntu 根目录 ( /) 或/boot分区中,这意味着必须针对您的特定安装修改二进制文件。

我写了一页Linux 的 EFI 引导加载程序涵盖了许多替代方案,其中大多数都比 GRUB 2 更容易配置。我自己的重新索引可能是最容易设置和配置的,因为它会在启动时尝试自动检测 Linux 内核,并且通常可以确定要传递给内核哪些选项才能启动系统。因此,使用 rEFInd 启动所需的配置文件更改很少,有时甚至不需要。

其中一个重要警告是安全启动。如果您希望计算机在安全启动处于活动状态时启动,则必须提供 Shim ( shimx64.efi) 或 PreLoader ( preloader.efi) 作为引导加载程序(重命名为EFI/BOOT/bootx64.efi),并将后续引导加载程序适当地重命名为 Shim 或 PreLoader。此外,根据所讨论的引导加载程序,您可能需要在新计算机上启动磁盘时向固件添加密钥或哈希值。在这种情况下,在新计算机上使用 GRUB 2 可能值得,因为 Ubuntu 提供了让计算机启动 Ubuntu 所需的所有组件,而无需处理密钥或哈希值。

相关内容