分区中的 766 kb 去哪儿了?

分区中的 766 kb 去哪儿了?

我使用过fdisk -l并且见过这个。

Disk /dev/sda: 1000.2 GB, 1000204886016 bytes
255 heads, 63 sectors/track, 121601 cylinders, total 1953525168 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes
Disk identifier: 0x580a1fd4

   Device Boot      Start         End      Blocks   Id  System
/dev/sda1   *        2048      206847      102400    7  HPFS/NTFS/exFAT
/dev/sda2          206848   417083391   208438272    7  HPFS/NTFS/exFAT
/dev/sda3       417095656  1953523711   768214028    f  W95 Ext'd (LBA)
/dev/sda5       417095658  1871315459   727109901    7  HPFS/NTFS/exFAT
Partition 5 does not start on physical sector boundary.
/dev/sda6      1871316992  1900611583    14647296   83  Linux
/dev/sda7      1900613632  1908424703     3905536   82  Linux swap / Solaris
/dev/sda8      1908426752  1953523711    22548480   83  Linux

这表明我的逻辑分区sda5结束于1871315459sda6开始于1871316992。那么我的1533 sectorsie766 kb去哪儿了?

答案1

这是对齐的事情

出于性能原因,您确实希望您的存储在所有级别上都对齐。虽然这可能只是一个简单的硬盘,上面有分区表和文件系统,但不要错位仍然很重要。

那么对齐又如何呢?

假设您的硬盘驱动器使用 4 kB 扇区(您的硬盘驱动器似乎使用 512 字节),并且您已将分区对齐为仅以单个字节偏移量开始,那么更新单个 4 kB 文件系统页面将放大为磁盘上的两个扇区写入。 4 kB 变成 8 kB 时,这不是什么大问题,但在更大的系统或 RAID 设置中,一旦条带大小(块大小)变成数百千字节甚至兆字节,这就会成为一个真正的问题。 一旦在这个条带大小上错位,这可以将不幸的 4 kB 文件系统块放大到 2 倍块大小(例如 2 MB)写入磁盘,同时也会影响奇偶校验计算(如果有)。

SSD 和其他基于闪存的驱动器受到的影响更大。通常,这些驱动器使用巨大的页面大小。我见过 512 kB“扇区”大小的 USB 闪存驱动器,这是 SSD 驱动器的常见大小 IIRC。在其上使​​用多层(例如 dm-crypt、LVM、文件系统)时错位可能会导致巨大的写入放大(除了他们已经拥有的之外)你真的想避免不必要的穿的驱动器。

那么我的驱动器上为什么会出现这个间隙?

大多数最新实用程序都只使用 1 MB 磁盘对齐作为安全默认值。这是常见设置的最低标准,可避免大多数错位,同时不会损失太多空间。

在 1 TB 上获得 766 kB 并不值得它造成的性能影响。

我可以修复这个问题吗?

是的,你可以,你必须查看驱动器的规格、文件系统的块大小并自己找出正确的对齐方式,然后自己修复分区表。不过这样做有点危险。

在您的情况下sda5,可能未对齐(开始),我会sda5在适合我的场合将其移动到正确的对齐位置(先备份数据!)。

相关内容