Amazon Linux 2 扩容 EBS 后 growpart 失败
2026年4月25日大约 2 分钟
Amazon Linux 2 扩容 EBS 后 growpart 失败
EBS 卷在控制台扩容后,还需要在操作系统内扩展分区和文件系统。如果根分区已经 100% 满了,growpart 可能会因为无法写临时文件而失败,错误看起来像是 sfdisk 问题。
现象
执行分区扩容:
sudo growpart /dev/nvme0n1 1返回类似错误:
failed [sfd_list:1] sfdisk --list --unit=S /dev/nvme0n1
FAILED: failed: sfdisk --list /dev/nvme0n1环境通常是:
- Nitro 架构实例。
- Amazon Linux 2。
- 根文件系统为 XFS。
- 设备名为
/dev/nvme0n1,根分区是/dev/nvme0n1p1。 /已经接近或达到 100%。
根因
growpart 执行时需要在系统目录中创建临时文件并重写分区表。如果根文件系统已经满到只剩几十 KB,底层 sfdisk 调用可能无法正常完成,于是表现为分区扩容失败。
这时首要任务不是继续反复执行 growpart,而是先释放一点根分区空间。
处理步骤
1. 清理 yum 缓存
Amazon Linux 2 上可以先清理 yum 缓存:
sudo yum clean all确认根分区至少有几 MB 可用空间:
df -h /2. 扩展分区
sudo growpart /dev/nvme0n1 13. 扩展 XFS 文件系统
XFS 需要用挂载点扩容:
sudo xfs_growfs -d /如果是 ext4,则应使用:
sudo resize2fs /dev/nvme0n1p14. 验证
df -hT /
lsblk确认根分区大小和可用空间已经更新。
注意事项
- EBS 控制台修改卷大小后,需要等待状态完成再进系统扩容。
- 单个 EBS 卷有修改频率限制,不要频繁试错扩容。
- 根分区快满时,建议优先清理缓存、旧日志和临时文件。
- 长期建议用 CloudWatch Agent 采集磁盘使用率,提前告警。
总结
growpart 报 sfdisk 失败不一定是分区表坏了,也可能只是根文件系统没有空间让工具运行。对 Amazon Linux 2 + XFS 的根卷扩容,可以按这个顺序处理:
- 清理出少量空间。
growpart扩分区。xfs_growfs扩文件系统。df -hT验证。
