我已经完成了我的简单操作系统,我想测试它在一个真正的硬件(PC),而不是bochs或qemu。我的操作系统有一个自定义引导程序和一个内核,我使用cat将它们连接到一个bin文件中。但是我花了几个小时找出一种将bin文件转换为可引导的iso文件的方法,但每次都失败了。根据OSDev.org的说法,我认为我需要使用genisoimage(mkisofs)来进行转换,但我不知道这个命令到底是如何工作的,我最终输出了一个iso文件,但这个文件不工作。(我想我使用了错误的命令,有人能给我解释一下吗?)
我尝试过的其他方法:
另外,什么是El-Torito??
发布于 2020-12-28 19:47:40
当CD被引导时,固件检查CD中的元数据中的“引导目录”。这是每种计算机都包含(最多)一个条目的条目列表;这样就可以创建一个用于80x86BIOS和80x86UEFI(以及PowerPC和Sparc和.)的CD。
对于80x86,有4种不同类型的条目:
\EFI\BOOT\BOOTX64.EFI
).),从FAT文件系统中找出它想要的文件
dl
中)将用于CD驱动器本身,因此您可以使用它从同一个磁盘加载更多的东西。处理CD的最佳方法是编写两个新的引导加载程序(一个用于“无仿真,80x86 BIOS”,另一个用于UEFI);然后使用您喜欢的任何工具在CD上创建适当的结构(例如,genisoimage
带有-no-emul-boot
选项,用于"no,80x86BIOS“引导加载程序,另一个用于UEFI似乎不存在的其他选项!)。
请注意,编写自己的实用程序“更聪明”是很容易的。您可能希望创建一个FAT文件系统(用于UEFI)和一个ISO9660文件系统(用于操作系统的其他文件-- help/docs、驱动程序等),但是大多数工具都不会为您创建FAT文件系统,而且两个文件系统(FAT和ISO9660)中的文件都可以使用相同的扇区(这样,相同的文件出现在两个文件系统中而不需要花费两倍的磁盘空间)。这样的东西可能只需要你花一周的时间自己写(而且你会学到很多关于CD和ISO9660的东西,反正你最终也会学到的)。相关文档(用于从CD、ISO9660文件系统、FAT文件系统和UEFI启动)都很容易在网上获得。
,什么是El?
El是“可引导CD-ROM规范”的另一个名称,它描述了CD上使其可引导所需的结构。
https://stackoverflow.com/questions/65483051
复制相似问题