我想使用 GRUB2 启动自定义内核(非多重启动),我已经读到我需要grub.cfg
像这样:
menuentry "custom kernel" {
set root=(hd0,0)
chainloader +1
}
所以,我有一些问题:
- grub如何检测内核? (我使用的多重引导规范
kernel /boot/kernel.bin
)
- 我的内核应该是什么样子(抱歉我的英语不好)?它必须是 512 字节吗(就像加载到 0x7c00 中的自定义引导加载程序一样)?
-
(hd0,0)
硬盘分区是什么?如果使用CD我必须放什么?或许(cdrom0,0)
?
- 要启动 Linux 内核,我们可以使用
linux
命令,我可以用它来启动我的自定义内核(进行一些更改)吗?
- Grub会进入吗
Protected mode
or not?
See the 文档:
多重引导(请参阅多重引导规范)是 GRUB 支持的本机格式。为了方便起见,还支持 Linux、FreeBSD、NetBSD 和 OpenBSD。如果您想启动其他操作系统,则必须链式加载它们(请参阅链式加载)。
因此,对于非多重引导内核,您必须使用链加载器功能。链式加载意味着 GRUB 将加载指定硬盘分区的第一个扇区(512 字节)并像 BIOS 引导 MBR 一样引导它。这意味着 CPU 处于实模式并且引导扇区加载到 0x7C00。
是的,您可以使用以下命令启动内核linux
命令,通过使其与 Linux 引导过程兼容,但这比简单地使内核兼容多重引导要复杂得多。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)