来自公众号:Linux就该这么学
在某些情况下,/ 分区在 Linux 中磁盘空间不足。即使压缩和删除旧的日志文件也无济于事,因此在这种情况下,我们别无选择,只能扩展 / 文件系统。在本文中,我们将演示如何在 Linux 系统中扩展不是LVM逻辑卷中的xfs根分区。
首先我们必须向系统磁盘扩展额外的空间,然后使用growpart
和xfs_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 文件系统扩展根分区
要扩展根分区,我们需要使用growpart
和xfs_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% /
总 结
growpart
和xfs_growfs
命令来扩容了磁盘和xfs分区。