对齐状态需通过多种工具综合验证:parted -l 显示 aligned: yes/no;fdisk -lu 检查起始扇区是否为8的倍数;lsblk -o name,start,size 快速初筛;最终以 parted align-check optimal 命令为准。

直接用分区工具查对齐状态,关键不是只看数字,而是看它是否真正满足底层设备的物理边界要求。
用 parted 查带结论的对齐状态parted 是少数能直接给出“Aligned: yes/no”判断的工具。运行:
sudo parted -l
在输出中找到目标设备(如 /dev/nvme0n1)下的分区行,末尾若显示 Aligned: yes,说明已通过设备层校验;若显示 Aligned: no,基本可确认未对齐。
注意:
- 该字段只在较新版本和 GPT 分区上稳定出现
- 没有该字段 ≠ 对齐,只是工具未报告,不能作为依据
- 若需扇区视图辅助判断,改用:
sudo parted /dev/nvme0n1 unit s print
用 fdisk -lu 手动验算起始扇区
这是最通用、不依赖工具版本的方法:
sudo fdisk -lu /dev/sda
在输出表格中定位分区(如 /dev/sda1),查看 Start 列数值:
- 起始扇区必须是 8 的倍数(因为 4096 ÷ 512 = 8)
- 例如
Start = 2048→ 2048 ÷ 8 = 256,整除 → 对齐 -
Start = 63→ 63 ÷ 8 = 7.875,不整除 → 未对齐
务必加-u参数,强制以扇区为单位输出,避免误读为柱面或字节。
用 lsblk -o NAME,START,SIZE 快速初筛
无需 root 权限,适合批量检查:
lsblk -o NAME,START,SIZE
START 列是扇区号,直接看是否为 2048、4096、8192 等 1MiB(= 2048 × 512)的整数倍。
注意:
- 某些 NVMe 设备(如
/dev/nvme0n1p1)可能显示START=0,这是内核抽象所致,不代表未对齐 - 若
START缺失或为空,先执行sudo partprobe /dev/nvme0n1刷新分区表
用 parted align-check optimal 做决定性验证
以上方法都只是初步判断,真正权威的是:
sudo parted /dev/nvme0n1 align-check optimal 1
它会读取 /sys/block/nvme0n1/queue/optimal_io_size、alignment_offset 和 physical_block_size,计算理论最优偏移,并比对实际起始位置。
- 返回
1 aligned→ 通过 - 返回
1 not aligned→ 未对齐,即使Start=2048也不代表真对齐 - 不要手动调整扇区号修复,应重分区并使用
mkpart primary 1MiB 100%或-a optimal参数重建











