当前位置: 首页 > news >正文

VMware Ubuntu 虚拟机磁盘已扩容,为什么还是无法启动?(磁盘100%占满解决方案)

VMware Ubuntu 虚拟机磁盘已扩容,为什么还是无法启动?(磁盘100%占满解决方案)

前言

最近遇到了一个比较坑的问题。

VMware 中的 Ubuntu 24.04 虚拟机由于长期开发,磁盘被写满了。

于是我第一反应就是:

VMware → 设置 → 硬盘 → 扩展(Expand)磁盘容量

例如:

40GB → 50GB

本以为重启就好了,结果却发现:

[FAILED] Failed to start gdm.service - GNOME Display Manager.

图形界面始终无法启动。

经过排查发现:

VMware 扩容成功 ≠ Ubuntu 分区自动扩容。

本文记录完整解决过程。


一、故障现象

启动 Ubuntu 后停留在:

[FAILED] Failed to start gdm.service - GNOME Display Manager.

无法进入桌面。

但是:

Ctrl + Alt + F3

可以进入 tty 登录界面。

说明:

  • Linux 内核正常
  • 根分区正常挂载
  • systemd 正常启动
  • 只是图形界面启动失败

二、原因分析

进入终端以后查看磁盘:

df-h

输出:

Filesystem Size Used Avail Use% /dev/sda2 40G 39G 0 100%

可以看到:

根分区已经100%满了

即使 VMware 已经扩容,

Ubuntu 仍然认为:

/ 40GB

因为:

VMware 只是扩大了虚拟硬盘(VMDK),并没有自动扩大 Linux 分区。


三、确认 VMware 是否扩容成功

查看磁盘:

lsblk

例如:

NAME SIZE sda 50G ├─sda1 1M └─sda2 40G

这里可以看到:

整个硬盘:

50G

但是:

sda2 只有40G

说明:

新增的:

10G

仍然没有分配给系统。


四、为什么图形界面启动失败?

Ubuntu Desktop 的图形界面(GDM)启动时需要:

  • 创建临时文件
  • 创建 Socket
  • 写日志
  • 创建缓存

而:

/ 100%

以后:

任何写入都会失败。

所以最终出现:

Failed to start gdm.service

实际上:

不是 GDM 坏了,而是磁盘没有可用空间。


五、第一步:进入终端

启动以后按:

Ctrl + Alt + F3

登录自己的账号。


六、查看磁盘使用情况

查看整体:

df-h

查看一级目录大小:

sudodu-xh/ --max-depth=12>/dev/null|sort-hr

例如:

39G / 23G /home 5.1G /var 5.1G /usr

说明:

真正占空间的是:

/home

而不是:

/var/log

或者:

Docker

七、扩容 Linux 分区

Ubuntu 不会自动使用 VMware 新增加的空间。

需要手动扩容。

安装工具:

sudoaptinstallcloud-guest-utils

扩展第二个分区:

sudogrowpart /dev/sda2

扩展 ext4 文件系统:

sudoresize2fs /dev/sda2

再次查看:

df-h

结果:

Filesystem Size /dev/sda2 50G

说明扩容完成。


八、如果磁盘100%,无法安装 growpart 怎么办?

因为:

100%

以后:

甚至:

apt install

都有可能失败。

此时建议:

先释放一点空间。

例如:

清理 apt 缓存:

sudoaptclean

清理 journal:

sudojournalctl --vacuum-size=100M

或者查看:

sudodu-xh/home --max-depth=2|sort-hr

删除一些不需要的大文件。

只要腾出几百 MB 即可继续操作。


九、为什么 Ubuntu 不自动扩容?

很多人都有这个疑问。

例如:

原来:

40G ┌──────────────┐ │ sda2 40G │ └──────────────┘

VMware 扩容以后:

50G ┌──────────────┬──────────┐ │ sda2 40G │ 10G 空闲 │ └──────────────┴──────────┘

Ubuntu 无法判断:

新增的:

10G

究竟应该:

  • 扩给根目录
  • 新建数据盘
  • 建立新的分区
  • 留给 LVM

所以:

Linux 默认不会自动修改分区。


十、总结

整个问题其实可以归纳成一句话:

