以下是Ubuntu系统磁盘扩容的详细操作指南(基于最新Linux 5.15内核验证):
第1步:诊断存储状态
df -hT --output=source,fstype,size,used,avail,pcent,target
关键参数解读:
- -hT:人类可读格式显示文件系统类型
- --output:定制输出字段(设备源/文件系统类型/总容量/已用空间/可用空间/使用率/挂载点)
- 重点关注 /dev/sdX类设备的使用率是否超过80%警戒线
直达服务器选购网址:www.tsyvps.com
直达服务器选购网址:www.tsyvps.com
直达服务器选购网址:www.tsyvps.com
第2步:虚拟机磁盘扩容(以VMware为例)
- 关机后调整虚拟磁盘容量
- 开机后执行磁盘扫描:
echo 1 > /sys/class/scsi_disk/0\:0\:0\:0/device/rescan
注意:设备编号需通过 ls /sys/class/scsi_disk/确认
第3步:物理分区调整
growpart /dev/sda 1 # 调整sda磁盘的第1分区
partprobe /dev/sda # 强制刷新分区表
或使用交互式工具:
parted /dev/sda
(parted) resizepart 1 100% # 将第1分区扩展到全部可用空间
第4步:文件系统扩展
resize2fs /dev/sda1 # 适用于ext4文件系统
xfs_growfs /mount_point # 适用于XFS文件系统
btrfs filesystem resize max /mount_point # 适用于Btrfs
重要提示:必须先扩展分区再调整文件系统
第5步:新增磁盘操作流程
- 识别新磁盘:
lsblk -o NAME,SIZE,MODEL,SERIAL,STATE
- 创建GPT分区表:
parted /dev/sdb mklabel gpt
- 划分LVM物理卷:
pvcreate /dev/sdb1
vgextend ubuntu-vg /dev/sdb1 # 扩展卷组
lvextend -l +100%FREE /dev/ubuntu-vg/root # 扩展逻辑卷
风险规避措施
- 操作前必须执行完整备份:
tar --xattrs -czpvf /backup/$(date +%F).tar.gz --directory=/ --exclude=/dev --exclude=/proc --exclude=/sys --exclude=/tmp .
- 使用 dumpe2fs -h /dev/sda1确认文件系统参数
- 推荐在单用户模式(运行级别1)执行扩容操作
验证与监控
watch -n 1 'df -h; lsblk; pvs; vgs; lvs' # 实时监控存储状态
smartctl -H /dev/sda # 检查磁盘健康状态
特殊场景处理:
- 加密磁盘扩容:需先 cryptsetup resize LUKS_DEVICE
- RAID阵列扩容:使用 mdadm --grow --size=max /dev/mdX
- 在线扩容限制:XFS不支持缩小,Btrfs要求内核≥5.6才能缩减
推荐使用 stress-ng进行压力测试验证扩容稳定性:
stress-ng --temp-path /mnt/new_disk --hdd 1 --timeout 24h
通过遵循上述专业流程,可确保在各类场景下安全完成磁盘扩容。建议每月执行 e2scrub检查文件系统完整性,并设置 /proc/sys/vm/dirty_ratio优化写入性能。