这可能是一个愚蠢的问题,但我想确认一个有关硬盘工作原理的小细节,到目前为止我只是假设。
我知道 440 字节的引导加载程序不会出现在非可引导数据驱动器(即未安装操作系统的驱动器)上,但是除了 MBR/GPT 分区表本身之外,通常还包含引导加载程序的引导扇区又如何呢?
纯用作数据驱动器的驱动器是否需要引导扇区,并且运行 CMDfixmbr
命令理论上是否可以修复数据驱动器损坏的引导扇区?
答案1
我知道 440 字节的引导加载程序不会出现在非可引导数据驱动器(即未安装操作系统的驱动器)上,但是除了 MBR/GPT 分区表本身之外,通常还包含引导加载程序的引导扇区又如何呢?
那是一样的。每个磁盘上的 0 扇区包含 440 字节的启动代码和 72 字节的分区表信息;这就是分区表格式是称为“主引导记录”。
(这同样适用于 GPT 磁盘。GPT 分区表从扇区 1 开始,但每个磁盘在扇区 0 中仍然有一个所谓的“保护性” MBR,它没有真正的分区但可能仍包含 BIOS 引导代码。)
当然,由于数据磁盘上的 MBR 引导代码区域不用于任何用途,因此可能就像是从工厂出来的一样是空白的 - 但它也可能有一个常规的引导代码来搜索“活动”分区,或者它可能有一些 15 年前安装在其上的操作系统的其他残留物。
因此,即使未使用,该区域也始终存在,但没有任何东西可以强制执行其内容。
注意分割引导记录(通常称为 VBR)与整个磁盘引导扇区不同。通常,440 字节的磁盘引导扇区只知道如何找到可引导分区,而该分区的引导记录知道如何引导特定的操作系统。(也有例外;例如,GRUB 将其代码存储在分区的引导记录以外的其他地方,但总体思路仍然相同。)
该fixmbr
命令仅更新磁盘的 MBR,但不会触及分区的启动信息 - 对于 Windows 来说,这是由它来完成的fixboot
。
通常,文件系统总是会为引导加载程序保留一些空间(实际大小因文件系统类型而异)。如果分区从未安装过操作系统,则其引导记录通常为空白,或者可能有一些虚拟代码,会打印出类似“不是可引导磁盘”的内容。
答案2
是的,任何分区都包含引导扇区。它由引导过程顺序定义 - 在此过程中,将检查分区的第一个扇区是否有引导扇区签名(最后两个字节为 55 AA - 如果不存在,则该分区被视为未格式化),如果找到,则将该扇区加载到内存中,代码执行将跳转到该扇区。换句话说,有效的引导扇区必须包含引导加载程序代码或“远返回”命令(否则,引导过程将挂起)。分区是否可引导并不重要。