使用 GRUB 或其他程序集引导加载程序连接内核

Posted

技术标签:

【中文标题】使用 GRUB 或其他程序集引导加载程序连接内核【英文标题】:Connecting a Kernel with GRUB or some other assembly bootloader 【发布时间】:2014-11-14 16:51:53 【问题描述】:

我一直在关注这个内核 (http://www.cs.vu.nl/~herbertb/misc/writingkernels.txt) 并且已经深入到它与 grub 链接的部分。但是,我在 /boot/grub/ (Linux mint x64) 中没有 stage1 和 stage2。此外,当我写“mpartition -I c:”时,我收到错误:“mpartition: init: open: No such file or directory”。因此,最好获得指向 stage1 和 stage2 的链接,其中包含所有必要的文件或一些代码到将加载此内核的程序集引导加载程序。额外说明:由于我的系统,我使用了“elf64”而不是“elf”。

【问题讨论】:

【参考方案1】:

您提到的说明适用于 GRUB v1,现在称为 GRUB legacy。当前的 GRUB 是以前称为 GRUB2 的项目。它们几乎完全不同 - 因此您的说明不再有效。

也就是说,当前的 GRUB 比传统的 GRUB 灵活得多 - 也许您可以简单地使用它的 chainloader 功能来加载 kernel.bin

【讨论】:

你能给我和'chainloader'的例子来加载kernel.bin吗。 好吧,在 GRUB 命令行中输入 'chainloader kernel.bin' 将是一个起点。

以上是关于使用 GRUB 或其他程序集引导加载程序连接内核的主要内容,如果未能解决你的问题,请参考以下文章

一分钟掌握Linux系统grub.conf配置核心知识

具有共享库支持的 Grub 引导加载程序

一分钟掌握Linux系统grub.conf配置核心知识

一分钟掌握Linux系统grub.conf配置核心知识

一分钟掌握Linux系统grub.conf配置核心知识

一分钟掌握Linux系统grub.conf配置核心知识