VMware Ubuntu 22.04 LVM 磁盘扩容记录
BG
使用的服务器版Ubutun,初始分配的22G,不够使用,在虚拟机管理扩增到30G,但操作系统内的文件系统不会自动扩增。
- VMware 虚拟机硬盘上限 30GB ,但 Ubuntu 系统根分区
/仅识别 22GB - 磁盘剩余约 8GB 空间未加入 LVM 逻辑卷,系统无法使用
- 前置检查:
sudo vgdisplay显示Free PE / Size = 0,LVM 卷组无空闲空间
LVM 磁盘扩容
原理
Ubuntu Server 默认使用 LVM 逻辑卷,磁盘空闲空间未加入物理卷,需依次:扩展物理分区 → 扩容物理卷 → 扩容逻辑卷 → 刷新文件系统,不需要重启。
分步操作+命令+解释
bash
sudo growpart /dev/sda 3
sudo pvresize /dev/sda3
sudo lvextend -l +100%FREE /dev/mapper/ubuntu--vg-ubuntu--lv
sudo resize2fs /dev/mapper/ubuntu--vg-ubuntu--lv
df -h
步骤1:查看磁盘分区结构(确认分区编号)
bash
lsblk
作用:查看磁盘 /dev/sda 总大小30GB,确认LVM物理卷为 /dev/sda3
bash
sda 8:0 0 30G 0 disk
├─sda1 8:1 0 1M 0 part
├─sda2 8:2 0 2G 0 part /boot
└─sda3 8:3 0 28G 0 part
└─ubuntu--vg-ubuntu--lv 253:0 0 22G 0 lvm /
sr0 11:0 1 2G 0 rom
步骤2:扩展物理分区,占用磁盘全部剩余空间
bash
sudo growpart /dev/sda 3
作用:将物理分区 /dev/sda3 扩容至磁盘最大30GB,吃掉闲置的8GB空间
步骤3:扩容LVM物理卷,让卷组识别新空间
bash
sudo pvresize /dev/sda3
作用:更新物理卷大小,此时 sudo vgdisplay 会显示空闲空间不为0
步骤4:扩容根目录逻辑卷,分配全部空闲空间
bash
sudo lvextend -l +100%FREE /dev/mapper/ubuntu--vg-ubuntu--lv
作用:将卷组所有空闲空间分配给系统主分区 /
步骤5:刷新文件系统,扩容立即生效
bash
sudo resize2fs /dev/mapper/ubuntu--vg-ubuntu--lv
作用:无需重启,系统直接识别扩容后的磁盘容量
Filesystem at /dev/mapper/ubuntu--vg-ubuntu--lv is mounted on /; on-line resizing required
old_desc_blocks = 3, new_desc_blocks = 4
The filesystem on /dev/mapper/ubuntu--vg-ubuntu--lv is now 7339008 (4k) blocks long.
步骤6:验证扩容结果
bash
df -h
作用:查看 /dev/mapper/ubuntu--vg-ubuntu--lv 容量是否变为30GB
bash
Filesystem Size Used Avail Use% Mounted on
tmpfs 388M 1.8M 386M 1% /run
/dev/mapper/ubuntu--vg-ubuntu--lv 28G 20G 6.4G 76% /
tmpfs 1.9G 0 1.9G 0% /dev/shm
tmpfs 5.0M 0 5.0M 0% /run/lock
/dev/sda2 2.0G 259M 1.6G 15% /boot
tmpfs 388M 4.0K 388M 1% /run/user/1000
/dev/mapper/ubuntu--vg-ubuntu--lv 22 to 28, 成功
磁盘缓存清理
我用的uv
清理 uv 包管理器缓存、系统无用依赖、系统日志、临时文件
命令
bash
# 1. 清理uv缓存(Python包缓存,本次报错根源)
uv cache clean
# 2. 清理Ubuntu系统APT缓存与无用依赖
sudo apt clean
sudo apt autoremove -y
# 3. 清理系统大体积日志
sudo journalctl --vacuum-size=100M
# 4. 清理系统临时文件
sudo rm -rf /tmp/*