我不知道如何给这篇文章起标题,因为我不知道问题是什么。我用 生成了一个.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?