Ubuntu linux ssd 硬盘分区对齐配置

发布于:2025-08-29 ⋅ 阅读:(20) ⋅ 点赞:(0)

1、分区对齐配置

好的 👍 我给你整理一个完整流程(假设你要用整个盘 /dev/nvme0n1,并挂载到 /var/lib/docker):

⚠️ 注意:以下操作会清空磁盘上所有数据,请确认 /dev/nvme0n1 没有需要保留的数据!


1. 创建分区并 1MiB 对齐

sudo parted /dev/nvme0n1 --script mklabel gpt
sudo parted /dev/nvme0n1 --script mkpart primary xfs 1MiB 100%

这样会创建一个 GPT 分区表,并新建一个对齐到 1MiB 的分区 /dev/nvme0n1p1
你可以用 lsblk 查看结果。


2. 格式化为 XFS

sudo mkfs.xfs -f /dev/nvme0n1p1

3. 创建挂载点

sudo mkdir -p /var/lib/docker

4. 获取分区的 UUID

sudo blkid /dev/nvme0n1p1

输出类似:

/dev/nvme0n1p1: UUID="abcd-1234-efgh-5678" TYPE="xfs"

5. 配置 /etc/fstab 自动挂载

编辑 /etc/fstab

sudo nano /etc/fstab

在最后加一行:

UUID=abcd-1234-efgh-5678   /var/lib/docker   xfs   defaults   0 0

如果想对 docker 盘做容量限制,加如下参数

UUID=abcd-1234-efgh-5678   /var/lib/docker   xfs   defaults,uquota,pquota 0 1

6. 挂载生效

sudo mount -a

确认挂载:

df -hT | grep docker

这样 /dev/nvme0n1 就会对齐分区、格式化成 XFS,并挂载到 /var/lib/docker,重启后也会自动挂载。


要不要我帮你写成一段 Ansible playbook task,这样你在多台服务器上也能自动完成?

2、如何查看是否分区对齐

分区对齐主要是看 分区起始位置是否是 1MiB 的整数倍(常见标准对齐方式)。你可以用下面几种方法确认:


1. lsblk -o NAME,START,SIZE

lsblk -o NAME,START,SIZE /dev/nvme0n1

示例输出:

NAME        START   SIZE
nvme0n1              3.5T
└─nvme0n1p1   2048   3.5T
  • START=2048 表示分区起始扇区号是 2048
  • 一般磁盘扇区大小是 512B,所以 2048 * 512B = 1MiB → 对齐正确。

2. 使用 parted 的 align-check

sudo parted /dev/nvme0n1 align-check optimal 1
  • 1 代表检查第一个分区
  • 如果输出 1 aligned,说明分区对齐良好
  • 如果输出 not aligned,就需要重新分区

3. 查看详细分区表

sudo fdisk -l /dev/nvme0n1

输出里会显示分区起始扇区,例如:

Device         Start        End    Sectors  Size Type
/dev/nvme0n1p1  2048  732566646  732564599  3.5T Linux filesystem

这里 Start=2048 → 正好是 1MiB 对齐。


📌 总结

  • 起始扇区号 是否是 2048(或 4096、8192 这种 2^n 倍数),就说明对齐到 1MiB。
  • 最稳妥的命令是:
parted /dev/nvme0n1 align-check optimal 1

要不要我帮你写一个 一键检测脚本,能自动检查所有分区是否对齐?

3、如果 lsblk 查看分区是否对齐报错解决

lsblk -o NAME,START,SIZE /dev/nvme0n1
lsblk: unknown column: START,SIZE
啊,明白了 😅 你的系统里 lsblk 版本比较旧,不支持 START,SIZE 这些列。没关系,可以换其他办法:


方法 1: lsblk -t

试试:

lsblk -t /dev/nvme0n1

在某些版本会显示分区的扇区信息(但不同发行版差异大)。


方法 2: fdisk

最通用的办法:

sudo fdisk -l /dev/nvme0n1

示例输出:

Device         Boot Start        End    Sectors  Size Id Type
/dev/nvme0n1p1       2048 732566646 732564599  3.5T 83 Linux

这里 Start=2048,扇区大小默认是 512 字节,所以起点 = 2048 × 512 = 1MiB,说明分区对齐。


方法 3: parted

sudo parted /dev/nvme0n1 unit s print

输出类似:

Number  Start     End       Size      Type
 1      2048s     732566645s 732564598s primary

起始扇区号是 2048s,同样代表 1MiB 对齐。


方法 4: 自动检查对齐

sudo parted /dev/nvme0n1 align-check optimal 1

如果返回:

1 aligned

说明分区对齐良好。


👉 建议你先跑一遍:

sudo fdisk -l /dev/nvme0n1

我可以帮你解读输出,看看 /dev/nvme0n1p1 是否真的 1MiB 对齐。

要不要你把 fdisk -l /dev/nvme0n1 的输出贴给我,我帮你判断?


网站公告

今日签到

点亮在社区的每一天
去签到