Nac*_*cht 32 hard-drive filesystems bootsector
首先,我假设驱动器和/或分区从头到尾都有一个线性地址。必须是这种情况,否则类似的程序dd将无法充当复制机制。
在这个字节数组中,引导扇区几乎总是地址 0 吗?我想这取决于该驱动器上使用的文件系统?
抱歉这些低级的东西我真的不懂,想学习!
tel*_*coM 47
首先,我们需要指定使用的分区方案。用于 PC 的经典是 MBR,它与此分区方案中磁盘的第一个块(逻辑块地址 #0)共享名称:主引导记录。因此,MBR 分区问题标题的答案是yes。
主引导记录最多包含 446 字节的引导代码、主分区的分区表(每个分区仅 16 字节)和引导签名(2 字节)。在每个 16 字节的分区条目中,实际上只有 4 个字节可用于指定现代磁盘上分区的第一个块,只有 4 个字节可用于指定分区中的块数。因此,MBR 分区的起始点必须在距磁盘开头的 (2^32 - 1) 个块内,并且 MBR 分区的大小必须在 (2^32 - 1) 个块以内。实际上,这将 MBR 分区的用途限制在 2 TB 或更少的磁盘上。
传统上,MBR 引导代码只会识别活动的主分区,加载该分区的第一个块(有时称为分区引导记录,或 PBR)并执行它。然后,PBR 将包含特定于操作系统的引导程序。但是现代引导加载程序,如 Linux 的 GRUB 或一些全盘加密解决方案,可能希望做更复杂的事情,因此无法放入单个块中。
在旧磁盘中,当 Cylinder/Head/Sector 几何值实际上具有某些实际意义时,磁盘第一个磁头的整个第一磁道单独保留给 MBR 块:约定是在开始时启动每个分区轨道的第一个块,因此轨道 #0 的第一个块被 MBR 占用,整个轨道被跳过,第一个分区将从轨道 #1 开始。因此,MBR 块之后轨道 #0 上的扇区可供更高级的引导加载程序使用。在 MBR 分区的磁盘上,GRUB 引导加载程序通常会将其自身的至少某些部分嵌入其中。
在 LBA 寻址是标准的现代磁盘上,建立了一个新约定:第一个分区通常从逻辑块地址 #2048 开始,或者从磁盘的开头正好 1 MiB。这将确保即使磁盘将在内部处理某些 2 的幂的组中的块,第一个分区的开始仍将与此类块组的开始对齐。在 RAID 阵列和其他更大的存储系统上,这种数据对齐是充分发挥存储性能的重要部分。作为一个副作用,这个新约定可能会在 MBR 块和第一个分区的开头之间造成更多的“浪费”空间。
2011 年,当 Intel Sandy Bridge 微架构发布时,新的 UEFI 固件被引入大众,最终取代了传统的 BIOS。随之而来的是一种新的分区方案:GUID 分区表或简称 GPT。由于 MBR 的基本最大大小限制为 2 TB(假设标准块大小为 512 字节),因此需要一种新方案。
GPT 分区方案实际上包含一个“保护性 MBR”:GPT 分区磁盘的第一个块 (LBA #0) 包含一个有效的 MBR 块,基本上说“此磁盘已完全分配给您没有的分区类型了解,不要接触”只了解 MBR 风格分区的系统。从 LBA #1 开始是 GPT 的实际分区表数据。它允许分区大小增长到 zettabytes 范围 - 在可预见的未来应该足够了。
GPT分区方案取消了MBR的限制:
UEFI 固件还指定了新的引导加载程序方案。引导加载程序在磁盘上不再具有固定位置。相反,固件将具有从 FAT32 类型文件系统读取文件的内置能力,而引导加载程序将只是 FAT32 分区上标有特定分区类型 GUID 的常规文件。这样的分区称为 ESP,或 EFI 系统分区。(UEFI 固件标准是从 EFI 固件发展而来的,EFI 固件主要存在于 Intel Itanium 系统上,引导加载程序分区的名称和结构也是从那里继承的。)
因此,对于其他分区方案,包括 GPT,您不能假设引导扇区是驱动器上的第一个块——事实上,您不能假设引导扇区的概念甚至存在!
cyb*_*ard 16
是的,对于 MBR,引导扇区始终位于扇区 0。硬盘驱动器分为扇区,传统上是 512 字节,但 4TB+ 驱动器开始使用 4096 字节扇区。
您必须读取或写入整个扇区。
今天,LBA(逻辑块分配)具有从 0 到驱动器容量的标准扇区级数。
古老的硬盘驱动器实际上使用圆柱体、磁头和扇区。其中每个磁头容纳这么多扇区,每个柱面容纳这么多磁头。
文件系统不是从扇区 0 开始,而是分区表指示分区的开始,因此文件系统在此没有任何作用。
GPT 也开始取代 MBR,因为 MBR 有大约 2.2TB 的限制,并且有一种复杂的方式来表示 4 个以上的主分区。您需要逻辑分区,每个扩展分区可以包含许多逻辑分区。
GPT 消除了许多复杂性并进行了更新和简化。
这里有更多细节。
https://en.wikipedia.org/wiki/GUID_Partition_Table
| 归档时间: |
|
| 查看次数: |
5617 次 |
| 最近记录: |