如何检查我的 SSD 上的分区是否正确对齐?

jot*_*ttr 34 partitioning ssd

我刚刚在我的新英特尔 SSD 上安装了 ubuntu。现在我不确定分区是否与我的特定 SSD 正确对齐。

这是我的 fdisk 输出。

$ fdisk -l

    Platte /dev/sda: 120.0 GByte, 120034123776 Byte
255 Köpfe, 63 Sektoren/Spur, 14593 Zylinder
Einheiten = Zylinder von 16065 × 512 = 8225280 Bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x000a6294

   Gerät  boot.     Anfang        Ende     Blöcke   Id  System
/dev/sda1   *           1        1913    15360000   83  Linux
/dev/sda2            1913       14058    97558528   83  Linux
/dev/sda3           14058       14594     4300800   82  Linux Swap / Solaris
Run Code Online (Sandbox Code Playgroud)

另外,我是否仍然需要对齐我的 SSD,因为我在 ext4 分区上使用了 TRIM,方法是将它们与discard标志一起安装。

如果是这种情况,我的分区没有正确对齐,我可以做些什么来解决这个问题,而不必重新安装所有东西?

小智 56

Parted 有一个 align-check 内置。

parted /dev/sda
align-check opt n
Run Code Online (Sandbox Code Playgroud)

n 是您要检查的分区。

  • 为我工作!+1 (4认同)
  • 检查非技术用户非常简单。 (2认同)
  • 最佳对齐使用磁盘报告的信息。这并不总是与物理块大小对齐,因为有时硬件取决于其块大小。有时硬盘内部有4k块,但报告512b块。额外的检查是查看 start 是否除以 4096(以及 end+1) (2认同)

小智 11

确保 SSD 与 parted 工具对齐看起来是一个很好的指南,用于对齐 SSD 上的文件系统:

  1. 以字节为单位获取 SSD 的块大小(有很多技巧,我不知道哪些适用于哪些硬件)。
  2. 启动分区编辑器:

    sudo parted
    
    Run Code Online (Sandbox Code Playgroud)
  3. 显示分区表:

    p
    
    Run Code Online (Sandbox Code Playgroud)
  4. 验证StartSize列中的数字是否可以被块大小整除。

  • 链接已死。 (7认同)

cry*_*man 5

为了确保您必须使用内置的对齐parted检查选项:

硬盘:

DEVICE=/dev/sda && for i in `sudo parted $DEVICE print | grep -oE "^[[:blank:]]*[0-9]+"`; do   sudo parted $DEVICE align-check opt "$i"; done
Run Code Online (Sandbox Code Playgroud)

固态硬盘:

DEVICE=/dev/nvme0n1 && for i in `sudo parted $DEVICE print | grep -oE "^[[:blank:]]*[0-9]+"`; do   sudo parted $DEVICE align-check opt "$i"; done
Run Code Online (Sandbox Code Playgroud)

和手动检查(计算被4096B整除)

我编写了一个 bash 脚本来执行这两项检查

https://github.com/crysman/check-partitions-alignment

(适用于任何 GNU/Linux 操作系统)

或者您可以使用此表手动检查:

https://docs.google.com/spreadsheets/d/1dnDlhglxxgApvtUv0-nxn1iFYTqkjRELqCOWJtp3hbs/edit#gid=0

是的,SSD HDD 的分区需要正确对齐才能获得最大性能。