> 文章列表 > 【工作记录】linux分配home空间到root目录

【工作记录】linux分配home空间到root目录

【工作记录】linux分配home空间到root目录

本文记录下centos系统下,移动/home下的空间到root目录下的具体操作步骤与问题及解决方案。

0、初始情况

[root@kf202 home]# df -lh
Filesystem               Size  Used Avail Use% Mounted on
/dev/mapper/centos-root   48G   30G   18G  63% /
devtmpfs                 3.7G     0  3.7G   0% /dev
tmpfs                    3.7G     0  3.7G   0% /dev/shm
tmpfs                    3.7G  336M  3.4G   9% /run
tmpfs                    3.7G     0  3.7G   0% /sys/fs/cgroup
/dev/sda1               1014M  249M  766M  25% /boot
/dev/mapper/centos-home   24G   33M   24G   1% /home
tmpfs                    748M     0  748M   0% /run/user/0

现在的目标是把/home的大小调整为4G, 把根目录大小调整为68G

1、解除/home逻辑卷关联

[root@kf202 home]# umount /home/
umount: /home: target is busy.(In some cases useful info about processes that usethe device is found by lsof(8) or fuser(1))

以上报错是说/home有关联的使用,需要先解除,通过fuser -km /home来解除(如有必要自行进行备份),如下:

[root@kf202 home]# fuser -km /home
/home:               18587c

再次指定解除命令,不报错即成功。

[root@kf202 ~]# umount /home/

2、移除/centos-home并增加空间到root目录

[root@kf202 ~]# lvremove /dev/mapper/centos-home
Do you really want to remove active logical volume centos/home? [y/n]: yLogical volume "home" successfully removed
[root@kf202 ~]# lvextend -L +20G /dev/mapper/centos-rootSize of logical volume centos/root changed from <47.79 GiB (12233 extents) to <67.79 GiB (17353 extents).Logical volume centos/root successfully resized.

ps: 有的网站博主提供的命令执行后会报如下错误:

[root@kf202 ~]# lvextend -L 20G /dev/mapper/centos-rootNew size given (5120 extents) not larger than existing size (12233 extents)

原因是大小前面缺少+号,也就是要修改为lvextend -L +20G /dev/mapper/centos-root

3、执行扩容命令

[root@kf202 ~]# resize2fs /dev/mapper/centos-root
resize2fs 1.42.9 (28-Dec-2013)
resize2fs: Bad magic number in super-block while trying to open /dev/mapper/centos-root
Couldn't find valid filesystem superblock.

查看当前root对应的文件格式

[root@kf202 ~]# mount | grep root
/dev/mapper/centos-root on / type xfs (rw,relatime,attr2,inode64,noquota)
# xfs格式的需要使用 xfs_growfs /dev/mapper/centos-root 命令扩容
[root@kf202 ~]# xfs_growfs /dev/mapper/centos-root
meta-data=/dev/mapper/centos-root isize=512    agcount=4, agsize=3131648 blks=                       sectsz=512   attr=2, projid32bit=1=                       crc=0        finobt=0 spinodes=0
data     =                       bsize=4096   blocks=12526592, imaxpct=25=                       sunit=0      swidth=0 blks
naming   =version 2              bsize=4096   ascii-ci=0 ftype=0
log      =internal               bsize=4096   blocks=6116, version=2=                       sectsz=512   sunit=0 blks, lazy-count=1
realtime =none                   extsz=4096   blocks=0, rtextents=0
data blocks changed from 12526592 to 17769472

查看扩容后的空间

[root@kf202 ~]# df -lh
Filesystem               Size  Used Avail Use% Mounted on
/dev/mapper/centos-root   68G   30G   38G  45% /
devtmpfs                 3.7G     0  3.7G   0% /dev
tmpfs                    3.7G     0  3.7G   0% /dev/shm
tmpfs                    3.7G  336M  3.4G   9% /run
tmpfs                    3.7G     0  3.7G   0% /sys/fs/cgroup
/dev/sda1               1014M  249M  766M  25% /boot
tmpfs                    748M     0  748M   0% /run/user/0

4、重新添加/home逻辑卷

[root@kf202 mapper]# vgsVG     #PV #LV #SN Attr   VSize  VFree centos   1   2   0 wz--n- 78.99g <4.80g
[root@kf202 mapper]# lvcreate -n home -L 4G centosLogical volume "home" created.

说明:

lvcreate 命令用于创建逻辑卷,这是lvm技术中最常用的命令,其语法格式如下:

lvcreate [参数] 卷组名

lvcreate创建一个逻辑卷需要指定卷组,表示在哪个卷组之上创建逻辑卷;通过vgs可以查看有哪些卷组可以使用。

常用参数:

参数名 参数说明
-n 指定逻辑卷名称
-L 指定逻辑卷大小,需要明确单位,可以是BSKMGTPE中任何一个,不区分大小写
-l 使用LE个数来指定逻辑卷的大小,或者使用剩余空间百分比设置(+100%FREE),我们一般使用-L直接指定即可。

查看/dev/mapper/文件夹下的文件目录

[root@kf202 mapper]# ls
centos-home  control
centos-root  docker-253:0-44945806-pool
centos-swap

5、格式化home目录并执行绑定(mount)

[root@kf202 mapper]# mkfs.xfs /dev/mapper/centos-home
meta-data=/dev/mapper/centos-home isize=512    agcount=4, agsize=262144 blks=                       sectsz=512   attr=2, projid32bit=1=                       crc=1        finobt=0, sparse=0
data     =                       bsize=4096   blocks=1048576, imaxpct=25=                       sunit=0      swidth=0 blks
naming   =version 2              bsize=4096   ascii-ci=0 ftype=1
log      =internal log           bsize=4096   blocks=2560, version=2=                       sectsz=512   sunit=0 blks, lazy-count=1
realtime =none                   extsz=4096   blocks=0, rtextents=0
[root@kf202 mapper]# mount /dev/mapper/centos-home

执行不报错即为成功。

6、验证

再次执行df -lh 查看现在的情况。

[root@kf202 mapper]# df -lh
Filesystem               Size  Used Avail Use% Mounted on
/dev/mapper/centos-root   68G   30G   38G  45% /
devtmpfs                 3.7G     0  3.7G   0% /dev
tmpfs                    3.7G     0  3.7G   0% /dev/shm
tmpfs                    3.7G  375M  3.3G  11% /run
tmpfs                    3.7G     0  3.7G   0% /sys/fs/cgroup
/dev/sda1               1014M  249M  766M  25% /boot
tmpfs                    748M     0  748M   0% /run/user/0
/dev/mapper/centos-home  4.0G   33M  4.0G   1% /home

可以看到,现在root目录下的大小为68G, /home目录大小为4G。

以上就是处理该问题的全部步骤,希望能帮助到有需要的朋友。如有不正确或者不严谨的地方,欢迎批评指正~