root扩容:将/dev/mapper/centos-home的空间分配部分给/dev/mapper/centos-root

背景

安装默认安装的centos7,默认只给root分配了50G,装了docker之后,运行了一些程序,最终给root占满了,于是需要解决,找到3个办法:

  1. 重装系统,太麻烦了,算了
  2. 将docker的存储目录更改到home或者其他有空余的空间下,后续再试试
  3. 在root里做软连接,不会,后续再研究
  4. 给root扩容,就是这篇文章

条件

文件系统需要是lvm的,其他的不支持动态扩容

步骤

  1. 备份home
    tar cvf /run/home.tar /home
    
  2. 删除/home
    1. 终止进程
    fuser -km /home
    
    如果报错:fuser: 未找到命令
    则安装:
    yum install -y psmisc
    
    1. 卸载home
    umount /home
    
    1. 删除/home所在逻辑卷lv
    lvremove /dev/mapper/centos-home
    
    如果报错: Logical volume centos/home contains a filesystem in use.
    则需要停掉所有在用的服务,我这边是停掉所有docker容器
  3. 扩大/root逻辑卷
    lvextend -L +350G /dev/mapper/centos-root
    
  4. 扩大/root文件系统
    xfs_growfs /dev/mapper/centos-root
    
  5. 重建/home逻辑卷
    lvcreate -L 56G -n /dev/mapper/centos-home
    
  6. 重建/home文件系统
    mkfs.xfs /dev/mapper/centos-home
    
  7. 将新的文件系统挂载到/home目录下
    mount /dev/mapper/centos-home
    
  8. /home内容恢复
    tar xvf /run/home.tar -C /
    
  9. 删除备份
    rm -rf /run/home.tar
    
Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