Centos7.6通过削减home 补充根目录空间#Linux

提示:
1.此方案是以自建用户为第一视角进行操作,中途需要重启机器(用自建用户登陆,su - root操作)。
2.如果是登陆的自建用户操作,中间重启机器时,图形界面会消失,建议重启前先把网址复制下来用手机查阅。
3.直接用root(是在开机在not list?中用root登陆操作,而不是su - root 切换root操作)用户登陆操作,没有登陆过自建用户可以实现动态扩容,不需要重启机器。
4.下面会提示哪个步骤用root登陆可跳过
5.万事都有不测,建议先用虚拟机跑一遍测试下,防止意外发生。

正文:

某天我想用python创建11位的数字字典文件,
当文件跑到40G的时候,
系统提示磁盘不够用了,
用df -hl 命令查看根目录只有50G。
Centos7.6通过削减home 补充根目录空间#Linux_第1张图片
反而/home目录空间较多,
我猜装系统的时候完全使用的是磁盘自动分区,
没有做手动划分导致的。
根目录50G肯定是不够用的,
所以尝试从home削掉150G补过来。

大致思路:

备份/home分区内容 -> 卸载/home -> 重新设置/dev/mapper/centos-home大小 ->
增加/dev/mapper/centos-root的空间大小 -> 延展 xfs 空间 -> 格式化 /home 的 lvm ->
挂载/home ->恢复/home目录的内容

1.备份/home分区内容

centos7 预装的操作系统是XFS,
特性是只能扩大不能缩小,
所以需要利用xfsdump 和 xfsrestore 工具在必须缩小lvm 的情况下,
备份并还原资料。
先备份/home到根目录下面。

先把 xfsdump 安装好:

[自建用户@localhost ~]$ su - root
[root@localhost /]# yum -y install xfsdump

开始备份:

[root@localhost /]# xfsdump -f /home.xfsdump /home

确认根目录下已生成备份文件:home.xfsdump
Centos7.6通过削减home 补充根目录空间#Linux_第2张图片
输入两次home
please enter label for this dump session (timeout in 300 sec)
-> home
please enter label for media in drive 0 (timeout in 300 sec)
-> home
默认回车
xfsdump: Dump Status: SUCCESS

Centos7.6通过削减home 补充根目录空间#Linux_第3张图片
以防万一再手动备两种份:

[root@localhost /]# cp -R /home /bak/home.bak
[root@localhost /]# tar -cvf /bak/home.tar /home

2.卸载/home

[root@localhost /]# umount /home

执行命令后发现/home正被占用

注意:如果使用root用户,umount /home 可直接卸载,不需要延迟卸载操作。
Centos7.6通过削减home 补充根目录空间#Linux_第4张图片
执行延迟卸载:

[root@localhost /]# mount -vl /home

Centos7.6通过削减home 补充根目录空间#Linux_第5张图片
执行完后/home已消失,但是实际上没有卸载。

3.重新设置/dev/mapper/centos-home大小

重新设置

[root@localhost /]# lvreduce -L 256G /dev/mapper/centos-home

我设置的是256G,根据自己情况定。
Centos7.6通过削减home 补充根目录空间#Linux_第6张图片

4.增加/dev/mapper/centos-root的空间大小

把剩余free的空间全部填充:

[root@localhost /]# lvextend -l +100%FREE /dev/mapper/centos-root

在这里插入图片描述

5.延展 xfs 空间

[root@localhost /]# xfs_growfs /dev/mapper/centos-root

Centos7.6通过削减home 补充根目录空间#Linux_第7张图片

6.格式化 /home 的 lvm

以下过程会出现意外,但是不要慌!

[root@localhost ~]# mkfs.xfs -f /dev/mapper/centos-home

该命令会提示设备busy,不让格式化,原因是上面卸载home是延时卸载,
资源一直在占用,虽然df -hl已经看不到了,但是设备依旧busy,此时需要重启系统。
reboot!!!

注意:root用户操作,执行mkfs.xfs -f /dev/mapper/centos-home时不会报错,不用重启机。

好了! 意外降临了,博主就是此时懵哔的,重启后不能进入图形界面了,
因为home卸载掉了,索性有命令行,只要有命令行就还有救!

此时继续格式化操作

mkfs.xfs -f /dev/mapper/centos-home

此时能正常格式化。

7.挂载/home

mount /home

挂载完毕后,reboot!!!
此时你会发现,图形界面回来了,但是自创建用户登陆不了,
因为home是刚挂载上的,是空的,所以用root登陆。

注意:root用户操作,执行mount /home 可直接挂载。

8.恢复/home目录的内容
把第一步生成的home.xfsdump文件进行恢复

[root@localhost /]# xfsrestore -f /home.xfsdump /home

此时过程已全部执行完毕
最后结果:
Centos7.6通过削减home 补充根目录空间#Linux_第8张图片

你可能感兴趣的:(Linux,Centos,磁盘空间,根目录空间不足,linux,centos7)