Press "Enter" to skip to content

centos7磁盘重新划分空间大小

问题

最近发现我装的centos7根路径的磁盘空间不够用了,仔细df看一下,系统给根就50G,咦,我虚拟机创建的时候给的200G呀。

后来发现,我每次建虚拟机分区创建的时候,选的自动分区。

如果自动分区的话,可能他有个比例。然后我的情况200G的话,他默认给根路径(/)下面就50G,然后给swap一点空间,剩下的都给了/home。他home和/不在一起的,单独挂的分区。

那就看看能不能缩容下home。在把空间给root呗。

分析

查资料发现,我的centos7使用的是XFS文件系统,然后这个文件系统好像不能缩容(shrunk)。

然后可用的方案是,你先把你的home备份下,再把整个home干掉,然后创建个小一点的home。把资料还原回去。然后这时候你的磁盘就有空闲了,再把你的根扩容就好了。

解决问题

先备份你的home

> tar -czvf /root/home.tgz -C /home .

测试下你的备份是不是好的

> tar -tvf /root/home.tgz

卸载home(你可能会遇到 umount: /home: target is busy. 这个错误,你要退出相关用户或者关闭某些程序,确保你的/home下面东西没人在用。)

> umount /dev/mapper/centos-home

删除home的逻辑卷

> lvremove /dev/mapper/centos-home

重新创建个合适大小的home(我这里给50G)然后格式化,然后挂载他

> lvcreate -L 50GB -n home centos
> mkfs.xfs /dev/centos/home
> mount /dev/mapper/centos-home

扩展你的根卷到所以的空闲空间

lvextend -r -l +100%FREE /dev/mapper/centos-root

把你的备份还原回去

> tar -xzvf /root/home.tgz -C /home

扩容完成,美滋滋。

[root@localhost ~]# df -h
Filesystem               Size  Used Avail Use% Mounted on
devtmpfs                  16G     0   16G   0% /dev
tmpfs                     16G     0   16G   0% /dev/shm
tmpfs                     16G  9.6M   16G   1% /run
tmpfs                     16G     0   16G   0% /sys/fs/cgroup
/dev/mapper/centos-root  134G  4.3G  129G   4% /
/dev/sda1               1014M  236M  779M  24% /boot
/dev/mapper/centos-home   50G   39M   50G   1% /home
tmpfs                    3.2G  8.0K  3.2G   1% /run/user/42
tmpfs                    3.2G     0  3.2G   0% /run/user/0

检查下你的/etc/fstab,如果有什么映射到/home下面的,如果使用uuid映射的话,也要改下,因为你的home卷是新创建的,uuid也变了。

参考资料:

https://serverfault.com/questions/771921/how-to-shrink-home-and-add-more-space-on-centos7

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注