从 PXE 映像创建 ISO 映像

从 PXE 映像创建 ISO 映像

我有组成我使用的 PXE 映像的自定义文件vmlinuzinitrd给定这个 initram 映像,有什么方法可以构建 ISO 等效映像吗?

genisoimage我从工具中看不出任何明显的东西mkisofs。我是否错过了一些东西,也许我试图完成的事情没有意义?

答案1

第一个问题是,您要启动 UEFI 还是传统 BIOS 系统?或者也许两者兼而有之?

对于传统 BIOS 系统,您需要一个既能满足 ISO9660 文件系统引导规范 (El Torito) 又能引导 Linux 的引导加载程序,例如操作系统

您需要为引导加载程序编写一个配置文件,告诉它加载您的vmlinuzinitrd并提供任何必要的内核引导选项,然后从引导加载程序、其配置文件vmlinuzinitrd.在genisoimage/mkisofs阶段,您需要添加一些选项来指示应该使用包含 El Torito 扩展来构建 ISO 映像。

请注意,这将为您提供一个只能作为真实或虚拟 CD/DVD 启动的 ISO 映像。

为了使 ISO 映像在写入 U 盘或其他类似 HDD 的介质时也能正常工作,您需要向映像文件添加另一组结构,这样它也可以被解释为有效的可启动 HDD 映像。这个过程可以被称为isohybrid流程,以第一个使其成为可能的工具的名称。像现在这样的较新的 ISO 映像创建工具xorriso具有此内置功能。

对于 UEFI,许多常见的 UEFI 固件实现都将处理 ISO9660 文件系统,因此任何可以加载 Linuxvmlinuzinitrd文件的 UEFI 引导加载程序都应该可以工作。您只需将该引导加载程序放置到 ISO 文件系统中,以便引导加载程序文件位于<ISO mountpoint>/EFI/boot/bootx64.efi(假设您要引导 64 位 x86 系统;对于其他体系结构,UEFI 具有不同的引导加载程序文件名)。

还可以将包含 UEFI 启动文件的 FAT32 文件系统映像嵌入到 ISO 映像中,以满足仅支持 FAT32 文件系统类型但可以从 ISO9660/El Torito 加载的较旧/更严格/简约的 UEFI 实现可启动CD。同样,您的 ISO 映像创建工具将需要一些选项来指定您想要执行此操作,并且您还需要提供 FAT32 文件系统映像。

相关内容