您需要为引导加载程序编写一个配置文件,告诉它加载您的vmlinuz和initrd提供任何必要的内核引导选项,然后从引导加载程序、其配置文件vmlinuz和initrd. 在genisoimage/mkisofs阶段,您需要添加一些选项来指示 ISO 映像应该使用包含的 El Torito 扩展来构建。
请注意,这将为您提供一个 ISO 映像,该映像仅可作为真实或虚拟 CD/DVD 引导。
为了使 ISO 映像在写入 USB 记忆棒或其他类似 HDD 的媒体时也能正常工作,您需要向映像文件添加另一组结构,因此它也可以解释为有效的可引导 HDD 映像。这个过程可能被称为isohybrid过程,由第一个使之成为可能的工具的名称。像现在这样较新的 ISO 映像创建工具xorriso具有此内置功能。
对于 UEFI,许多常见的 UEFI 固件实现将处理 ISO9660 文件系统,因此任何可以加载 Linuxvmlinuz和initrd文件的 UEFI 引导加载程序都应该可以工作。您只需将该引导加载程序放入 ISO 文件系统,以便引导加载程序文件位于<ISO mountpoint>/EFI/boot/bootx64.efi(假设您要引导 64 位 x86 系统;对于其他架构,UEFI 具有不同的引导加载程序文件名)。
也可以将包含 UEFI 引导文件的 FAT32 文件系统映像嵌入到 ISO 映像中,以满足即使是仅支持 FAT32 文件系统类型但可以从 ISO9660/El Torito 加载的较旧/更严格/极简主义的 UEFI 实现可引导光盘。同样,您的 ISO 映像创建工具将需要一些选项来指定您要执行此操作,并且您还需要提供 FAT32 文件系统映像。
第一个问题是,您要引导 UEFI 还是传统 BIOS 系统?或者两者兼而有之?
对于旧版 BIOS 系统,您需要一个既能满足 ISO9660 文件系统引导规范 (El Torito) 又能引导 Linux(例如ISOLINUX )的引导加载程序。
您需要为引导加载程序编写一个配置文件,告诉它加载您的
vmlinuz
和initrd
提供任何必要的内核引导选项,然后从引导加载程序、其配置文件vmlinuz
和initrd
. 在genisoimage
/mkisofs
阶段,您需要添加一些选项来指示 ISO 映像应该使用包含的 El Torito 扩展来构建。请注意,这将为您提供一个 ISO 映像,该映像仅可作为真实或虚拟 CD/DVD 引导。
为了使 ISO 映像在写入 USB 记忆棒或其他类似 HDD 的媒体时也能正常工作,您需要向映像文件添加另一组结构,因此它也可以解释为有效的可引导 HDD 映像。这个过程可能被称为
isohybrid
过程,由第一个使之成为可能的工具的名称。像现在这样较新的 ISO 映像创建工具xorriso
具有此内置功能。对于 UEFI,许多常见的 UEFI 固件实现将处理 ISO9660 文件系统,因此任何可以加载 Linux
vmlinuz
和initrd
文件的 UEFI 引导加载程序都应该可以工作。您只需将该引导加载程序放入 ISO 文件系统,以便引导加载程序文件位于<ISO mountpoint>/EFI/boot/bootx64.efi
(假设您要引导 64 位 x86 系统;对于其他架构,UEFI 具有不同的引导加载程序文件名)。也可以将包含 UEFI 引导文件的 FAT32 文件系统映像嵌入到 ISO 映像中,以满足即使是仅支持 FAT32 文件系统类型但可以从 ISO9660/El Torito 加载的较旧/更严格/极简主义的 UEFI 实现可引导光盘。同样,您的 ISO 映像创建工具将需要一些选项来指定您要执行此操作,并且您还需要提供 FAT32 文件系统映像。