为什么 MBR 和 GRUB 作为文件存在于 Linux 文件系统中?

为什么 MBR 和 GRUB 作为文件存在于 Linux 文件系统中?

计算机的主引导记录由原始二进制文件组成,不驻留在任何类型的分区上。旧版 GRUB 和 GRUB 2 安装在 MBR 末尾和第一个分区开头之间的扇区中。MBR 中的引导代码与文件系统格式无关,它会从位于其后的无人区加载 GRUB。为什么 MBR (boot.img) 和 GRUB (core.img) 可以通过 Linux 文件系统作为文件访问?

答案1

首先,在 Linux 中,一切都是文件。二进制文件和库都是文件。

其次,boot.img 和 core.img 不在您的 MBR 中。MBR 是硬盘的第一部分,包含初始引导和分区表。然后,MBR 将引导过程传递给位于引导分区上的 grub。

https://wiki.archlinux.org/index.php/Master_Boot_Record

http://www.thegeekstuff.com/2011/02/linux-boot-process/

https://www.gnu.org/software/grub/manual/html_node/Images.html

从上一个链接

启动映像

在 PC BIOS 系统上,此映像是 GRUB 启动的第一个部分。它被写入主引导记录 (MBR) 或分区的引导扇区。由于 PC 引导扇区为 512 字节,因此此映像的大小正好是 512 字节。

boot.img 的唯一功能是从本地磁盘读取核心映像的第一个扇区并跳转到该扇区。由于大小限制,boot.img 无法理解任何文件系统结构,因此 grub-setup 在安装 GRUB 时将核心映像第一个扇区的位置硬编码到 boot.img 中。

核心镜像

这是 GRUB 的核心映像。它由 grub-mkimage 程序根据内核映像和任意模块列表动态构建。通常,它包含足够的模块来访问 /boot/grub,并在运行时从文件系统加载其他所有内容(包括菜单处理、加载目标操作系统的能力等)。模块化设计使核心映像可以保持较小,因为必须安装它的磁盘区域通常只有 32KB。

有关在 PC 系统上可以安装核心映像的位置的详细信息,请参阅 BIOS 安装。

boot.img 和 core.img 都是 grub 包的一部分,并且存储在 /boot 中,无论 /boot 是否是独立于 / 的分区,它们都属于同一目录。

相关内容