小编Zul*_*had的帖子

Grub Stage1 究竟是如何访问/加载 stage 2 的?

这是我有史以来的第一个问题,我已将这个问题提交给 Red Hat 讲师,但没有找到任何令人满意的答案。

我正在使用 RHEL/CENTOS6、GRUB Legacy 0.97,并查阅了大量解释 linux 引导过程的文档。

几乎所有的博客、文档等都成功地解释了所涉及的步骤和整个过程,但在加载 grub stage2 时实际发生的情况一致失败。

这是我对这个过程的理解,也做了一些测试;

  1. BIOS(不使用 EFI)读取 MBR,查找分区表,并将 GRUB stage1(前 446 字节)加载到内存中
  2. 我在 1024 柱面下有 /boot 分区,我从一堆文档中提取的想法是,如果 GRUB stage1 位于 1024 柱面以下的某个位置,则它可以直接加载 stage2。我查阅过的一些文档提到 stage1.5 位于扇区 63 之前的 MBR 之后,而其他人则建议它可以位于磁盘的前 1MB 中的任何位置,而另一组声称 stage1.5 只是 GRUB v2 的东西,而不是适用于 GRUB 遗留系统。
  3. GRUB stage2 具有读取文件系统所需的所有驱动程序/模块,从而加载内核和 ramdisk 并将控制权移交给内核。
  4. 内核在 RHEL/CENTOS 6 上启动 init,在 RHEL/CENTOS 7 上启动 systemd。

我已经从磁盘的第 1 MB 转储了所有数据,并且可以确认除了 MBR 之外没有任何数据。我对 446 字节 GRUB stage1 如何从文件系统加载 stage2 感到困惑?根据维基百科上的一些图片和一些文档,安装GRUB时,stage1包含一个指向stage2的LBA48。

根据事实,我试图测试当 stage2 从 /boot/grub/ 目录中删除或重命名时系统是否启动。即使文件系统中没有 …

linux grub boot

12
推荐指数
1
解决办法
1万
查看次数

标签 统计

boot ×1

grub ×1

linux ×1