将可启动 CD 映像转换为混合可启动映像

将可启动 CD 映像转换为混合可启动映像

我不知道如何给这篇文章起标题,因为我不知道问题是什么。我用 生成了一个.iso文件,其中genisoimage包含我业余爱好的操作系统。用 测试这个文件qemu -cdrom file.iso工作正常,但我还想把这个文件刻录到 U 盘上。因为我用的是 Windows,所以我一直使用鲁弗斯刻录操作系统 iso,但使用此文件时出现以下错误:

该映像无法启动,或者使用了 rufus 不支持的启动或压缩方法

我做错了什么吗?genisoimage或者我可以做些其他事情来解决这个问题?

PS:该操作系统使用已写入 iso 的自定义引导加载程序。

编辑

这是我用来创建 iso 的命令:

genisoimage -R -J \
    -c boot/bootcat \
    -b boot/boot.sys \
    -no-emul-boot \
    -boot-load-size 4 \
    -o build/myos.iso \
    ./build/iso

在网上搜索后我发现-no-emul-boot我应该使用-hard-disk-boot但是这会返回另一个错误:

启动映像 './build/iso/boot/boot.sys' 没有分区

我尝试用 dd 将引导加载程序转换为软盘映像,但没有任何变化。

如何在该二进制文件上设置分区?

编辑2

正如所指出的丹尼尔B经过研究,我确认我需要使用混合 ISO 才能从 USB 启动。事实证明这isohybrid <isofile>应该可以解决问题,但由于我使用的是自己的引导加载程序,因此会出现此错误:

引导加载程序没有 isohybrid build/myos.iso 和 isolinux.bin 混合签名。请注意,isolinux-debug.bin 不支持混合引导

是否可以将此签名包含在我自己的引导加载程序中,或者是否存在其他工具来创建混合 ISO?

相关内容