BIOS 如何读取驱动器?

BIOS 如何读取驱动器?

即,所有引导加载程序是否都相同,以便任何 BIOS 始终可以读取它们并将控制权传递给驱动器,这样 BIOS 就不需要理解 FAT32、NTFS、ext4、btrfs 等?

答案1

是的。

在 GPT 之前,答案是 BIOS 会检查磁盘是否可启动(通过在磁盘的第 511 和 512 个字节上查找特定的“魔术签名”),并且这些字节被设置为预期值,BIOS 可以从磁盘上的零字节开始运行代码。

BIOS 通常不理解 FAT32、NTFS 或 ext4 等文件系统格式。BIOS 甚至不理解分区。能够识别分区是一个概念,它被塞进了存储在磁盘开头的代码字节中。

然后,该引导代码通常会找到其他代码,这些代码可能是另一个引导加载程序,或“第二阶段引导加载程序”(OpenBSD 就是这样做的),它通常对文件系统有更多的了解(足以能够开始定位内核并启动它)。

使用 GPT(“GUID 分区表”),该过程会更复杂一些。 (U)EFI 会查看其他一些细节。但是,它们有相似之处:(U)EFI 查找的具体细节与文件系统无关,并且 GPT 会在该位置运行代码(例如“引导加载程序”)。

相关内容