Linux 根目录动态扩容

less than 1 minute read

动态扩容 Linux 根目录,解决 /dev/mapper/centos-root 占用过高的问题。

首先,必须确保其他分区有足够的空间用来分给根目录 / 。可以使用以下命令查看:

$ sudo df -h
Filesystem               Size  Used Avail Use% Mounted on
/dev/mapper/centos-root   50G   34G   17G  67% /
devtmpfs                  32G     0   32G   0% /dev
tmpfs                     32G     0   32G   0% /dev/shm
tmpfs                     32G   58M   32G   1% /run
tmpfs                     32G     0   32G   0% /sys/fs/cgroup
/dev/sdb2               1014M  279M  736M  28% /boot
/dev/sdb1                200M  9.8M  191M   5% /boot/efi
/dev/mapper/centos-home  3.6T   17G  3.6T   1% /home

可以看到,这里 home 目录空闲的空间还很大,因此,我们将 home 的空间分给根目录一些。

扩容根目录的思路如下:

/home 文件夹备份,删除 /home 文件系统所在的逻辑卷,增大 / 文件系统所在的逻辑卷,增大 / 文件系统大小,最后新建 /home 目录,并恢复 /home 文件夹下的内容。

Step1:备份 /home 分区内容

这里需要选一个能够容纳下 /home 文件夹大小的分区,可以看到 /run 剩余空间为32G,因此,我们将 /home 备份到 /run 下面

$ sudo tar cvf /run/home.tar /home

Step2:卸载 /home 目录

要先终止所有使用 /home 文件系统的进程,这里要注意不要在 /home 目录下执行下面的操作

$ sudo fuser -km /home
$ sudo umount /home

安装 fuser 命令:yum install -y psmisc

Step3:删除 /home 所在的逻辑卷 lv

$ sudo lvremove /dev/mapper/centos-home

选择 y

Step4:扩大根目录所在的逻辑卷,这里增大 1T

$ sudo lvextend -L +1T /dev/mapper/centos-root

Step5:扩大 / 文件系统

$ sudo xfs_growfs /dev/mapper/centos-root

Step6:重建 /home 文件系统所需要的逻辑卷

由于刚才我们分出去 1.0T,因此这里创建的逻辑卷大小为 2.5T

$ sudo lvcreate -L 2.5T -n/dev/mapper/centos-home

Step7:创建文件系统

$ sudo mkfs.xfs  /dev/mapper/centos-home

Step8:将新建的文件系统挂载到 /home 目录下

$ sudo mount /dev/mapper/centos-home

Step9:恢复 /home 目录的内容

$ sudo tar xvf /run/home.tar -C /

Step10:删除 /run 下面的备份

$ sudo rm -rf /run/home.tar

Tags:

Categories:

Updated: