Linux扩容硬盘空间(以CentOS 7为例)
Linux扩容硬盘空间(以CentOS 7为例)
背景
此次系统部署在exsi 7虚拟化平台中,并且使用的是虚拟磁盘进行扩容。
准备步骤
首先需要在exsi平台中增加系统的硬盘空间,根据以下步骤进行操作:


执行扩容
使用SSH工具连接机器,并根据以下步骤输入命令:
查看空间
df -h
fdisk -l
警告
这里可以看到磁盘空间已经增加,红框标注的是根卷路径,大小未增加,但Disk /dev/sda的空间已经是40G,如果没有增加,可执行下一个步骤“识别新空间”来让系统识别到新增的空间。
这里除了fdisk命令之外,还可以选择gdisk,gdisk命令更加适合现代操作系统的磁盘管理。
识别新空间(可跳过)
查看SCSI设备
ls /sys/class/scsi_device/
这里可以看到有两个设备,需要执行以下命令对这些SCSI设备进行扫描:
echo 1 > /sys/class/scsi_device/X:X:X:X/device/rescan警告
请将X:X:X:X替换为你的实际设备名,例如这里要执行两次:
echo 1 > /sys/class/scsi_device/0:0:0:0/device/rescanecho 1 > /sys/class/scsi_device/3:0:0:0/device/rescan查看磁盘容量
在执行扫描之后可以执行以下命令来查看磁盘空间是否已经增加:
fdisk -l创建新分区
从上文可知磁盘设备是/dev/sda,现在需要将新增的未分配空间划分成一个新分区(例如 /dev/sda3):
进入分区软件运行
fdisk中,后面跟的是磁盘:fdisk /dev/sda
image-20251120224633285 输入
n创建新分区;选择
p为主分区;选择分区号,例如
3(如果1和2已存在);起始扇区直接按回车使用默认值即可,结束扇区也使用默认值,会使用所有剩余空间;
输入
t更改分区类型;输入
3(3是新的分区号);设置分区类型为
8e(Linux LVM);输入
w保存并退出。
以上步骤的示例图如下:

运行以下命令让内核重新读取分区表:
partprobe
image-20251120225613140
创建物理卷并扩展卷组
将新分区创建为物理卷:
pvcreate /dev/sda3查看卷组名:
vgdisplay
image-20251120225822290 将新的物理卷加入到卷组中:
vgextend centos /dev/sda3警告
请将"centos"替换为你的卷组名

image-20251120230001920
现在,卷组中有了新的空闲空间,可以将其扩展到需要扩容的逻辑卷(例如根卷 /dev/mapper/centos-root):
查看逻辑卷路径:
fdisk -l
image-20251120230728863 扩展逻辑卷,使用所有空闲空间:
lvextend -l +100%FREE /dev/mapper/centos-root警告
请将
/dev/mapper/centos-root替换为你的逻辑卷路径,也可以使用-L +10G这样的方式指定要扩展的具体大小。
image-20251120230857924
扩展文件系统
最后一步是扩展文件系统,这样才能真正使用新增的空间。
对于 ext4 文件系统,使用
resize2fs:resize2fs /dev/mapper/centos-root对于 XFS 文件系统(CentOS 7 默认),使用
xfs_growfs:xfs_growfs /dev/mapper/centos-root
image-20251120231220346
警告
请将/dev/mapper/centos-root替换为你的逻辑卷路径。
查看磁盘信息:
df -h
image-20251120231250570