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

kernel 200+KERNELSIZE
boot

KERNELSIZE 是块中内核的大小。这很好,一开始就没问题,但是可以在二进制文件中获取这些值并使GRUB自动启动内核吗?有关如何实现这一目标的任何建议吗?

有帮助吗?

解决方案

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

其他提示

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

您可能希望查看GRUB源代码以确定具体位置。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top