纸翼 · 加载中
987 words
5 minutes
ubuntu虚拟机容量不足问题

📝 虚拟机空间不足问题解决笔记#


一、问题描述#

现象#

  • 执行 apt 安装/更新、编译代码、保存文件时提示 空间不足
  • df -h 查看根分区(如 /dev/sda2)使用率接近 100%(例:20G 根分区已用 18G,可用仅 702M,使用率 97%)。
  • 部分命令因空间不足无法正常执行(如 apt 缓存写入失败)。

环境信息#

  • 虚拟化平台:VMware Workstation
  • 虚拟机硬盘:最大容量 40G,但系统内仅识别并使用 20G
  • 操作系统:Ubuntu(根分区为 ext4 格式,非 LVM)

二、问题分析#

1. 表面原因:根分区空间耗尽#

  • 系统日志、缓存、旧内核、编译产物等持续占用根分区空间,导致可用空间不足。
  • 直接表现为 df -h 显示根分区使用率过高。

2. 根本原因:虚拟机磁盘与系统分区不匹配#

  • 虚拟机层面:硬盘已配置为 40G(最大容量),但系统初始仅分配 20G 给根分区。
  • 系统层面:剩余 20G 空间处于“未分配”状态,未被 Linux 系统识别和使用。
  • 仅清理缓存无法彻底解决问题,需将未分配空间合并到根分区。

3. 关键矛盾#

  • 虚拟机磁盘容量 ≠ 系统内分区容量 → 需完成“虚拟机扩容 → 分区扩展 → 文件系统扩容”的完整流程。

三、解决流程#

阶段1:紧急释放空间(临时缓解)#

1. 清理系统日志#

Terminal window
sudo journalctl --vacuum-time=7d # 保留最近7天日志

2. 清理冗余依赖与缓存#

Terminal window
sudo apt autoremove --purge -y # 删除旧内核与无用依赖
sudo apt clean -y # 清理apt缓存

3. 定位并删除大文件#

Terminal window
sudo find / -type f -size +1G 2>/dev/null -exec ls -lh {} \; # 查找>1G文件
# 重点关注 /var/log/、/var/cache/、用户目录下的无用大文件

阶段2:永久扩容根分区(根本解决)#

1. 虚拟机层面扩展磁盘(VMware 操作)#

  1. 关闭虚拟机。
  2. 编辑虚拟机设置 → 硬盘 → 点击「扩展」→ 设置最大容量(如 40G)→ 确定。
  3. 重启虚拟机。

2. 系统内识别并扩展分区#

Terminal window
# 安装扩容工具
sudo apt update && sudo apt install -y cloud-guest-utils gparted
# 刷新磁盘分区表
sudo partprobe /dev/sda
# 扩展根分区(/dev/sda2)到最大可用空间
sudo growpart /dev/sda 2

3. 在线扩展文件系统(ext4)#

Terminal window
sudo resize2fs /dev/sda2 # 无需卸载,在线扩容

4. 验证结果#

Terminal window
df -h /

✅ 预期输出:根分区容量变为 40G,可用空间大幅增加(例:40G 总容量,可用 21G,使用率 45%)。


四、关键命令总结#

步骤命令作用
查看空间df -h /查看根分区使用情况
清理日志sudo journalctl --vacuum-time=7d清理旧系统日志
清理依赖sudo apt autoremove --purge -y删除无用依赖与旧内核
刷新分区sudo partprobe /dev/sda让系统识别新磁盘空间
扩展分区sudo growpart /dev/sda 2扩展第2个分区到最大
扩容文件系统sudo resize2fs /dev/sda2在线扩容 ext4 根分区

五、注意事项#

  1. 数据备份:扩容前建议备份重要数据,避免操作失误。
  2. 分区类型:若为 LVM 分区,需额外执行 pvresizelvextend 等命令;本案例为非 LVM 分区,直接使用 growpart + resize2fs
  3. 文件系统差异:ext4 用 resize2fs,XFS 用 xfs_growfs,不可混用。
  4. 权限要求:所有磁盘操作需加 sudo,避免权限不足。
  5. 在线扩容resize2fs 支持在线扩容(根分区挂载状态下操作),无需进入单用户模式。

六、预防建议#

  • 定期清理:每月执行一次 apt autoremove + 日志清理,避免空间累积。
  • 合理分区:新建虚拟机时,根分区建议分配 ≥40G(开发环境)。
  • 监控空间:使用 df -h 或监控工具,根分区使用率控制在 80% 以下。
  • 预留余量:虚拟机磁盘容量预留 20% 余量,方便后续扩容。
ubuntu虚拟机容量不足问题
https://blog.huangzy.xyz/posts/乌班图虚拟机容量不足问题/
Author
纸翼
Published at
2026-02-09
License
CC BY-NC-SA 4.0

Some information may be outdated