在安装centos7.9时我们一般采用默认分区设置,使用LVM来管理磁盘空间,根分区只有50GB,其余的所有可用空间都分配在/home分区下。可是centos7中大多数的应用软件都是安装在根分区的,在使用过程中经常会出现明明系统还有很大的磁盘空间却报根分区磁盘不足的故障。面对这种情况有两种解决方案,一是重新安装应用软件,并指定应用软件的路径为/home分区,二是重新调整磁盘分区的大小,缩减/home分区大小并将空余磁盘空间合并到根分区。
LVM(Logical Volume Manager,逻辑卷管理器)是一种高级的磁盘管理技术,它提供了一种灵活的方式来管理硬盘空间。通过LVM,你可以将多个物理硬盘组合成一个或多个逻辑卷,并且可以在不影响数据的情况下动态调整这些逻辑卷的大小。
LVM的基本概念:
- PV(Physical Volume,物理卷):这是LVM中的最底层,可以是实际物理硬盘上的分区,也可以是整个物理硬盘,或者是RAID设备。
- VG(Volume Group,卷组):卷组是建立在物理卷之上的,一个卷组中至少包括一个物理卷。你可以动态地向卷组中添加物理卷。
- LV(Logical Volume,逻辑卷):逻辑卷是建立在卷组之上的,你可以从卷组中划分出任意大小的逻辑卷。逻辑卷可以动态地扩展和缩小。
- PE(Physical Extent,物理块):LVM默认使用4MB的PE区块,这是LVM中最小的存储区块,用于存储数据。
1.查看当前分区情况
df -h
[root@localhost ~]# df -h
Filesystem Size Used Avail Use% Mounted on
devtmpfs 3.8G 0 3.8G 0% /dev
tmpfs 3.9G 0 3.9G 0% /dev/shm
tmpfs 3.9G 21M 3.8G 1% /run
tmpfs 3.9G 0 3.9G 0% /sys/fs/cgroup
/dev/mapper/centos-root 50G 6.1G 44G 13% /
/dev/sda1 1014M 226M 789M 23% /boot
/dev/mapper/centos-home 441G 39M 441G 1% /home
tmpfs 781M 40K 781M 1% /run/user/1000
tmpfs 781M 0 781M 0% /run/user/0
或者使用df -HT
命令
df -HT
Filesystem Type Size Used Avail Use% Mounted on
devtmpfs devtmpfs 4.1G 0 4.1G 0% /dev
tmpfs tmpfs 4.1G 0 4.1G 0% /dev/shm
tmpfs tmpfs 4.1G 22M 4.1G 1% /run
tmpfs tmpfs 4.1G 0 4.1G 0% /sys/fs/cgroup
/dev/mapper/centos-root xfs 54G 6.5G 48G 13% /
/dev/sda1 xfs 1.1G 237M 827M 23% /boot
/dev/mapper/centos-home xfs 474G 40M 474G 1% /home
tmpfs tmpfs 819M 41k 819M 1% /run/user/1000
tmpfs tmpfs 819M 0 819M 0% /run/user/0
继续使用命令lsblk
查看磁盘信息
[root@localhost ~]# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 500G 0 disk
├─sda1 8:1 0 1G 0 part /boot
└─sda2 8:2 0 499G 0 part
├─centos-root 253:0 0 50G 0 lvm /
├─centos-swap 253:1 0 7.9G 0 lvm [SWAP]
└─centos-home 253:2 0 441.1G 0 lvm /home
sr0 11:0 1 1024M 0 rom
上面的命令显示/
目录为50G,/home
目录为441.1G。
2.卸载/home分区
命令下面的命令卸载/home分区
umount -l /home
👿 要加-l
选项,否则会出现无法卸载的现象。
使用上述命令要通过df -h
查看直到输出中不存在/dev/mapper/centos-home
才可以。
3.删除/home逻辑卷
lvremove /dev/mapper/centos-home
👿 这里的/dev/mapper/centos-home
对应df -h
输出的相关信息。
👿 删除逻辑卷时,如果/home分区还有程序在运行则会报错。
如果出现报错Logical volume centos/home contains a filesystem in use.
信息则是很有可能你有其他用户在登录使用/home目录。使用df -h
命令查看,会发现还有一个用户登录着系统,使用命令pkill -u 1000
将这个用户踢掉,然后再执行删除逻辑卷的命令。
4.重新创建/home卷
使用lvcreate
命令创建/home卷,-L 10G表明新建/home分区为10G。
lvcreate -L 10G -n home centos
5.格式化/home分区
mkfs.xfs /dev/mapper/centos-home
6.挂载/home分区
mount /dev/mapper/centos-home /home
7.扩展根分区
将磁盘剩余的空间扩展到根分区下
lvextend -l +100%FREE /dev/mapper/centos-root
到目前为止剩余磁盘已经重新分配到根分区了,但是还需要更新/root的文件系统才能让更新生效。
使用下面的命令更新根分区。
xfs_growfs /dev/mapper/centos-root
一切已经正常了。
👿 ⚠️ 🔥 大家一定要谨慎操作,要对/home目录下的文件提前备份好,以及其他目录的一些重要文件要提前做好备份。