CentOS 分区扩展方法
一、前置检查与准备
fdisk -l、lsblk、df -hT、vgs、lvs、pvs。partprobe 或重启让内核识别新分区表。二、场景一 LVM 在线扩容(最常见)
lvextend -l +100%FREE /dev/mapper/<VG>-<LV>(例:lvextend -l +100%FREE /dev/mapper/cl-root)。xfs_growfs <挂载点>(例:xfs_growfs /)resize2fs /dev/mapper/<VG>-<LV>df -h。fdisk /dev/sdb → n 新建分区 → t 设为 8e(Linux LVM)→ w 写入。partprobe。pvcreate /dev/sdb1。vgextend <VG> /dev/sdb1(例:vgextend cl /dev/sdb1)。lvextend -l +100%FREE /dev/mapper/<VG>-<LV>。xfs_growfs <挂载点> 或 resize2fs <设备>。df -h。growpart /dev/sdX <PARTNUM> 扩展分区(需安装 cloud-utils-growpart)。pvresize /dev/sdX<PARTNUM>。lvextend -l +100%FREE /dev/mapper/<VG>-<LV>。xfs_growfs <挂载点> 或 resize2fs <设备>。df -h。三、场景二 非 LVM 扩容(传统分区,风险更高)
umount /mount_point;如忙,用 fuser -m -v -k /mount_point 结束占用进程。fdisk /dev/sdX 删除旧分区并重建,起始扇区必须与原分区一致,结束扇区扩大到期望位置;保存退出。e2fsck -f /dev/sdX<PART> → resize2fs /dev/sdX<PART>mount /mount_point;验证:df -h。四、场景三 调整分区用途(如释放 /home 扩容 /)
umount /home(必要时用 fuser -m -v -k /home 结束进程)。lvremove /dev/mapper/<VG>-home。lvextend -l +100%FREE /dev/mapper/<VG>-root(或按需指定大小)。xfs_growfs /;ext4 执行 resize2fs /dev/mapper/<VG>-root。lvcreate -L 150G -n home <VG> → mkfs.xfs /dev/mapper/<VG>-home → mount /home)。df -h、lvs、vgs。五、常用命令速查表
| 目的 | 命令示例 |
|---|---|
| 查看磁盘/分区 | fdisk -l、lsblk、parted /dev/sdX print |
| 扩展分区(整盘/末尾空间) | growpart /dev/sdX <N> |
| 扩展分区表通知内核 | partprobe |
| 创建物理卷 | pvcreate /dev/sdX1 |
| 扩展卷组 | vgextend <VG> /dev/sdX1 |
| 扩展逻辑卷 | lvextend -l +100%FREE /dev/mapper/<VG>-<LV> |
| 扩展 ext4 文件系统 | resize2fs /dev/sdX<PART> |
| 扩展 XFS 文件系统 | xfs_growfs <挂载点> |
| 验证结果 | df -h、df -Th、lvs、vgs、pvs |