Ubuntu虚拟机磁盘空间不足解决方案

1. 检查并临时释放空间

1.1 查看磁盘情况

复制代码
# 查看整体磁盘占用
df -h
# 查看当前目录下各文件夹占用(逐级定位大文件)
du -sh * | sort -hr

关键指标:/dev/sda1(或类似)的 Use% 接近 / 达到 100% 就是根分区满了。

结果显示

复制代码
df -h
# 查看当前目录下各文件夹占用(逐级定位大文件)
du -sh * | sort -hr
文件系统        大小  已用  可用 已用% 挂载点
tmpfs           387M  2.1M  385M    1% /run
/dev/sda3        20G   14G  4.7G   75% /
tmpfs           1.9G     0  1.9G    0% /dev/shm
tmpfs           5.0M  4.0K  5.0M    1% /run/lock
/dev/sda2       512M  6.1M  506M    2% /boot/efi
tmpfs           387M  104K  387M    1% /run/user/1000
/dev/sr0        157M  157M     0  100% /media/。。。/CDROM
/dev/sr1        4.5G  4.5G     0  100% /media/。。。/Ubuntu 22.04.5 LTS amd64
206M	snap
1.4M	kconfiglib-14.1.0
880K	pyelftools_temp
188K	pyelftools.whl
160K	kconfiglib.tar.gz
104K	cxxfilt-0.3.0
8.0K	cxxfilt.tar.gz
4.0K	vela-opensource
4.0K	openvela
4.0K	manual_packages.txt
4.0K	bin
4.0K	桌面
4.0K	音乐
4.0K	下载
4.0K	文档
4.0K	图片
4.0K	视频
4.0K	模板
4.0K	公共的
0	pyelftools.tar.gz

1.2 清理系统垃圾

复制代码
# 清理apt缓存(最大的临时垃圾来源)
sudo apt autoremove -y
sudo apt clean -y
sudo apt autoclean -y

# 清理日志文件(/var/log 常占大量空间)
sudo journalctl --vacuum-time=3d  # 只保留3天日志
sudo rm -rf /var/log/*.gz /var/log/*.old

# 清理用户缓存
rm -rf ~/.cache/*
rm -rf ~/.local/share/Trash/*

1.3 删除大文件

复制代码
# 查找系统中大于100MB的文件
sudo find / -type f -size +100M 2>/dev/null | xargs du -h | sort -hr

注: 不要删除 /bin /lib /usr/bin 等系统目录下的文件

2 虚拟机磁盘扩展

虚拟机已关机,且未使用快照(快照会锁定磁盘,需先删除)

2.1 使用分区工具实现(推荐)

编辑虚拟机设置 → 硬盘 → 扩展 → 输入新的磁盘大小 → 确定

启动 Ubuntu,终端中输入以下命令(复制粘贴执行)

复制代码
# 安装gparted(图形化分区工具,更稳妥)
sudo apt install -y gparted
# 启动gparted(需sudo权限)
sudo gparted

显示结果

直接双击选择进行拉动增大空间。

验证扩展

复制代码
df -h  # 确认根分区容量已增大

3 优化

分离数据与系统分区 :新虚拟机建议单独分 /home 分区,后续仅扩展 /home

限制日志大小 :配置 journalctl 最大占用

复制代码
sudo mkdir -p /etc/systemd/journald.conf.d/
echo -e "[Journal]\nSystemMaxUse=1G" | sudo tee /etc/systemd/journald.conf.d/limit.conf
sudo systemctl restart systemd-journald

定期清理:添加定时任务,每周清理一次 apt 缓存和日

复制代码
# 编辑crontab
sudo crontab -e
# 添加以下内容(每周日凌晨2点执行)
0 2 * * 0 apt autoremove -y && apt clean -y && journalctl --vacuum-time=3d >/dev/null 2>&1
相关推荐
不做无法实现的梦~几秒前
PX4 机载电脑 Linux 环境安装、串口、网络、ROS 完整配置
linux·运维·网络
嵌入式×边缘AI:打怪升级日志几秒前
嵌入式Linux开发(了解交叉编译工具链的组成)
java·linux·运维
李小白202002027 分钟前
RK3568 linux6.1 死机
linux·运维·服务器
FreeGo~9 分钟前
Linux 系统编程 进程篇 (五)
java·linux·服务器
杨云龙UP21 分钟前
Oracle数据库启动失败:ORA-29701、ORA-01565、ORA-17503故障处理记录_20260429
linux·运维·数据库·oracle·centos
handler011 小时前
Git 核心指令速查
linux·c语言·c++·笔记·git·学习
Gary Studio1 小时前
ubuntu 16.04一键换源
linux·运维·ubuntu
又来敲代码了1 小时前
k8s的部署
linux·运维·云原生·容器·kubernetes
IT WorryFree1 小时前
FGT-KVM 完整部署极简教程(CentOS 7 + KVM 环境)
linux·运维·centos
一袋米扛几楼982 小时前
【报错问题】彻底解决 TypeScript 报错 TS2769: No overload matches this call (JWT 篇)
linux·javascript·typescript