春江暮客

春江暮客的个人学习分享网站

centos8减少/home分区大小增加/root空间大小

2019-11-02 技术
centos8减少/home分区大小增加/root空间大小

最近在虚拟机里装了一个 CentOS 8,用来体验新系统,初始分配了 127G 空间。后来发现 /home 占了几十 G,而我平时主要只用 root,于是更实际的方案就是把 /home 缩小,把可用空间让给 /root

这篇文章记录的是 CentOS 8 下基于 LVM 的调整过程。它和很多 CentOS 7 的写法有差别,特别是逻辑卷名称和 xfs_growfs 的使用方式。

步骤:

  1. 使用df-h查看空间使用情况,备份home
  2. 卸载home文件系统
  3. 删除/home所在的lv
  4. 扩展/root所在的lv
  5. 扩展/root文件系统
  6. 重新创建home lv并挂载home
  7. 查看最终调整结果

操作前先注意

  • 这类操作会删除原来的 /home 逻辑卷,先备份再继续。
  • 最稳妥的场景是虚拟机、测试机,或者可以接受短时停机的环境。
  • 如果你的系统里普通用户数据大量放在 /home,不要跳过备份和恢复步骤。

使用df-lh查看空间使用情况,备份home

首先登陆ssh,使用df -lh查看空间使用情况

df -lh

df_h_space

root已经不够了,而vps也就自己一个人用,根本不需要用到home,home设置1个g就够了,其余的都给root,这样就可以给root多出来73个g的空间。 这因为一开始没有截图,所以看到的是后面的1g大小,一开始home是74g大小的。 备份home文件到/tmp目录

tar cvf  /tmp/home.tar /home
# zip -r /tmp/home.zip /home

backup_home

卸载home文件系统

fuser -km /home/
umount /home

解除home目录的占用,卸载home目录

删除/home所在的lv

这一步centos8有很大不同,因为centos7中目录是/dev/mapper/centos-home,而在centos8中为 /dev/mapper/cl-home,因此注意卸载设备名称


lvremove /dev/mapper/cl-home

remove_cl_home

扩展/root所在的lv

扩展root空间lv

lvextend -L +73G /dev/mapper/cl-root  

扩展/root文件系统

这一步是真正增加root空间,centos7和centos8具有非常大的差别,centos7中是使用xfs_growfs /dev/mapper/centos-root,按逻辑centos8就应该是 xfs_growfs /dev/mapper/cl-root,但是结果就是

xfs_growfs /dev/mapper/cl-root 

xfs_growfs_error

经过摸索发现应该直接使用/就可以了

xfs_growfs / 

xfs_growfs_success

重新创建home lv并挂载home

创建1g空间的home

lvcreate -L 1G -n home cl

lvcreate_1g_home 文件系统类型设置

mkfs.xfs /dev/cl/home 

mkfs_xfs_home

挂载到home目录

mount /dev/cl/home /home

恢复home目录下文件

mv /tmp/home.tar /home
cd /home
tar xvf  home.tar
mv home/* .
rm -rf home*

另外别忘了检查 /etc/fstab。如果原来 /home 的挂载记录还是旧的逻辑卷名称,重启后可能会挂载失败。最简单的做法是确认新建出来的 /dev/cl/home 或对应 UUID 已经写入正确的挂载配置。

查看最终调整结果

查看各分区大小

df -lh

adjust_success

总结:

本文把 CentOS 8 下缩小 /home、扩容 /root 的关键步骤串了一遍,重点是先备份、再删旧逻辑卷、扩容 root,最后重建 /home 并检查挂载配置。这样做比单纯照抄命令更稳,因为你能明确知道每一步为什么要做。

如果最后空间没有正常变化,优先检查三处:逻辑卷名称是否写对、xfs_growfs / 是否真正执行成功、以及 /etc/fstab 是否仍然指向旧的 /home 设备。

友情链接

其它