Ubuntu 22.04 扩展磁盘空间
一、问题背景
今天在配置一台服务器时,发现服务器预装的 Ubuntu 22.04 操作系统只分配了约 100GB 的磁盘空间。
但实际上,这台服务器配备了一块接近 1TB 的硬盘,剩余的大部分空间并没有分配给系统使用。
通过检查发现,服务器采用的是 LVM(Logical Volume Manager,逻辑卷管理) 进行磁盘管理。卷组已经包含了整块硬盘的可用空间,只是当前根目录所在的逻辑卷仅分配了 100GB,剩余空间还处于空闲状态。
因此,我们只需要扩展逻辑卷,并同步扩展文件系统,就可以让 Ubuntu 使用剩余的磁盘空间。
二、查看 LVM 卷组信息
首先,通过 vgdisplay 命令查看当前系统的卷组信息:
sudo vgdisplay
主要关注以下几个字段:
VG Name ubuntu-vg
VG Size <927.95 GiB
PE Size 4.00 MiB
Total PE 237554
Alloc PE / Size 25600 / 100.00 GiB
Free PE / Size 211954 / <827.95 GiB
这些信息表示:
| 参数 | 含义 | 当前值 |
|---|---|---|
| VG Name | 卷组名称 | ubuntu-vg |
| VG Size | 卷组总容量 | 927.95 GiB |
| Alloc PE / Size | 已分配空间 | 100 GiB |
| Free PE / Size | 剩余可用空间 | 827.95 GiB |
可以看到,卷组总容量约为 927.95 GiB,其中只有 100 GiB 已经分配给逻辑卷,还有约 827.95 GiB 的空闲空间。
这说明磁盘本身的空间已经被 LVM 管理,我们不需要重新分区,只需要扩展现有逻辑卷即可。
三、扩展逻辑卷
首先,使用以下命令查看当前逻辑卷信息:
sudo lvdisplay
确认根目录对应的逻辑卷为:
/dev/ubuntu-vg/ubuntu-lv
接下来,执行扩展命令:
sudo lvextend -l +100%FREE /dev/ubuntu-vg/ubuntu-lv
参数说明:
lvextend:扩展逻辑卷。-l:按照逻辑区段(LE)数量指定扩展容量。+100%FREE:将卷组中所有剩余的空闲空间分配给当前逻辑卷。/dev/ubuntu-vg/ubuntu-lv:需要扩展的逻辑卷路径。
执行成功后,会看到类似以下提示:
Size of logical volume ubuntu-vg/ubuntu-lv changed from 100.00 GiB (25600 extents) to <927.95 GiB (237554 extents).
Logical volume ubuntu-vg/ubuntu-lv successfully resized.
至此,逻辑卷已经从 100GB 扩展到了约 927.95GB。
注意: 此时只是扩展了逻辑卷,文件系统还没有同步扩展,因此还不能直接认为根目录已经可以使用全部空间。
四、扩展文件系统
逻辑卷扩展完成后,还需要扩展其上的文件系统,让文件系统能够识别新增的空间。
如果当前文件系统是 ext4,可以使用 resize2fs 命令:
sudo resize2fs /dev/ubuntu-vg/ubuntu-lv
执行后,系统会自动识别逻辑卷扩展后的容量,并在线扩展文件系统。
本次执行结果如下:
resize2fs 1.46.5 (30-Dec-2021)
Filesystem at /dev/ubuntu-vg/ubuntu-lv is mounted on /; on-line resizing required
old_desc_blocks = 13, new_desc_blocks = 116
The filesystem on /dev/ubuntu-vg/ubuntu-lv is now 243255296 (4k) blocks long.
可以看到,文件系统已经成功扩展。
这里需要注意,resize2fs 适用于 ext2、ext3 和 ext4 文件系统。如果服务器使用的是 XFS 文件系统,则应该使用 xfs_growfs 进行扩展。
五、验证磁盘空间
最后,执行以下命令查看磁盘使用情况:
df -h
重点关注根目录 / 所在的文件系统:
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/ubuntu--vg-ubuntu--lv
915G XXG XXXG XX% /
可以看到,根目录的可用空间已经从原来的约 100GB 扩展到了约 915GB(实际显示容量会受到文件系统元数据等因素影响)。
至此,Ubuntu 22.04 的根目录磁盘空间扩展完成。
六、总结
这次问题的核心在于:服务器虽然拥有接近 1TB 的硬盘,但预装系统只给根目录所在的逻辑卷分配了 100GB,剩余空间仍然保留在 LVM 卷组中。
整个操作只需要三个步骤:
# 1. 查看卷组信息
sudo vgdisplay
# 2. 将卷组剩余空间全部分配给逻辑卷
sudo lvextend -l +100%FREE /dev/ubuntu-vg/ubuntu-lv
# 3. 扩展 ext4 文件系统
sudo resize2fs /dev/ubuntu-vg/ubuntu-lv
# 4. 查看扩展后的磁盘空间
df -h
对于采用 LVM 管理磁盘的 Ubuntu 服务器,这是一种比较简单、直接的扩容方式,通常不需要重启服务器,也不需要重新安装操作系统。
操作前建议: 确认卷组剩余空间、逻辑卷路径以及文件系统类型,并做好重要数据备份。尤其是使用 +100%FREE 时,要确认是否确实希望将卷组全部剩余空间分配给当前逻辑卷。