7

我正在使用准系统教程作为我正在开发的操作系统的基础,它似乎是一个较旧的教程:它已经将内核编译为软盘映像,然后使用 GRUB 加载它。

基本上,我仍然想使用 GRUB,但我想让我的操作系统从 CD 上运行。主要原因是我实际上没有可用的真正软盘驱动器(我目前正在 VirtualBox 中进行测试),因此我无法在真正的硬件上测试我的操作系统。

我一直在网上四处寻找,我可以找到很多从软盘映像创建可引导 CD 的实用程序,但这些似乎都需要一个真正的软盘驱动器,而且它并不是我真正想要的。理想情况下,我希望能够在我的制作步骤中获得一张可引导的 CD,而无需首先将映像放在软盘上,这似乎毫无意义。

我想回答这个问题的简单方法是:如何设置 GRUB 以从 CD 读取我的内核映像?我是否需要一个特殊的实用程序才能从 Windows 执行此操作?(内核还不能自己编译,这不是很长时间)

谢谢!

4

3 回答 3

6

我自己找到了我的项目的解决方案,并从 OSdev 的人们那里得到了一些建议。有一个名为 mkisofs 的实用程序(可以使用 cygwin dll 在 Windows 下运行)获取一个目录,并将该目录制作成可以刻录到 CD 的 ISO 映像。使用 -b 标志,您可以指定应驻留在磁盘引导扇区中的文件。

解决方案就是在引导扇区中安装 GRUB,并使用 GRUB 加载内核映像,我可以轻松地将其编译为非软盘形式。

于 2009-01-09T02:00:10.820 回答
5

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 并跳转到保护模式。

于 2009-01-08T19:26:17.403 回答
1

如果您对查看代码感兴趣,那么Moblin Image Creator可能是一个值得一试的好应用程序。它是用 python 编写的,可以为 Moblin Linux 的 Live 和可安装配置创建不同类型的可引导映像(CD、USB 和 NAND)。

于 2009-01-08T20:41:53.943 回答