我正在使用准系统教程作为我正在研究的操作系统的基础,它似乎是一个较旧的教程:它将内核编译为软盘映像,然后使用GRUB加载它。
基本上,我仍然想使用GRUB,但我想让我的操作系统从CD运行。主要原因是我实际上没有真正的软盘驱动器(我目前在VirtualBox中进行测试),因此无法在真实硬件上测试我的操作系统。
我一直在网上闲逛,我可以找到许多从软盘映像创建可启动CD的工具,但这些似乎都需要一个真正的软盘驱动器,而且它不是我真正想要的对于。我希望能够在我的制作步骤中最终得到可引导的CD,而不需要先将图像放在软盘上,这看起来毫无意义。
我想回答这个问题的简单方法是:如何设置GRUB以从CD读取我的内核映像?我需要一个特殊的工具来从Windows执行此操作吗? (内核无法编译自己,这不适用于looong)
谢谢!
答案 0 :(得分:5)
我自己找到了我项目的解决方案,并得到了OSdev的一些建议。有一个名为mkisofs的实用程序(可以在Windows下使用cygwin dll运行),它接受一个目录,并将该目录转换为可以刻录到CD的ISO映像。使用-b标志,可以指定哪个文件应驻留在磁盘的引导扇区中。
解决方案只是在引导程序中使用GRUB,并使用GRUB加载内核映像,我可以轻松地以非软盘形式编译。
答案 1 :(得分:4)
AFAIK可引导CD与可引导软盘几乎相同。您需要将引导加载程序(GRUB)放入引导扇区等,BIOS将处理低级别的东西,直到您切换到保护模式。
您可能需要制作图像,然后将其转换为实际的物理磁盘。
这是El Torito可引导CD规范: http://www.phoenix.com/NR/rdonlyres/98D3219C-9CC9-4DF5-B496-A286D893E36A/0/specscdrom.pdf
编辑:测试内核的另一种方法是使用可启动的USB记忆棒。同样,BIOS将处理低级别的USB内容,直到您打开A20并跳转到保护模式。
答案 2 :(得分:1)
如果您对查看代码感兴趣,那么Moblin Image Creator可能是一个很好的应用程序。它是用python编写的,可以为Moblin Linux的Live和可安装配置创建不同类型的可启动映像(CD,USB和NAND)。