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