为什么每个逻辑分区之间有 2048 个扇区的空闲空间?

Mik*_*kov 8 partition hard-disk gpt

我知道高级格式并在磁盘开头设置 2048 个空闲扇区。但是我刚刚将磁盘的分区表从 MS-DOS 转换为 GPT,我注意到了这一点:

前:

Number  Start   End     Size    Type      File system     Flags
        32,3kB  1049kB  1016kB            Free Space
 1      1049kB  31,5GB  31,5GB  primary   ntfs            
 2      31,5GB  43,0GB  11,5GB  primary
 3      43,0GB  44,1GB  1074MB  primary   linux-swap(v1)
 4      44,1GB  80,0GB  36,0GB  extended
 5      44,1GB  54,6GB  10,5GB  logical
 6      54,6GB  65,0GB  10,5GB  logical   ext4            boot
 7      65,0GB  80,0GB  15,0GB  logical
        80,0GB  80,0GB  56,8kB            Free Space
Run Code Online (Sandbox Code Playgroud)

后:

Number  Start   End     Size    File system     Name                  Flags
        17,4kB  1049kB  1031kB  Free Space
 1      1049kB  31,5GB  31,5GB  ntfs            Microsoft basic data  msftdata
 2      31,5GB  43,0GB  11,5GB                  Linux filesystem
 3      43,0GB  44,1GB  1074MB  linux-swap(v1)  Linux swap
        44,1GB  44,1GB  1049kB  Free Space
 5      44,1GB  54,6GB  10,5GB                  Linux filesystem
        54,6GB  54,6GB  1049kB  Free Space
 6      54,6GB  65,0GB  10,5GB  ext4            Linux filesystem
        65,0GB  65,0GB  1049kB  Free Space
 7      65,0GB  80,0GB  15,0GB                  Linux filesystem
        80,0GB  80,0GB  39,9kB  Free Space
Run Code Online (Sandbox Code Playgroud)

如您所见,那里有 3 个额外的间隙(2048 个扇区),每个间隙用于一个扩展分区。第一和第二、第二和第三分区之间没有间隙。

有谁知道为什么间隙只存在于逻辑分区之间?

Sté*_*las 8

如今,分区器喜欢在兆字节边界上对齐分区。对于 MBR 分区,有 4 个主分区,对于其余分区,您需要扩展分区和逻辑分区。

虽然主分区的布局在磁盘的第一个扇区的末尾表示,但对于逻辑分区,您有一个附加分区表的链接列表(它们自己只指定一个分区。通常,第一个是作为扩展分区的开头(它本身定义为主分区)并定义第一个逻辑分区,它链接到定义下一个逻辑分区的下一个分区表。下一个分区表通常位于第一个逻辑分区之后划分。

所有这些分区表只占用分区外的几个字节,但由于兆字节对齐,必须为它们使用完整的兆字节。

另一端的 GPT 将所有分区信息存储在磁盘的开头(末尾有备份),因此转换后,用于逻辑分区分区表的空间变得空闲。

请注意,您只需要一个扇区来存储那些 MBR 逻辑分区表,因此严格来说,在 MBR 分区中,如果分区者不愿意在兆字节边界上对齐分区,则将有 2047 个空闲扇区。