马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?立即注册
×
根目录空间见底是 Ubuntu 上最常见也最紧急的一类问题:轻则装不上包,重则开机卡在清理阶段进不去系统。这篇先给三条立刻能腾出空间的命令,再讲怎么从虚拟机层面把磁盘扩出来,最后说清以后怎么防再次发生。
一、先定位是谁把空间吃掉的
动手之前先看清楚,别一股脑全删。先看整体占用:
df -h
再看具体每个目录占了多少,从根往下找:docker、conda、日志 、缓存是最常见的四个大户,其中被容器日志 撑爆的情况尤其多。定位这一步能帮你分辨「清掉临时文件」和「真正扩盘」哪个才是根治办法。
二、先做两条能马上腾空间的
三条命令覆盖最大头的三类占用,任一条都能立刻回收几百兆:
sudo apt clean
删掉所有已下载的软件包缓存,是回收最快的一项。
sudo apt autoremove --purge
卸载旧内核和无用依赖包。配合 apt 的旧内核保留策略,一次能清掉好几版内核,空间收益很大。
sudo journalctl --vacuum-time=7d
sudo rm -rf /var/log/*.gz /var/log/*.old
把系统日志 压到只留七天,再顺手清掉已经压缩过和过期的旧日志。日志是无形的大户,跑几个月的机器这里动辄几个 G。
二、从虚拟机层面把盘扩大
以上只是应急,根分区还是小的。第一步在宿主机操作:关掉虚拟机,把磁盘容量调大,比如从 20G 扩到 100G。注意这一步只改变物理文件多大,虚拟机内部的分区和文件系统完全不知道这件事。
三、在虚拟机内把分区扩开
装个分区工具做图形化操作,最直观:
sudo apt install gparted
sudo gparted
进去之后选中磁盘,在分区列表里找到根分区,比如 /dev/sda3。右键根分区选 Resize/Move,把滑块往右拖,或者直接在具体大小里填新的数值,把刚才多出来的空间全部并进去,点界面上的对勾确认完成。操作前确认这个分区上没有正在挂载的写入任务。
四、命令行里怎么扩
没有图形界面或者远程卡桌面时,可以用 growpart 扩分区,再用文件系统自带的扩展命令。思路和图形化一致:先让分区表认识新空间,再让文件系统把这块空间用起来。两个动作缺一不可,少了后一步你会看到容量没变。
五、以后怎么防
- 给根分区留足余量,长期跑到 90% 以上就是危险信号。
- 旧内核是隐形大户,apt 默认会留几版,定期清一次。
- 日志轮转策略配好,保留天数压到一周到两周。
- 加一条磁盘占用的定时检查,出问题在还能动的时候处理,别等开不了机。
六、小结
处理顺序是:先 apt clean、删旧内核、清日志应急,再从宿主机扩盘、进系统用 gparted 把分区扩开。核心难点只有一处——宿主机扩容和虚拟机内扩分区是两件独立的事,中间还隔着文件系统这一步,少做任何一步容量都不会变。把这三步固定住,根目录空间问题就能彻底收尾而不是反复救火。
qidao123.com企服评测-应用市场 编辑提示
|