马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?立即注册
×
磁盘满了,连登录界面都出不来怎么办
虚拟机用久了,根分区写满之后症状很诡异:开机打到一半直接黑屏卡住,或者 /dev/sda3: clean, ... 后面跟一堆报错就停在那,进不了桌面。注意这不是「内存(RAM)满了」,是磁盘分区满了——中文里这两个词经常被混着用,但报错里 df -h 显示 100% 的那一行指的是磁盘。
一、先救活:进 recovery 模式清空间
1.1 进 GRUB 的 recovery 菜单
- 重启电脑,开机时按住 Shift 键(UEFI 机器可能要按 Esc 再选),进 GRUB 引导菜单。
- 用方向键选第二项(第二项通常是
Advanced options for Ubuntu,有的机器菜单就是 recovery 项在第二个),回车。
- 再选第二个(
recovery mode)——第四个一般也行,选能正常进的那个。
- 进去后选 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 先在虚拟化平台把磁盘调大
- 关机虚拟机(图形工具需要磁盘处于未挂载/离线状态才能改分区)。
- 在 VMware / VirtualBox 的虚拟机设置里,把虚拟磁盘容量调大,建议至少 40 GB 以上,留足余量。
- 保存设置,开机进 Ubuntu 桌面。
2.2 用磁盘工具调整分区
- 点左下角九宫格( Activities / 应用启动器),搜「磁盘」(Disks)打开。
- 在左侧选中你的磁盘(比如
/dev/sda),右侧能看到分区列表。
- 选中要扩的那个分区(比如 sda3,根分区一般就是它;如果有相邻的未分配空间,先把虚拟磁盘扩容后出来的空闲区块并过来)。
- 点分区右侧的齿轮图标 → 选「调整大小…」。
- 拖动滑块把容量拉大(或直接在数值框填 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企服评测-应用市场 编辑提示 |