core.img
和 中的文件的用途有什么区别/boot/grub
?谢谢。
我经常听说两阶段引导加载。虽然这里似乎是三阶段引导加载 https://en.wikipedia.org/wiki/GNU_GRUB#Version_2_(GRUB)
第 1 阶段:boot.img 存储在主引导记录 (MBR) 中,或者可选地存储在任何卷引导记录 (VBR) 中,并通过 LBA48 地址寻址下一阶段(因此,GRUB 旧版的 1024 柱面限制为避免);在安装时,它被配置为加载 core.img 的第一个扇区。
阶段 1.5:当 MBR 和第一个分区之间的扇区空闲且可用时,core.img 默认写入这些扇区。由于遗留原因,硬盘驱动器的第一个分区不是从扇区 1 开始(从 0 开始计数),而是从扇区 63 开始,留下 62 个扇区的空白空间不属于任何分区或文件系统,因此不容易出现任何问题与它有关。一旦执行,core.img 将加载其配置文件和所需的任何其他模块,特别是文件系统驱动程序;在安装时,它是从 diskboot.img 生成的,并配置为通过其文件路径加载第 2 阶段。
第 2 阶段:属于第 2 阶段的文件都保存在 /boot/grub 中,它是文件系统层次结构标准 (FHS) 指定的 /boot 目录的子目录。
答案1
/boot/grub
包含所有 GRUB(分为模块)。 GRUB 的目的是提供一个可以引导成熟操作系统的环境; GRUB 本身已经成为一个小型操作系统,其模块为各种存储设备、文件系统、加密层、软件 RAID 层、分区映射、与用户交互的方法等提供支持。
core.img
包含 GRUB 的一个小子集,通常目标为 32KiB 或更小。它的目的是提供访问/boot/grub
:它包含一个最小的用户界面,以及查找和读取所需的任何模块/boot/grub
。它是根据该系统的要求,使用该grub-mkimage
程序专门为其安装的每个系统构建的。看GRUB 文档中的映像列表。
答案2
来源:https://www.gnu.org/software/grub/manual/grub/html_node/Images.html
可以这样想:
boot.img 是阶段 1
core.img 是阶段 1.5
/boot/grub 是阶段 2
core.img 具有允许引导进程读取磁盘类型(例如 LVM 和 RAID)的模块,而 boot.img(在 MBR 中)无法读取这些磁盘类型。
core.img 是引导加载程序的一个组件,已从 /boot/grub 中分离出来,通过模块化来提高效率。