linux – 分区表消耗32K数据?

我创建了一个100MB大小的文件,并使用losetup将其分配给/ dev / loop0.

因此,我使用fdisk创建一个空的DOS分区表,以及一个跨越整个磁盘的新分区.

我不能理解的一件事是,上述分区始于第63区;这意味着分区表占用了62个扇区,即31Kb.

我的印象是,有关分区条目的所有数据都记录在主引导记录中,即驱动器的第一个扇区,因此只有磁盘的前512个字节应该是禁止的.

检查驱动器,第一个之后的扇区没有完全填充null,所以很明显我有一些关于分区表的细节.

fdisk print(显示类型=扇区):

      Device Boot     Start        End     Blocks   Id  System
/dev/loop0p1   *         63     192779      96358+  83  Linux

解决方法:

MBR分区格式已有三十年历史,并且由于历史原因而受到古怪的影响.

那时,计算机需要知道硬盘的几何形状.如何在硬盘上组织数据?三维:cylinder, heads and sectors.

linux  – 分区表消耗32K数据?

(图表于LionKimbro)

存储的几何图形具有足够大的时间值:头部数量为8位(1-255),轨道上扇区数量为6位(1-63),数字为10位每个磁道的磁道数,即汽缸数(1-1023),一个扇区包含512个字节.现在计算机不需要知道磁盘的实际几何形状(这些数字甚至没有意义),但格式仍然存在,使用MBR分区的磁盘的大小以CHS格式表示,但重要的是三个数字的乘积等于扇区总数.

分区开始的起始地址以CHS格式表示,并且许多较旧的操作系统不支持跨越不同轨道的分区,即分区必须在柱面边界上对齐.这意味着第一个分区的63个扇区的倍数.

有一个31 kB的空间不用于分区内容.它可以用于引导加载程序.

现代GPT partition format是具有> 1 TB磁盘的较新PC的标准,它喜欢在1 MB边界上对齐分区,因此在第一个分区开始之前有大约1023 kB空闲.同样,这可以由引导程序使用.现代操作系统也在1MB边界上对齐MBR分区,降低了CHS兼容性,并确保分区落在具有4 kB扇区(= 8个传统扇区,512 kB)的驱动器上的扇区边界上.在扇区边界上对齐分区(例如,磁盘使用的实际扇区大小,即其优选的传输大小)有助于提高性能.

上一篇:fdisk分区命令


下一篇:linux – 即使在partprobe之后,新创建的分区也丢失了,显示没有这样的设备或地址