Linux磁盘重新分区

Linux磁盘重新分区

Scroll Down

一、前言:

  • 当磁盘总量较大时,一般的默认分区会分配给根目录50G,其余的空间则会全部分配到home目录,这将导致系统无法存放太多的系统文件。除home目录挂载的分区外,其余目录的最大容量为50G,也会产生大量的存储空间无法被有效利用,故而我们需要对文件系统进行重新分区。
  • 注意:当前的文件系统类型有多种,不同的文件系统的处理方式也不一样。比较常见的是xfs(CentOS默认安装分区类型)以及ext4

二、实验背景:

  • 磁盘总容量:150GB
  • 根目录挂载:50GB
  • 家目录挂载:97GB
  • 其他挂载:3GB

image-20231002235227128

三、系统分区

3.1 确认文件系统类型

  • 首先需要确认系统采用哪种文件系统

    • 命令:sudo blkid
  • 示例:ext4

image-20231002235753213

  • 示例:xfs

image-20231002235936834

3.2 系统类型—xfs

  • 查看当前分区情况
    • 命令:df -h

image-20231002235227128

  • 卸载/dev/mapper/centos-home 分区挂载
    • 命令:sudo umount /dev/mapper/centos-home
    • 注意:建议在卸载分区前对home进行目录备份,变更大小将使得该分区不可用

image-20231003000432163

  • 缩小逻辑卷,使用 lvresize 命令来缩小逻辑卷的大小为目标值(50GB)

    • 命令:sudo lvresize --size 50G /dev/mapper/centos-home

    • 注意-1:对正常的分区卷使用该命令强行改变分区大小,将会导致该文件分区不可用,故建议先对该卷挂载的目录进行备份处理

    • 注意-2:后续重新挂载该分区报错,可以尝试恢复文件原分区大小来恢复挂载

    • 注意-3:在对该目录文件留有备份或不需要home目录下的文件,建议直接删除该分区,将所有的空间置于闲置,采用该方法来变更逻辑卷大小,后续该逻辑卷也无法重新挂载,将损失50GB的空间未利用。

image-20231003001535908

  • 将所有的闲置空间通过lvextend分配给根分区
    • 命令:sudo lvextend -l +100%FREE /dev/mapper/centos-root

image-20231003002015767

  • 让系统识别新的根分区挂载
    • 命令:sudo lvextend -l +100%FREE /dev/mapper/centos-root

image-20231003002300868

  • 完成调节根分区!

image-20231003002554451

  • 若不对原home分区挂载逻辑卷进行处理,将会导致损失50GB可用空间,故建议删除该分区,将所有空间全部加载到根分区

    • 重新挂载分区:mount /dev/mapper/centos-home(失败操作,该逻辑卷异常,无法正常挂载)

    • 删除分区:lvremove /dev/mapper/centos-home

    • 查看磁盘详情:vgdisplay -v

3.3 系统类型—etx4

  • 查看当前分区情况
    • 命令:df -h

image-20231003003711866

  • 卸载/dev/mapper/centos-home 分区挂载
    • 命令:sudo umount /dev/mapper/centos-home

image-20231003003940373

  • 检查/dev/mapper/centos-home逻辑卷
    • 命令:e2fsck -f /dev/mapper/centos-home

image-20231003004311598

  • 压缩/dev/mapper/centos-home 逻辑卷到50GB
    • 命令:sudo lvresize --resizefs --size 50G /dev/mapper/centos-home

image-20231003010151978

  • 重新挂载/dev/mapper/centos-home逻辑卷
    • 命令:mount /dev/mapper/centos-home
    • 注意:xfs格式的文件系统在减小逻辑卷大小后,无法直接挂载,而ext4则可以!

image-20231003004636535

  • 将所有的闲置空间通过lvextend分配给根分区
    • 命令:sudo lvextend -l +100%FREE /dev/mapper/centos-root

image-20231003010623558

  • 让系统识别调整后的分区
    • 命令:xfs_growfs /dev/mapper/centos-root

image-20231003010538465

  • 系统分区调整成功(完美!)
    • 注:相较于xfs文件系统,etx4调整分区更容易,而且调小分区空间后,也不会导致分区出现异常,譬如无法挂载等问题。

image-20231003010715419