使GRUB自动从内核引导系统

12

我正在开发一个操作系统的内核。为了执行它,我决定使用GRUB。目前,我已经将一个脚本和GRUB的stage1stage2、一个pad文件以及内核组合在一起,使其可启动。唯一的问题是,当我运行它时,你必须手动告诉GRUB内核在哪里以及它有多大,然后才能启动它,像这样:

kernel 200+KERNELSIZE
boot

KERNELSIZE 是内核占用的块数。这对于初始阶段来说还可以,但是有没有可能在二进制文件中获得这些值并使GRUB自动启动内核?有什么建议吗?


1
传统的方法是将内核本身放在 grub 可读取的文件系统上;你不这样做是否有特别的原因? - Charles Duffy
我同意Charles的观点。在你的操作系统拥有自己的文件系统之前,使用现有的文件系统。 - Jason Dagit
好的,对于测试,我们有包含GRUB的最终二进制文件作为磁盘上的文件来在模拟器中使用。我该如何创建一个带有文件系统的磁盘映像呢? - Cristián Romo
2个回答

3

2

我想你可以自己制作一个menu.lst配置文件,使用“configfile /path/to/menu.lst”在grub shell中加载该文件,然后根据需要替换值执行“setup (hd0)”操作。不过这只是我的猜测...无法确定你的自定义设置有何差异。


事实证明,我们使用的是一份旧教程,告诉我们按照我们的方式操作。我们已经听从了Charles的建议,将可启动镜像移动到ISO中。 - Cristián Romo

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接