在BIOS和UEFI模式下,使用可从头开始的映像制作笔式驱动器

我使用本指南制作了一个LiveCD以及互联网上的其他搜索,我使用Ubuntu xenial存储库中的软件包制作了一个function系统:它可以启动,系统可以使用,无线工作在我测试的所有笔记本上,它可以是与Ubiquity一起安装(我印象深刻)。

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

我试图直接从Ubuntu的ISO复制引导EFI ,但是没有用。 Ubuntu的ISO有一些文件,特别是casper / vmlinuz.efiEFI / BOOT / bootx64.efiEFI / BOOT / grubx64.efi ,无论我做什么,我都无法创建或查找。 我发现只有vmlinuz,它没有.efi扩展名,另外两个,我不知道如何创建这些文件。

要在BIOS模式下启动计算机,我正在使用isolinux,它可以工作。 我尝试使用syslinux在UEFI模式下启动,但没有成功,所以我尝试使用GRUB,就像在Ubuntu的LiveCD中一样。

如Ubuntu那样,我在UEFI模式下制作LiveCD所需的步骤是什么? 我相信我需要创建特殊文件。 如果是,我该如何创建它们?

谢谢。

从广义上讲,您需要在已准备好的USB驱动器上安装适用于Linux的EFI模式引导加载程序。 此引导加载程序应作为EFI/BOOT/bootx64.efi存储在EFI系统分区(ESP)上,该分区是磁盘上的FAT分区。 您准备的磁盘有可能缺少ESP,因此您可能需要创建它。 (即使是普通的FAT分区通常也足够了,所以如果磁盘有FAT分区,你可能不需要单独的ESP。)

关于这一点的棘手问题是,您写入磁盘的引导加载程序必须正确配置以引导磁盘上的安装。 从Ubuntu安装.iso文件中获取的GRUB在没有更改的情况下将无法工作,因为它配置为引导Ubuntu安装程序,而不是您在USB驱动器上创建的安装。 因此,您必须充分了解引导加载程序以了解如何配置它,并且足够了解您的安装以了解要在引导加载程序的配置文件中放入哪些值。

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

我已经在Linux上编写了一个关于Linux的EFI启动加载器的页面,其中包含许多替代方案,其中大部分都比GRUB 2更容易配置。我自己的rEFInd可能是最容易设置和配置的,因为它试图自动检测Linux内核启动时,通常可以找出传递给内核以启动系统的选项。 因此,使用rEFInd引导所需的配置文件更改很少,有时甚至不存在。

其中一个重要的警告是安全启动。 如果您希望计算机在安全启动时启动,则必须提供Shim( shimx64.efi )或PreLoader( preloader.efi )作为引导加载程序(重命名为EFI/BOOT/bootx64.efi ),后续跟随为Shim或PreLoader重新命名引导加载程序。 此外,根据相关的引导加载程序,每当您在新计算机上引导磁盘时,可能需要向固件添加密钥或哈希值。 在这种情况下,可能值得在新计算机上使用GRUB 2的麻烦,因为Ubuntu提供了让计算机启动Ubuntu而不会弄乱键或哈希所需的所有部分。