时间:2023.07.07
环境:Ubuntu/Centos
目的:分配闲置空间到指定分区/将分区空间转移到指定分区
说明:
作者:Zhong QQ交流群:121160124 欢迎加入!
在安装Ubuntu/Centos/Stream等系统时 有时对于硬盘空间的划分不合理或者自动分配空间时有很大一部分空间未分配 此时可以手动去管理空间
相关命令介绍
lvdisplay
"lvdisplay"是一个Linux命令,用于显示逻辑卷(Logical Volume)的详细信息。逻辑卷是在LVM(Logical Volume Manager)中创建的虚拟磁盘,它可以将多个物理硬盘上的分区组合成一个逻辑卷,并提供更灵活的存储管理。
当在终端中输入"lvdisplay"命令时,它会列出系统中所有逻辑卷的相关信息,包括逻辑卷名称、大小、路径、文件系统类型等。通过"lvdisplay"命令,您可以获取有关逻辑卷的详细配置和状态信息,以便进行存储管理和故障排除等操作。
vgdisplay
"vgdisplay"是Linux系统上的一个命令,用于显示卷组(Volume Group)的详细信息。卷组是在LVM(Logical Volume Manager)中创建的逻辑存储池,它由一个或多个物理卷(Physical Volume)组成,并提供了对逻辑卷(Logical Volume)的分配和管理。
当在终端中输入"vgdisplay"命令时,它会列出系统中所有卷组的相关信息,包括卷组名称、物理卷数量、总容量、可用容量等。您可以通过"vgdisplay"命令来获取有关卷组的配置参数以及其当前状态的信息。这些信息对于存储管理、磁盘容量规划和故障诊断等操作非常有用。
xfs_growfs
"xfs_growfs"是一个Linux命令,用于扩展XFS文件系统的大小。
当需要扩展XFS文件系统以利用新添加的磁盘空间时,可以使用"xfs_growfs"命令。它会重新计算文件系统的大小并更新相关元数据,使其能够占用更多的可用空间。
要使用"xfs_growfs"命令,首先需要满足以下条件:
- 确保已经将新的磁盘或分区添加到系统,并完成了文件系统的创建。
- 需要找到要扩展的XFS文件系统所挂载的设备或分区。
然后,在终端中以root用户或具有适当权限的用户身份执行以下命令:
xfs_growfs /dev/<device> 其中,"/dev/<device>"是要扩展的XFS文件系统所挂载的设备或分区的路径。执行该命令后,"xfs_growfs"将会根据新的磁盘空间大小重新调整文件系统,并使其能够使用更多的可用空间。请注意,执行"xfs_growfs"命令可能需要卸载和重新挂载文件系统,因此在进行操作前,请确保没有正在使用该文件系统的重要数据,并在执行前做好备份工作,以防万一。
df
"df -h"是一个常用的Linux命令,用于以人类可读的方式显示文件系统的磁盘空间使用情况。
当在终端中输入"df -h"命令时,它会列出系统中所有挂载的文件系统的相关信息,包括文件系统的设备、大小、已用空间、可用空间、使用率和挂载点等。选项"-h"表示以人类可读的格式显示磁盘空间大小,以便更容易理解和阅读。
通过"df -h"命令,您可以快速查看系统中各个文件系统的磁盘空间使用情况,帮助您了解磁盘的存储情况,以及进行磁盘空间管理或故障排查等操作。
以下通过两个典型案例来说明常见场景的解决方案
一、将闲置空间分配到指定分区盘符下
查看当前磁盘空间数据
vgdisplay
可以看到有100多G的Free空间未使用
df -h
我们将这100多G的Free空间分配到/dev/mapper/cs-home分区(/home目录下面)
lvextend -l +100%FREE /dev/mapper/cs-home
执行成功
不但可以扩容 还可以缩减或指定固定的大小等操作
# /home 增加20G空间
lvextend –L +20G /dev/mapper/cs-home
# /home 减少20G空间
lvreduce -L -20G /dev/mapper/cs-home
# /home 设置为20G空间
lvextend –L 20G /dev/mapper/cs-home
# /home增加空闲空间的10%
lvextend -l +10%FREE /dev/mapper/cs-home
现在使用df查看空间还是未变的 要想立即生效 可使用xfs_growfs(文件系统是xfs格式用 xfs_growfs 是ext4格式用resize2fs)
xfs_growfs /dev/mapper/cs-home
操作成功
此时再执行df查看就看到有了
二、将一个挂载点多余的空间转移到另一个挂载点下面
在上面我们将空闲磁盘扩容到了/dev/mapper/cs-home分区 假设感觉用不了那么多空间 要把一部分空间转移到/dev/mapper/cs-root分区即根目录/下面 可按照如下步骤来操作转移
备份数据
mv /home/* /root/home_backup/
卸载目录
umount /home # 强制卸载使用 umount -f /home
删除逻辑卷
此时使用lvdisplay查看逻辑卷时/dev/cs/home信息不存在
使用vgdisplay查看Free空间时发现多了前面对应的/home目录对应的分区空间大小
由于/home是用户目录 所以是需要存在的 接下来新建home卷
lvcreate -L 40G -n cs-home cs # -L 指定逻辑卷的大小 -n 指定逻辑卷的名称 分配给目标卷组cs 可使用lvdisplay查看已存在的卷组 也可以使用vgcreate创建一个新的卷组
操作成功
在新建的逻辑卷home上建立xfs文件系统
挂载目录
mount /dev/mapper/cs-home /home
查看df
查看fstab 确保挂载的目录是正确的 如果不正确可以手动修改的
把之前备份的/home数据mv到/home目录
mv /root/home_backup/* /home/
此时Free空间通过上面一的方式扩容到根目录下即可
重启系统验证一下空间是否生效 df查看/home目录是否已挂载