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
相关推荐
zh路西法8 分钟前
【RDKX5交叉编译】基于 QEMU 的 RDK X5 ARM64 rootfs 镜像定制与 chroot 开发环境搭建
linux
FlyWIHTSKY23 分钟前
JavaScript 和 TypeScript 分别是什么,可以相互写吗
javascript·ubuntu·typescript
iRayCheung31 分钟前
virtualbox安装的ubuntu系统跑numpy报错
linux·ubuntu·numpy
Dlrb121135 分钟前
Linux系统编程-信号量(线程同步机制)
linux·条件变量·互斥锁·信号量·线程同步
无限进步_40 分钟前
Linux进程等待——wait、waitpid与僵尸进程
linux·运维·服务器·开发语言
2401_834636991 小时前
Linux集群技术-高可用与负载均衡实战解析
linux·运维·负载均衡
吠品1 小时前
处理 Python 类继承中那些变来变去的初始化参数
linux·前端·python
帅大大的架构之路1 小时前
linux上面的一些小知识点
linux·运维·服务器
光电笑映1 小时前
进程间通信:深入 System V IPC:共享内存、消息队列与信号量
linux·运维·服务器·c++
RisunJan1 小时前
Linux命令-patch (为开放源代码软件安装补丁程序)
linux·服务器·算法