引导扇区是否被视为分区?

引导扇区是否被视为分区?

关于这一点似乎存在矛盾的信息。

维基百科条目主引导记录(又名“引导扇区”)说:

“MBR 不在分区中;它位于设备的第一个扇区(物理偏移量 0),位于第一个分区之前。(非分区设备上或单个分区内的引导扇区称为卷引导记录。)”

但维基百科条目卷引导记录说:

“在分区设备上,它是设备上单个分区的第一个扇区。”

因此,我不确定引导扇区 (1) 是否位于第一个分区之前或 (2) 是否包含在第一个分区中。

如果它包含在第一个分区中,那么显然它不是一个分区。
但是,如果它在第一个分区之前,我就不确定了。

我的理解是当使用 GPT 时中,我们有“BIOS 启动分区”和“EFI 系统分区”的概念。

答案1

这些信息并不矛盾,因为两个级别或常规分区磁盘上的“引导扇区”阶段。换句话说,MBR 和 VBR 不是一回事 - 一个存在于分区外部,另一个存在于内部。

启动过程总是从 MBR 开始,即系统的第 0 个扇区整个磁盘它位于任何分区之外;实际上,分区表本身也存储在同一个扇区中。但 MBR 很小,不能包含太多代码——它的主要任务只是选择一个分区并跳转到该分区的扇区 0,又称其 VBR。

现在,如果您有一个未分区的磁盘(例如软盘或一些 USB 记忆棒),其文件系统(“卷”)直接从整个磁盘的扇区 0 开始,那么 MBR 和 VBR 恰好重叠。BIOS 仍然执行整个磁盘扇区 0 中的内容,但该“MBR”代码不需要跳转到另一个级别,它只是直接执行 VBR 会执行的操作。但在一般情况下,它们仍然是两个不同的东西。


以上是通用 PC BIOS 启动过程。但它并不是一成不变的——BIOS 本身实际上并不关心分区或卷,它只启动磁盘的 0 扇区,并让其关心其余部分。一旦启动 MBR 代码,它就可以做任何它想做的事情。

这意味着有些引导加载程序不要完全遵循 VBR 约定。GRUB 引导加载程序是自行执行操作的引导加载程序的主要示例 - 其 MBR 代码不会跳转到 VBR,而是跳转到固定位置的单独磁盘区域。GPT“BIOS 引导分区”也是 GRUB 的一项发明,其他引导加载程序不会使用它。


最后,现代 UEFI 系统根本没有引导扇区。它们可以使用 MBR 格式的磁盘,但它们完全忽略存储在 MBR 或 VBR 中的实际引导代码。相反,UEFI 系统始终使用存储在“EFI 系统分区”中的实际文件进行引导。

答案2

在传统 MBR 模式下,引导扇区可以位于磁盘的开头或分区的开头。引导扇区很小,不是分区。

UEFI 完全不同,它不使用引导扇区 - 而是使用适当格式和标记的分区中的文件。

答案3

基本上,对于传统的 MBR,有两种类型的引导扇区,“主引导记录”和“卷引导记录”。

分区是硬盘的一部分,由分区表定义。

对于 MBR(不是 GPT)来说,这很简单。有几个字节,一个字节决定分区类型(加 128 表示“可启动”),其他字节表示分区从哪个扇区开始以及大小。

让我们看一个真正的分区表,这是fdisk -l /dev/sda我的 Linux 系统上的输出。这将以人性化格式提供表格。信息包括分区、启动标志(* = boot)、起始扇区、大小、结束扇区(根据起始 + 大小计算)和类型(fdisk 有一个命名的类型列表)。

/dev/sda1  *      2048   999423   997376  487M fd Linux raid autodetect
/dev/sda2       999424 31277055 30277632 14.4G fd Linux raid autodetect

如您所见,第一个分区不是从扇区 0 开始的。每个扇区 2048 * 512 字节意味着该磁盘的前 1 兆字节不属于任何分区。

由于各种原因,这种情况很常见,但分区表和旧式 MBR 引导代码仅使用扇区 0 中的 512 个字节。其中的前 66 个字节是 64 字节分区表和 2 字节签名,用于告诉旧式 BIOS 分区表位于此处。根据操作系统的不同,MBR 的其他区域可能用于表示其他内容。

扇区 1-2047 可由引导加载程序、磁盘实用程序等使用。

“卷引导记录”只是每个分区的第一个扇区。因此,此磁盘的扇区 2048 和 999424 上有 VBR。

Windows MBR 将读取分区表,找到第一个可启动分区,并运行其 VBR。

  • 第一个分区可以从 0 开始并包含 MBR 吗?

是的,但是 A) 操作系统必须预料到这种情况,并且 B) 如果您希望其他操作系统在硬盘上共存,那么这是一个坏主意。我可以想象大多数操作系统都会拒绝启动或安装这种类型的分区,但我从未尝试过。

  • 第一个分区可以从 1 扇区开始吗?

是的,但是由于“高级格式驱动器”内部的扇区大小为 4096,您需要该数字能够被 8 整除,因为出于各种原因,这会影响性能。

  • 第一个分区可以从第 8 扇区开始吗?

是的,但是有些依赖前 1M 空闲空间的东西将无法工作。我认为 Linux GRUB 引导加载程序就是其中之一。

  • 分区之间可以有缝隙吗?

当然。这将是遵守 MBR 的操作系统不会触及的空间。

  • 可以有重叠分区吗?

是的,但这显然是个坏主意。不知道操作系统如何处理它。一些旧的操作系统(如 DOS)可能不会检查,可能会崩溃或出现严重故障。其他操作系统可能会拒绝安装分区。

  • 您可以在物理磁盘的末尾进行分区吗?

往上看。

相关内容