ubuntu空间满了,开不了机办理办法以及后续扩容简便方法

[复制链接]
发表于 2026-10-3 13:48:16 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

×

磁盘满了,连登录界面都出不来怎么办

虚拟机用久了,根分区写满之后症状很诡异:开机打到一半直接黑屏卡住,或者 /dev/sda3: clean, ... 后面跟一堆报错就停在那,进不了桌面。注意这不是「内存(RAM)满了」,是磁盘分区满了——中文里这两个词经常被混着用,但报错里 df -h 显示 100% 的那一行指的是磁盘。

一、先救活:进 recovery 模式清空间

1.1 进 GRUB 的 recovery 菜单

  1. 重启电脑,开机时按住 Shift 键(UEFI 机器可能要按 Esc 再选),进 GRUB 引导菜单。
  2. 用方向键选第二项(第二项通常是 Advanced options for Ubuntu,有的机器菜单就是 recovery 项在第二个),回车。
  3. 再选第二个(recovery mode)——第四个一般也行,选能正常进的那个。
  4. 进去后选 root(root shell),获得 root 权限。

1.2 看看到底哪里满了

df -h

会发现根分区(/)使用率是 100%。接着定位是谁在占:

du -sh /var /home /tmp /root 2>/dev/null
du -sh /var/log/* 2>/dev/null | sort -h | tail -20

常见元凶就那么几类:

  • /var/log 下的日志日志——尤其是没做轮转的应用日志日志,一天能涨几个 G。
  • /var/cache/apt/archives 里攒的 .deb 安装包。
  • 回收站:~/.local/share/Trash 里的删除文件还占着空间。
  • Docker 的 overlay2 存储层——镜像、容器、构建缓存加起来最容易被忽略。
  • 虚拟化平台的快照链,越攒越长越占空间。

1.3 清出空间再重启

sudo apt-get autoremove          # 卸载所有自动安装且已不再使用的包
sudo apt-get clean               # 清 /var/cache/apt/archives 里的 deb 包
gio trash --empty                # 清空回收站
journalctl --vacuum-size=200M    # 限制 systemd 日志日志体积

df -h                            # 确认不是 100% 了
reboot

清完能正常开机了,但这只是止血——分区小的问题还在,下面说怎么扩。

二、扩容:图形界面几步搞定

网上多数教程让你关机进 root 用命令行 parted/growpart 扩,步骤多还容易把分区表搞坏。开机进桌面直接用「磁盘」图形工具更稳妥——Ubuntu 自带,可视化拖动就行。

2.1 先在虚拟化平台把磁盘调大

  1. 关机虚拟机(图形工具需要磁盘处于未挂载/离线状态才能改分区)。
  2. 在 VMware / VirtualBox 的虚拟机设置里,把虚拟磁盘容量调大,建议至少 40 GB 以上,留足余量。
  3. 保存设置,开机进 Ubuntu 桌面。

2.2 用磁盘工具调整分区

  1. 点左下角九宫格( Activities / 应用启动器),搜「磁盘」(Disks)打开。
  2. 在左侧选中你的磁盘(比如 /dev/sda),右侧能看到分区列表。
  3. 选中要扩的那个分区(比如 sda3,根分区一般就是它;如果有相邻的未分配空间,先把虚拟磁盘扩容后出来的空闲区块并过来)。
  4. 点分区右侧的齿轮图标 → 选「调整大小…」。
  5. 拖动滑块把容量拉大(或直接在数值框填 MB),点确定。

注意:能拖动的前提是分区后面有未分配空间。老的 /dev/sda3 如果后面还有相邻空间(虚拟磁盘扩容出来的就是),直接拉;如果分区紧挨着末尾,需要先在虚拟化平台扩盘,扩完在磁盘工具里会看到一块灰色未分配区域。

2.3 让文件系统认识新空间

GNOME 的 Disks 在调整 ext4 分区时会自动跑 resize2fs,改完 df -h 就看到容量变了。如果是手工分区,才需要手动:

sudo resize2fs /dev/sda3     # ext4 在线扩容(先 e2fsck -f 检查更稳)
sudo growpart /dev/sda 3     # 用 cloud-guest-utils 扩分区表
sudo xfs_growfs /            # XFS 文件系统用这条

三、扩容后的防线

  • 给日志设上限:journalctl --disk-usage 看占用,配 /etc/systemd/journald.conf 的 SystemMaxUse=500M,别让它无限涨。
  • Docker 也要管:docker system df 看占用,docker system prune 清悬空镜像和构建缓存。
  • 别让分区再写满:留 10%~15% 余量(ext4 默认给 root 保留 5% 块),tune2fs -m 1 /dev/sda3 可以把保留比例调低换出空间。
  • 快照也会吃空间:虚拟化平台的快照链越长,实际占用越大,定期合并/删除旧快照。
  • 监控监控:把 df -h 挂进 cron 或 zabbix,用到 80% 就告警,比等它 100% 进不去系统再救舒服得多。

四、排错速查

  • recovery 进不去 / 黑屏:GRUB 里选 recovery 时同样可以加 nomodeset(编辑内核行),老显卡容易卡在图形初始化。
  • 清完还是 100%:一定有隐形大户,du -x -h --max-depth=1 / 从根往下挖,找到最大那一层再进。
  • 磁盘工具里分区是灰色不可调:先关机在平台扩盘;或者选中的分区有独占标记(swap 之类)要先关掉 swap:swapoff -a。
  • 误操作丢了数据:立即停止写入,用 testdisk / photorec 从 live USB 起盘恢复。

小结

流程就两条线:救急——Shift 进 GRUB → 选 Advanced/recovery → 进 root shell → df -h 定位 → autoremove + 清日志清回收站 → reboot;治本——关机把虚拟磁盘调大到 40G+ → 开机用「磁盘」工具选中分区点齿轮「调整大小」→ 拖动 → df -h 确认。别在分区写满的状态下反复折腾,先清出几个 G 让系统能启动,再去图形界面做扩容,这是最不容易翻车的顺序。

qidao123.com企服评测-应用市场 编辑提示

回复

使用道具 举报

登录后关闭弹窗

登录参与点评抽奖  加入IT实名职场社区
去登录
快速回复 返回顶部 返回列表