12

我正在为操作系统开发内核。为了执行它,我决定使用 GRUB。目前,我有一个附加到 GRUB 的脚本stage1stage2一个 pad 文件和内核本身,这使得它可以启动。唯一的问题是,当我运行它时,你必须让 GRUB 知道内核在哪里以及它有多大,然后手动启动它,如下所示:

内核 200+KERNELSIZE
开机

KERNELSIZE是以块为单位的内核大小。一开始这很好,但是否可以在二进制文件中获取这些值并让 GRUB 自动引导内核?关于如何做到这一点的任何建议?

4

2 回答 2

3

http://www.gnu.org/software/grub/manual/grub.html#Embedded-data提供了一些关于 GRUB 中的块列表存储的一般信息。最重要的是,它提到阻止列表存储在 stage2 中明确定义的位置。

您可能需要查看 GRUB 源代码以找出确切的位置。

于 2008-10-20T04:20:45.533 回答
2

我想你可以制作自己的 menu.lst conf 文件,在 grub shell 中使用“configfile /path/to/menu.lst”加载它,然后根据需要执行“setup (hd0)”替换值。我只是在猜测.. 不知道您的自定义设置有什么不同。

于 2008-10-20T04:13:34.347 回答