准备工作
- 备份数据
重要提示: 任何磁盘操作前必须备份数据!误操作可能导致数据丢失。 - 检查当前磁盘状态
lsblk # 查看所有块设备 df -Th # 查看已挂载的文件系统及类型 sudo fdisk -l # 列出磁盘分区详情
- 确认可用空间
如果是虚拟机或云服务器,先确保底层存储已扩容(如AWS EBS、KVM虚拟磁盘)。
方法1:使用LVM(逻辑卷管理)扩展卷(推荐)
LVM支持动态调整,是Linux扩展存储的标准方案。
步骤:
- 扩展物理卷(PV)
sudo pvresize /dev/sdb1 # 如果已有PV,调整其大小 # 或添加新磁盘为PV: sudo pvcreate /dev/sdc # 将新磁盘/dev/sdc初始化为PV
- 扩展卷组(VG)
sudo vgextend vg_name /dev/sdc # 将新PV加入卷组(vg_name替换为实际卷组名) sudo vgs # 验证卷组可用空间
- 扩展逻辑卷(LV)
sudo lvextend -L +20G /dev/vg_name/lv_name # 增加20G空间 # 或扩展到全部空闲空间: sudo lvextend -l +100%FREE /dev/vg_name/lv_name
- 调整文件系统
# ext4文件系统: sudo resize2fs /dev/vg_name/lv_name # xfs文件系统: sudo xfs_growfs /mount_point
方法2:非LVM环境扩展分区
适用于直接使用分区(无LVM),需卸载分区且相邻有未分配空间。
步骤:
- 使用
gparted
(图形工具)或parted
:sudo parted /dev/sdb (parted) resizepart 1 # 调整分区号(如sdb1) (parted) quit
- 扩展文件系统:
sudo resize2fs /dev/sdb1 # 对ext4生效
方法3:添加新磁盘并挂载
场景: 新增独立存储空间而非扩展原有卷。
步骤:
- 分区与格式化
sudo fdisk /dev/sdc # 创建新分区(按n→p→Enter默认) sudo mkfs.ext4 /dev/sdc1 # 格式化为ext4
- 挂载到目录
sudo mkdir /new_data # 创建挂载点 sudo mount /dev/sdc1 /new_data # 临时挂载
- 永久挂载(写入/etc/fstab)
echo '/dev/sdc1 /new_data ext4 defaults 0 0' | sudo tee -a /etc/fstab
验证与故障处理
- 检查扩展结果:
df -Th | grep /mount_point # 确认容量变化 lsblk # 查看逻辑卷层级
- 常见问题:
- 若
resize2fs
报错,先运行e2fsck -f /dev/vg_name/lv_name
修复文件系统。 - LVM操作失败时,用
vgdisplay
或lvdisplay
检查空间分配。 - 挂载失败时检查
dmesg | tail
查看内核错误日志。
- 若
关键注意事项
- 操作风险:
- 调整分区可能损坏数据,务必备份!
- 文件系统扩展前确保底层存储已扩容。
- 工具选择:
- 优先使用LVM,灵活性远超传统分区。
- 生产环境建议在维护窗口操作。
- 云环境差异:
- AWS/Azure等需先在控制台扩展EBS/磁盘,再在OS内操作。
- 部分云平台要求卸载磁盘或重启实例。
引用说明
- Linux LVM官方文档:
man lvm
- GNU Parted手册:https://www.gnu.org/software/parted/manual/
- Red Hat存储管理指南:https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/
- 文件系统扩展注意事项:
man resize2fs
,man xfs_growfs
重要提示基于Linux内核5.x及主流发行版(RHEL/CentOS/Ubuntu),操作前请结合自身环境测试,复杂场景建议咨询专业运维人员。
原创文章,发布者:酷番叔,转转请注明出处:https://cloud.kd.cn/ask/9774.html