启用GRUB从内核自动引导
问题描述:
我正在为操作系统开发内核。为了执行它,我决定使用GRUB。目前,我有一个脚本附加到GRUB的stage1
,stage2
,一个填充文件和内核本身一起使其可引导。唯一的问题是,当我运行它,你必须让GRUB知道的内核,它手动有多大,然后引导它,就像这样:启用GRUB从内核自动引导
kernel 200+KERNELSIZE boot
KERNELSIZE
是块内核的大小。这很好,可以开始,但是可以在二进制文件中获取这些值,并使GRUB自动引导内核?有关如何实现这一目标的任何建议?
答
我想你可以制作自己的menu.lst conf文件,在grub shell中加载“configfile /path/to/menu.lst”,然后根据需要执行“setup(hd0)”替换值。我只是猜测..不知道你的自定义设置有什么不同。
答
http://www.gnu.org/software/grub/manual/grub.html#Embedded-data给出了关于GRUB中块列表存储的一些一般信息。最重要的是,它提到了块列表存储在stage2中明确定义的位置。
您可能需要查看GRUB源代码来确定确切的位置。
传统的方法是把你的内核本身放在一个文件系统上grub可以读取;你没有这样做的任何特定原因? – 2008-10-19 04:52:02
我同意查尔斯在这里。将操作系统置于现有的文件系统中,直到操作系统拥有自己的文件系统。 – 2008-10-19 10:27:24