Centos7 将home空间分配给根目录(/dev/centos/root)

[复制链接]
发表于 2026-10-3 16:21:17 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

×

一、背景:根目录满、home 却空着,比重构盘

CentOS 7 默认分区方案有个非常常见的问题:根分区 / 很小(通常 50G 左右),而 /home 把剩余空间全吃掉了(上例里 /home 有 180G,只用掉 33M)。一旦根分区写到 78%–90%,系统就会开始报"磁盘空间不足",服务写日志日志、装包都会失败。

最直接的解决思路:把 /home 的容量省出来给根分区。因为 LVM 逻辑卷是可以动态调整大小的,不必重装系统。

先说清楚风险:这个流程涉及卸载 /home、删除逻辑卷、扩容 /,必须先把 /home 的数据备份走,否则删除逻辑卷等于数据丢失。整个过程建议先做快照或至少完整备份。

二、第一步:查看目录布局

[root@localhost opt]# df -hl
文件系统                 容量  已用  可用 已用% 挂载点
devtmpfs                 7.7G     0  7.7G    0% /dev
tmpfs                    7.7G     0  7.7G    0% /dev/shm
tmpfs                    7.7G    18M  7.7G    1% /run
tmpfs                    7.7G     0  7.7G    0% /sys/fs/cgroup
/dev/mapper/centos-root  50G    39G   12G   78% /
/dev/sda2               1014M   176M  839M   18% /boot
/dev/sda1                200M    12M  189M    6% /boot/efi
/dev/mapper/centos-home 180G    33M  180G    1% /home
tmpfs                    1.6G     0  1.6G    0% /run/user/0
overlay                  50G    39G   12G   78% /var/lib/docker/.../merged

关键信息三条:

  • /dev/mapper/centos-root 挂在 /,用了 78%;
  • /dev/mapper/centos-home 挂在 /home,180G 只用了 33M;
  • 根分区和 home 属于同一个卷组 centos(VG 名叫 centos),所以才有得借。

另外注意 docker 的 overlay 挂载点也占着 / 的空间——如果 /var/lib/docker 也在根分区上,先考虑迁走 docker 目录,效果往往比重分 home 更省事。

三、第二步:备份 /home 数据

[root@localhost opt]# mkdir /home-backup
[root@localhost opt]# mv /home/* /home-backup

用 mv 而不是 cp,图的是快、不占额外空间(同分区内只是改个目录项)。这里只是把数据挪到/home 外面暂存,并不是删除——真正的删除在下一步删逻辑卷时才发生。

改完建议立刻核对一下:

ls -la /home-backup | head
du -sh /home-backup

四、第三步:卸载并删除 /home 逻辑卷

[root@localhost /]# umount /home
[root@localhost /]# lvremove /dev/centos/home
Do you really want to remove active logical volume centos/home? [y/n]: y
  Logical volume "home" successfully removed

这一步是整条流程里不可逆的点:逻辑卷一旦删掉,/home-backup 之外的数据就彻底没了。所以

  • 务必确认 /home-backup 里东西齐全;
  • 确认没有服务正在写 /home(lsof +D /home 或 fuser -m /home 查一下);
  • 确认 /etc/fstab 里 /home 那条可以先注释掉,避免重启时挂载失败。

如果 umount 一直报 target is busy,说明还有进程占用:先去杀掉占用进程,或者进救援模式/单用户模式再操作。

五、第四步:查看卷组可用空间

[root@localhost /]# vgdisplay
  --- Volume group ---
  VG Name               centos
  System ID
  Format                lvm2
  Metadata Areas        1
  Metadata Sequence No  5
  VG Access             read/write
  VG Status             resizable
  MAX LV                0
  Cur LV                2
  Open LV               2
  Max PV                0
  Cur PV                1
  Act PV                1
  VG Size               <可用空间> 

删掉 home 之后,卷组 centos 里就多出一大块 Free PE,这正是等下要分给 root 的额度。

六、第五步:扩容根逻辑卷

lvextend -l +100%FREE /dev/centos/root
xfs_growfs /                     # CentOS 7 默认文件系统是 XFS
resize2fs /dev/centos/root       # 如果文件系统是 ext4,用这条

两个动作要分清:

  • lvextend 只改逻辑卷(块设备)的大小,文件系统本身还没变大,此时 df -h 不会变。
  • 必须紧接着让文件系统 grow,df -h 才会看到空间增加。

CentOS 7 默认用 XFS,所以用 xfs_growfs /;如果是 ext4,用 resize2fs /dev/centos/root。用错命令不会扩容,但也不会损坏数据,只是没效果,看 df -T / 或 blkid /dev/centos/root 确认文件系统类型再选。

七、第六步:把备份迁回 home(可选)

如果日后还要用 /home(比如要重建 home 逻辑卷,或者新机器),把备份挪回去:

mv /home-backup/* /home/
rmdir /home-backup

如果确定不再需要,就直接清理掉 /home-backup,把那部分空间也还给卷组。

八、验证

df -h
lvdisplay
ls -la /home

确认 / 的 已用% 下来了、可用空间变大,/home 目录结构还在。

九、三种方案怎么选

方案难度是否不可逆适用场景
删 home 逻辑卷扩 root(本文)中是(需先备份)home 确实有大量空余、且数据不值钱
迁移 docker / 日志日志目录到大数据盘低否根满的首要原因其实是 docker/日志日志
加一块新硬盘,把 /data 独立出去低否有空余盘位、能停机

十、重排之前,请先确认这三件事

  1. 根满的元凶是不是 docker?上例里 /var/lib/docker/overlay2/... 有五条 overlay 挂载,它们占的是根分区的空间。很多"根满"其实迁走 docker 目录就够了,比重分 home 安全得多。
  2. 日志有没有在滚?/var/log 长期不清理是第二大元凶,配好 logrotate 往往比扩盘更治本。
  3. 有没有做快照?CentOS 7 上 either 用 LVM 快照(lvcreate -s)或虚拟机快照,重排前先打一个,失败还能直接回滚。

小结

把流程压成五步:

df -h                              # 1. 看布局,确认 root 与 home 同属一个 VG
mkdir /home-backup && mv /home/* /home-backup   # 2. 备份 home
umount /home && lvremove /dev/centos/home        # 3. 卸载并删 home 逻辑卷
lvextend -l +100%FREE /dev/centos/root           # 4. 扩容 root 逻辑卷
xfs_growfs /        # 5. 扩文件系统(ext4 用 resize2fs)

核心认知就两条:LVM 的逻辑卷能在同一卷组内自由调大小,但要"先扩逻辑卷、再扩文件系统"两步走;删逻辑卷不可逆,动手前备份 + 快照双保险。

(本文由 qidao123.com企服评测-应用市场 编辑提示整理:示例基于 CentOS 7 + LVM + XFS,适用于运维排障与磁盘容量规划场景;操作生产环境前请务必备份。)

回复

使用道具 举报

登录后关闭弹窗

登录参与点评抽奖  加入IT实名职场社区
去登录
快速回复 返回顶部 返回列表