如何在 Linux 中扩展 XFS 根分区

2022-05-05 00:00:00 分区 磁盘 扩展 扩容 如何在


在某些情况下,/ 分区在 Linux 中磁盘空间不足。即使压缩和删除旧的日志文件也无济于事,因此在这种情况下,我们别无选择,只能扩展 / 文件系统。在本文中,我们将演示如何在 Linux 系统中扩展不是LVM逻辑卷中的xfs根分区。

首先我们必须向系统磁盘扩展额外的空间,然后使用growpartxfs_growfs 命令扩展根分区(或文件系统)。

本文使用的VMware Workstation,并且安装的操作系统是Centos8,磁盘空间为20GB。/ 根分区大小为17GB。


检查 / 分区大小


运行df -Th /查看当前根分区的大小:

[root@localhost ~]# df -Th /
Filesystem     Type  Size  Used Avail Use% Mounted on
/dev/nvme0n1p2 xfs    17G  1.6G   16G  10% /


使用 lsblk 和 fdisk 命令验证操作系统磁盘的大小:

[root@localhost ~]# lsblk /dev/nvme0n1
[root@localhost ~]# fdisk -l /dev/nvme0n1



以上输出显示 OS 磁盘的大小为 17 GB。


安装系统的磁盘扩容


增加操作系统磁盘的大小,我将操作系统磁盘大小从 20 GB 更改为 40 GB。

本文使用的是VMware Workstation,需要将操作系统关机,然后执行磁盘扩容。

分区扩展之前是20GB。


下面将系统磁盘扩展到40GB。


可以看到,已经扩展完成,下一步就启动系统吧。


基于 xfs 文件系统扩展根分区


要扩展根分区,我们需要使用growpartxfs_growfs命令。我们需要安装该命令:

[root@localhost ~]# yum -y install cloud-utils-growpart gdisk


扩容完成之后,接下来查看一下磁盘容量:


以上输出确认操作系统磁盘大小现在为 40 GB,现在让我们使用以下命令扩展根分区。

在/dev/sda 磁盘的第二个分区上运行growpart 命令(我们使用2 作为分区号,因为我们的 / 分区在磁盘上的第二个分区)。

[root@localhost ~]# growpart /dev/nvme0n1 2
CHANGED: partition=2 start=1026048 old: size=35651584 end=36677632 new: size=82859999 end=83886047



检验一下:


注意,如果想要使用growpart命令扩容 / 分区,该分区后面不能有其他分区,不然无法扩容。会提示如下信息:


如果 / 分区下面有一个swap分区,只能删掉swap分区,然后执行growpart来扩容 / 根分区。

使用df -Th 看一下 / 分区是否已扩容:

[root@localhost ~]# df -hT /
Filesystem     Type  Size  Used Avail Use% Mounted on
/dev/nvme0n1p2 xfs    17G  1.7G   16G  10% /



发现分区没有扩容。下面需要用到xfs_growfs命令来扩容xfs分区:

[root@localhost ~]# xfs_growfs /
meta-data=/dev/nvme0n1p2         isize=512    agcount=4, agsize=1114112 blks
         =                       sectsz=512   attr=2, projid32bit=1
         =                       crc=1        finobt=1, sparse=1, rmapbt=
         =                       reflink=1
data     =                       bsize=4096   blocks=4456448, imaxpct=25
         =                       sunit=      swidth= blks
naming   =version 2              bsize=4096   ascii-ci=, ftype=1
log      =internal log           bsize=4096   blocks=2560, version=2
         =                       sectsz=512   sunit= blks, lazy-count=1
realtime =none                   extsz=4096   blocks=, rtextents=
data blocks changed from 4456448 to 10357499



下面使用df -Th 看一下 / 分区是否已扩容:

[root@localhost ~]# df -hT /
Filesystem     Type  Size  Used Avail Use% Mounted on
/dev/nvme0n1p2 xfs    40G  1.8G   38G   5% /



总    结


本文使用了growpartxfs_growfs命令来扩容了磁盘和xfs分区。


相关文章