## 一、前言:
- 当磁盘总量较大时,一般的默认分区会分配给根目录50G,其余的空间则会全部分配到home目录,这将导致系统无法存放太多的系统文件。除home目录挂载的分区外,其余目录的最大容量为50G,也会产生大量的存储空间无法被有效利用,故而我们需要对文件系统进行重新分区。
- 注意:当前的文件系统类型有多种,不同的文件系统的处理方式也不一样。比较常见的是`xfs`(CentOS默认安装分区类型)以及`ext4`。
## 二、实验背景:
- 磁盘总容量:150GB
- 根目录挂载:50GB
- 家目录挂载:97GB
- 其他挂载:3GB
![image-20231002235227128](https://picture.gotarget.top/202310030035656.png)
## 三、系统分区
### 3.1 确认文件系统类型
- 首先需要确认系统采用哪种文件系统
- 命令:`sudo blkid`
- 示例:`ext4`
![image-20231002235753213](https://picture.gotarget.top/202310030035573.png)
- 示例:`xfs`
![image-20231002235936834](https://picture.gotarget.top/202310030035218.png)
### 3.2 系统类型—xfs
- 查看当前分区情况
- 命令:`df -h`
![image-20231002235227128](https://picture.gotarget.top/202310030035004.png)
- 卸载`/dev/mapper/centos-home` 分区挂载
- 命令:`sudo umount /dev/mapper/centos-home`
- **注意**:建议在卸载分区前对home进行目录备份,变更大小将使得该分区不可用
![image-20231003000432163](https://picture.gotarget.top/202310030035140.png)
- 缩小逻辑卷,使用 `lvresize` 命令来缩小逻辑卷的大小为目标值(50GB)
- 命令:`sudo lvresize --size 50G /dev/mapper/centos-home`
- **注意-1**:对正常的分区卷使用该命令强行改变分区大小,将会导致该文件分区不可用,故建议先对该卷挂载的目录进行备份处理
- **注意-2**:后续重新挂载该分区报错,可以尝试恢复文件原分区大小来恢复挂载
- **注意-3**:在对该目录文件留有备份或不需要home目录下的文件,建议直接删除该分区,将所有的空间置于闲置,采用该方法来变更逻辑卷大小,后续该逻辑卷也无法重新挂载,将损失50GB的空间未利用。
![image-20231003001535908](https://picture.gotarget.top/202310030036654.png)
- 将所有的闲置空间通过`lvextend`分配给根分区
- 命令:`sudo lvextend -l +100%FREE /dev/mapper/centos-root`
![image-20231003002015767](https://picture.gotarget.top/202310030036633.png)
- 让系统识别新的根分区挂载
- 命令:`sudo lvextend -l +100%FREE /dev/mapper/centos-root`
![image-20231003002300868](https://picture.gotarget.top/202310030036059.png)
- 完成调节根分区!
![image-20231003002554451](https://picture.gotarget.top/202310030036511.png)
- 若不对原home分区挂载逻辑卷进行处理,将会导致损失50GB可用空间,故建议删除该分区,将所有空间全部加载到根分区
- 重新挂载分区:`mount /dev/mapper/centos-home`(失败操作,该逻辑卷异常,无法正常挂载)
- 删除分区:`lvremove /dev/mapper/centos-home`
- 查看磁盘详情:`vgdisplay -v`
### 3.3 系统类型—etx4
- 查看当前分区情况
- 命令:`df -h`
![image-20231003003711866](https://picture.gotarget.top/202310030108181.png)
- 卸载`/dev/mapper/centos-home` 分区挂载
- 命令:`sudo umount /dev/mapper/centos-home`
![image-20231003003940373](https://picture.gotarget.top/202310030108451.png)
- 检查`/dev/mapper/centos-home`逻辑卷
- 命令:`e2fsck -f /dev/mapper/centos-home`
![image-20231003004311598](https://picture.gotarget.top/202310030108077.png)
- 压缩`/dev/mapper/centos-home` 逻辑卷到50GB
- 命令:`sudo lvresize --resizefs --size 50G /dev/mapper/centos-home`
![image-20231003010151978](https://picture.gotarget.top/202310030108577.png)
- 重新挂载`/dev/mapper/centos-home`逻辑卷
- 命令:`mount /dev/mapper/centos-home`
- **注意**:xfs格式的文件系统在减小逻辑卷大小后,无法直接挂载,而ext4则可以!
![image-20231003004636535](https://picture.gotarget.top/202310030108487.png)
- 将所有的闲置空间通过`lvextend`分配给根分区
- 命令:`sudo lvextend -l +100%FREE /dev/mapper/centos-root`
![image-20231003010623558](https://picture.gotarget.top/202310030109002.png)
- 让系统识别调整后的分区
- 命令:`xfs_growfs /dev/mapper/centos-root`
![image-20231003010538465](https://picture.gotarget.top/202310030109322.png)
- 系统分区调整成功(完美!)
- 注:相较于`xfs`文件系统,`etx4`调整分区更容易,而且调小分区空间后,也不会导致分区出现异常,譬如无法挂载等问题。
![image-20231003010715419](https://picture.gotarget.top/202310030109291.png)
Linux磁盘重新分区