共计 1809 个字符,预计需要花费 5 分钟才能阅读完成。
导读 | 在某些情况下,/ 分区在 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。
可以看到,已经扩展完成,下一步就启动系统吧。
要扩展根分区,我们需要使用 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=0
= reflink=1
data = bsize=4096 blocks=4456448, imaxpct=25
= sunit=0 swidth=0 blks
naming =version 2 bsize=4096 ascii-ci=0, ftype=1
log =internal log bsize=4096 blocks=2560, version=2
= sectsz=512 sunit=0 blks, lazy-count=1
realtime =none extsz=4096 blocks=0, rtextents=0
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 分区。