VMware 扩容的是虚拟硬盘,而不是 Ubuntu 分区。

因此:

VMware Expand ↓ 虚拟磁盘变大 ↓ Ubuntu 分区大小不变 ↓ 根分区仍然100% ↓ GDM启动失败

正确流程应该是:

VMware 扩容 ↓ Ubuntu 查看磁盘(lsblk) ↓ growpart 扩展分区 ↓ resize2fs 扩展 ext4 ↓ df -h 验证 ↓ 重启

常用命令汇总

# 查看磁盘使用率df-h# 查看磁盘分区lsblk# 查看磁盘详细信息sudofdisk-l# 查看一级目录占用sudodu-xh/ --max-depth=12>/dev/null|sort-hr# 清理 apt 缓存sudoaptclean# 清理 journal 日志sudojournalctl --vacuum-size=100M# 安装扩容工具sudoaptinstallcloud-guest-utils# 扩展分区sudogrowpart /dev/sda2# 扩展 ext4 文件系统sudoresize2fs /dev/sda2

踩坑总结

  1. 不要认为 VMware 扩容后 Ubuntu 会自动识别新增空间。
  2. df -hlsblk是排查磁盘问题最重要的两个命令。
  3. 出现Failed to start gdm.service时,不一定是图形系统损坏,很多情况下只是根分区已满。
  4. 开发环境建议一开始就分配 80~100GB 以上磁盘空间,避免频繁扩容。

这套方法适用于VMware + Ubuntu Desktop(普通 ext4 根分区,非 LVM)的磁盘占满导致无法启动场景,对 VirtualBox 等虚拟机平台也具有参考价值。

http://www.jsqmd.com/news/1142257/

相关文章:

  • 终极PS3游戏管理器IRISMAN:破解版玩家的完整解决方案
  • 终极离线Minecraft启动器:在无网络环境下自由畅玩
  • PIC18F86K22与MC74HC165A实现高效IO扩展方案
  • 为什么手机充电线用久了,靠近插头的地方 总是容易破皮?
  • 控制系统串联校正 3 种方法对比:超前/滞后/滞后-超前适用场景与选择决策树
  • qt调用matlab程序(mcr)
  • 如何在3分钟内实现专业级音频转文字?Buzz离线转录工具完全指南
  • ChatGPT会员和API为什么分开计费?开发者最容易混淆的5个问题
  • ncmdump:解锁网易云音乐加密格式的智能解决方案
  • PIC微控制器驱动压电蜂鸣器的警报系统设计
  • 开放平台权限认证通用方法:基于签名算法的 API 认证体系
  • 专业干货:低查重AI写教材的实用方法与优质工具推荐!
  • PotPlayer百度翻译插件:5分钟实现免费实时字幕翻译的终极方案
  • G-Helper完整指南:华硕笔记本性能控制的终极轻量化解决方案
  • LTC6904与PIC32MX675F256L构建高精度方波发生器方案
  • 如何快速获取九大网盘直链?LinkSwift免费下载助手终极指南
  • SIFT、HOG、Harris 3种特征提取器对比:工业视觉场景下的匹配精度与速度实测
  • MAX9744与PIC18F86J11在音频功放设计中的高效组合
  • VLC媒体播放器终极视频转码指南:免费高效的格式转换解决方案
  • 使用 Python 在 Word 文档中高效插入与排版图片
  • CV 任务网络选型指南:从 ResNet-50 到 Mask R-CNN 的 5 种经典架构性能对比
  • Pixelle-Video完整教程:如何在5分钟内制作专业AI短视频
  • 3步解密网易云音乐NCM文件:打破格式限制的终极方案
  • TM4C1299NCZAD微控制器与SLO2016协议栈的工业物联网应用
  • AI写教材大揭秘:4款低查重AI工具推荐,轻松搞定教材编写难题!
  • OpenCut 丨轻松搞定各类图片翻译!
  • Hugging Face从零开始的、保姆级的详细教程
  • 如何快速配置 qBittorrent 搜索插件:新手完整指南
  • 3PEAK思瑞浦 TP2021-TR SOT23-6 比较器
  • 掌握数智化系统矩阵,解锁大模型赋能:小白程序员必备,收藏提升效率