一、问题产生的背景
由于在CentOS 7中用virt-manager创建虚拟机的默认地址在/var/lib/libvirt/images/路径下,而笔者在安装CentOS 7时并没有注意到这些问题,将大部分的磁盘空间都分配给了/home,此时需要重新调整CentOS 7的分区大小,将/home挂载的一部分空间分配给/root,因此才有了下面的解决方案。
二、最终要达成的目标
目前/home挂载了450G硬盘大小,/root只挂载了50G,现要将/home分区分配出200G的硬盘空间给/root分区。
三、需要注意的前提条件
1、切记需要登录root用户进行下面的操作
2、切记在进行分区之间备份/home目录下内容
3、调整分区大小后,之前的用户需要删除后重新创建
四、解决方案
1、查看磁盘空间的大小
命令:
df -h
2、备份/home目录下的内容
命令:
cp -r /home/ /backup/
3、卸载home挂载分区
命令:
umount /home
如果出现home存在进程,则先使用下面的命令终止home下的进程,最后再使用上述命令卸载/home挂载分区
命令:
fuser -m -v -i -k /home
4、删除/home所在的逻辑卷
命令:
lvremove /dev/mapper/centos-home
5、扩展/root所在的逻辑卷,增加200G硬盘空间
命令:
lvextend -L +200G /dev/mapper/centos-root
6、扩展/root文件系统
命令:
xfs_growfs /dev/mapper/centos-root
7、查看未分区的空闲硬盘大小
命令:
vgdisplay
8、重新创建/home所在的逻辑卷,逻辑卷的大小根据上述命令中的FREE PE的大小来确定
命令:
lvcreate -L 250G -n home centos
9、创建/home文件系统
命令:
mkfs.xfs /dev/centos/home
10、挂载/home分区
命令:
mount /dev/centos/home /home
11、在CentOS 7中删除原来的用户和组
命令:
userdel [olduser]
12、在CentOS 7中创建新用户和组
命令:
useradd [newuser]
13、为新用户设置登录密码
命令:
passwd [newuser]
14、使用新用户登录系统,系统会在/home路径下创建新用户的用户目录和配置文件
15、返回root用户登录,将原来用户备份的文件拷贝至新的目录中即可
16、在root用户中将新增用户[newuser]写入至/etc/sudoers文件中
命令:
chmod u+w /etc/sudoers
在root ALL=(ALL) ALL下面新增一行:
[newuser] ALL=(ALL) ALL
chmod u-w /etc/sudoers