CentOS 分卷磁盘扩容实操指南
一、前置判断与准备
- 确认是否使用 LVM:执行 lsblk、df -Th、pvs、vgs、lvs,若看到 /dev/mapper/centos-root 或 /dev/centos/home 这类名称,基本就是 LVM;同时确认文件系统类型:ext4 用 resize2fs,xfs 用 xfs_growfs。
- 备份关键数据,尽量在维护窗口操作;根分区在线扩容风险较低,但操作前快照/备份更稳妥。
- 若是虚拟机或云盘,先在控制台把磁盘容量扩大,再进系统扩容分区与 LVM。
- 新增磁盘未被识别时,可触发 SCSI 总线重扫:
for i in $(ls /sys/class/scsi_host/); do echo “- - -” > /sys/class/scsi_host/$i/scan; done
之后用 fdisk -l 或 lsblk 确认新盘出现。
二、场景一 新增磁盘扩容到卷组 VG(最通用)
- 识别新盘:lsblk/fdisk -l;必要时执行上面的 SCSI 重扫。
- 分区并创建 PV(示例为整盘或单分区,类型选 Linux LVM 8e):
- fdisk:n → p → t → 8e → w
- 或 parted:mkpart primary ext4 1MiB 100%(LVM 分区类型)
- 创建物理卷:pvcreate /dev/sdb1(或整盘 /dev/sdb,视分区方案而定)。
- 扩容卷组:vgextend centos /dev/sdb1(卷组名以实际为准,常见为 centos)。
- 扩容逻辑卷:
- 指定容量:lvextend -L +20G /dev/centos/root
- 用尽剩余空间:lvextend -l +100%FREE /dev/centos/root
- 扩容文件系统:
- ext2/3/4:resize2fs /dev/centos/root
- xfs:xfs_growfs /dev/centos/root(或 xfs_growfs /)
- 验证:df -h 查看容量是否已增加。
三、场景二 原有磁盘扩容(扩大底层磁盘后)
- 扩大底层磁盘后,先让系统识别新大小:
- 推荐:partprobe /dev/sda(或 partx -u /dev/sda)
- 备选:echo 1 > /sys/class/block/sda/device/rescan
- 调整分区大小(以 /dev/sda3 为例,LVM 分区):
- parted /dev/sda
- (parted) print free
- (parted) resizepart 3 100%(或输入新的结束扇区/大小)
- 如遇 GPT 提示,选择 Fix 修复备份 GPT 表
- 让 PV 识别新增扇区:pvresize /dev/sda3
- 扩容 LV:lvextend -l +100%FREE /dev/centos/root
- 扩容文件系统:
- ext4:resize2fs /dev/centos/root
- xfs:xfs_growfs /dev/centos/root
- 验证:df -h、lvs、vgs 查看空间变化。
四、场景三 从其他逻辑卷挪空间(如把 /home 腾给 /)
- 原则:ext4 可在线缩小;xfs 不支持缩小。因此 xfs 场景需备份-重建-恢复。
- ext4 方案(在线缩小 /home 后扩容 /):
- 检查并缩小文件系统到目标大小(需小于当前已用):e2fsck -f /dev/centos/home && resize2fs /dev/centos/home 50G
- 缩小 LV:lvreduce -L 50G /dev/centos/home
- 扩容根 LV:lvextend -l +100%FREE /dev/centos/root
- 扩容根文件系统:resize2fs /dev/centos/root
- xfs 方案(备份-重建-恢复):
- 备份 /home:rsync -a /home/ /tmp/home_backup/
- 进入救援模式或确保 /home 无占用后卸载:umount /home
- 删除并重建更小的 /home LV:lvremove /dev/centos/home;lvcreate -L 100G -n home centos
- 格式化并挂载:mkfs.xfs /dev/centos/home;mount /dev/centos/home /home
- 恢复数据:rsync -a /tmp/home_backup/ /home/;必要时更新 /etc/fstab 的 UUID(blkid 查看)
- 将剩余空间给根:lvextend -l +100%FREE /dev/centos/root;xfs_growfs /
五、常用命令速查与排错要点
- 常用命令
- 查看:lsblk、df -Th、pvs、vgs、lvs、pvdisplay、vgdisplay、lvdisplay
- 扩容:vgextend、lvextend -l +100%FREE / -L +10G
- 文件系统:resize2fs(ext4)、xfs_growfs(xfs)
- 排错要点
- 新盘未识别:执行 SCSI 重扫或 partprobe;确认分区类型为 8e(LVM)。
- 扩容后 df 未变化:忘记执行文件系统扩容(xfs_growfs/resize2fs)。
- xfs 无法缩小:先备份,再重建 LV 并恢复数据。
- 虚拟机/云盘:务必先在控制台扩容磁盘,再进系统执行分区与 LVM 步骤。