我尝试分区但收到以下错误 -
The resulting partition is not properly aligned for best performance.
(parted) print
Model: Seagate BUP Slim Mac SL (scsi)
Disk /dev/sdd: 1000GB
Sector size (logical/physical): 512B/4096B
Partition Table: gpt
Number Start End Size File system Name Flags
(parted) mkpart
Partition name? []? part1
File system type? [ext2]? ext4
Start? 10
End? 100
Warning: The resulting partition is not properly aligned for best performance.
答案1
unit s print
没有看到命令的输出后创建分区后,我不确定这里发生了什么。我刚刚在 USB 闪存驱动器上尝试过,没有收到这样的警告;但该驱动器还报告了 512 字节的物理扇区大小,而不是磁盘的 4096 字节。另外,你没有说parted
你使用的是哪个版本的 Ubuntu(我使用的是 Ubuntu 16.04 和parted
3.2-15)。
无论如何,我的unit s print
输出是:
Number Start End Size File system Name Flags
1 20480s 194559s 174080s part1
大多数磁盘上均已正确对齐。
为了备份,有几个原因导致分区应该“对齐”——即在特定扇区号的倍数上创建。原因包括:
- 许多现代硬盘使用 4096 字节的物理扇区;但为了提高兼容性,它们将每个扇区划分为八个 512 字节的逻辑扇区。问题是,如果您要写入少于八个逻辑扇区的数据,磁盘将不得不读取整个物理扇区,对其进行修改,然后将结果写回磁盘。这比写入整个物理扇区(即其所有八个逻辑扇区)需要更多时间。由于许多文件系统使用 4096 字节或更大的数据结构,因此在八个扇区边界以外的位置启动文件系统(分区)可能会导致严重的性能下降。请参阅这是我为 IBM developerWorks 撰写的这篇文章有关此主题的更多信息,包括显示可能导致的性能下降程度的基准测试。(注意:我几年前做过这些测试。由于硬件或软件的变化,现在的结果可能会有所不同。)
- 在某些类型的 RAID 配置中,数据会“条带化”到多个磁盘。这可以提高性能,但如果分区的起始点是条带大小的倍数(通常在 16 KiB 到 256 KiB 大小范围内),则性能改进效果最佳。
- SSD 可以根据其擦除块大小(通常为 512 KiB 到 1 MiB)看到性能和寿命效果,尽管我听说过具有特殊擦除块大小的 SSD,例如 3 MiB。
在大多数情况下,对于所有这些技术,2048 个扇区(1 MiB)边界上的对齐效果都很好。(具有 3 MiB 擦除块大小的 SSD 是此规则的例外。)此值已成为大多数分区工具的默认值。根据parted
您输入的解释方式(单位等)以及它如何确定您的分区是否最佳对齐,您可能会遇到或可能遇到真正的问题。这就是我说您需要查看输出的原因unit s print
。(这unit s
部分至关重要;如果没有这部分,parted
将显示四舍五入为 MiB、GiB 或其他值的分区起点和终点,这对于确定正确的对齐不够精确。)
在某些情况下,parted
系统会无缘无故地发出抱怨。例如,无法正确对齐 MBR 磁盘上的扩展分区,因为这些分区的唯一实际数据结构大小为 512 字节;但parted
如果扩展分区不在对齐边界上开始,系统就会发出抱怨(或者至少某些版本会这样)。如果我没记错的话,某些版本还会查看终点分区,但这并不相关,除非它会影响下一个分区的起点。
最后一点:在我的测试中,parted
将起点视为10
10 MiB(或者更可能是 10 MB),然后四舍五入以进行正确对齐。然后它似乎将终点视为100
100 MB,并再次四舍五入以进行对齐。无论如何,10 MiB(四舍五入后的结果)的起点在磁盘的开头留下了接近 10 MiB 的未使用空间。即使对齐 1 MiB,也有 9 MiB 的未使用空间。这在现代磁盘上并不是很大的空间,但您可能需要重新考虑并从 1 MiB 开始第一个分区。
答案2
如果您使用百分比而不是扇区,parted 将计算正确的对齐方式:
(parted) mkpart
Partition name? []? part1
File system type? [ext2]? ext4
Start? 0%
End? 100%