根分区扩容需先判断是否为lvm:若df -th /显示/dev/mapper/*则为lvm,可在线扩容;若为/dev/sda2等裸设备且lsblk无lvm节点,则需救援模式下重分区,风险极高。

根分区扩容不是“一键操作”,得先确认你的系统用的是 LVM 还是传统分区 —— 这直接决定你能走哪条路、能不能在线扩、要不要删数据。
怎么判断根分区是不是 LVM
执行 df -Th /,看 Mounted on 为 / 的那一行:
- 如果 Filesystem 是类似
/dev/mapper/centos-root或/dev/mapper/cl-root,就是 LVM,可以安全在线扩容 - 如果 Filesystem 是
/dev/sda2、/dev/vda1这种裸设备路径,且lsblk里没出现lvm类型的子节点,那就是非 LVM 分区,必须卸载 + 重分区,风险高
别跳过这步。误判会导致后续命令报错,比如对 /dev/sda2 执行 lvextend 会提示 “Invalid logical volume name”。
LVM 根分区:加新盘后扩展逻辑卷
这是最稳妥的路径,适用于你已新增一块磁盘(如 /dev/sdb)或在虚拟机里扩了原盘容量。
- 用
fdisk /dev/sdb创建一个主分区(n→p→1→ 回车两次),再把类型设为8e(LVM) - 运行
partprobe /dev/sdb刷新分区表,避免内核缓存旧信息 - 执行
pvcreate /dev/sdb1初始化物理卷;vgdisplay查看卷组名(通常是centos或cl) -
vgextend centos /dev/sdb1把新 PV 加进卷组;lvextend -l +100%FREE /dev/mapper/centos-root把空闲空间全分给根 LV - 最后关键一步:
xfs_growfs /(XFS 文件系统)或resize2fs /dev/mapper/centos-root(ext4)。漏掉这步,df -h看不到新空间
非 LVM 根分区:只能重分区,必须停机操作
这种场景下,fdisk 删除再重建根分区是唯一办法,但起始扇区绝对不能改 —— 否则文件系统元数据就丢了。
- 先
umount /?不行,根不能卸载。必须进 rescue 模式(CentOS 安装盘启动 → “Troubleshooting” → “Rescue a CentOS system”) - 救援模式里挂载根分区到
/mnt/sysroot,然后chroot /mnt/sysroot -
fdisk /dev/sda→d删除原根分区(如sda2)→n新建主分区 → 起始扇区填原来值(fdisk -l /dev/sda里记下的 Start 值)→ 结束扇区回车用满剩余空间 -
w保存后,立即执行partprobe /dev/sda,再跑resize2fs /dev/sda2(ext4)或xfs_growfs /(XFS)
非 LVM 扩容没有“无损”可言,哪怕步骤全对,万一断电或误输扇区号,/ 就变只读甚至无法启动。生产环境强烈建议优先迁移到 LVM 架构。











