Ubuntu如何进行磁盘整理
小樊
47
2025-12-12 07:17:46
Ubuntu磁盘整理与空间优化指南
一、先判断是否需要碎片整理
- 大多数桌面与服务器使用的是ext4/Btrfs/XFS等现代文件系统,具备日志与分配策略,通常不需要也不建议频繁做碎片整理;出现性能问题时,优先排查高I/O进程、磁盘空间不足、硬件故障等因素。若确需整理,ext4可用e4defrag;而Btrfs/XFS一般不需要手动碎片整理。进行任何磁盘操作前,务必先备份重要数据。
二、需要整理时的操作(仅针对 ext4)
- 安装工具:sudo apt-get install e4defrag
- 整理单个文件:sudo e4defrag /path/to/file
- 整理整个文件系统:sudo e4defrag /
- 建议:在系统负载较低时执行,整理过程会占用较多CPU/磁盘I/O。
三、更常见的需求是释放磁盘空间
- 查看空间使用
- 整体:df -h
- 目录占用:du -sh /home/user
- 块设备与挂载点:lsblk
- APT与软件包
- 清理缓存:sudo apt clean;sudo apt autoclean
- 移除无用依赖:sudo apt autoremove
- 卸载应用:sudo apt remove ;彻底删除配置:sudo apt purge
- 旧内核
- 列出:dpkg --list | grep linux-image
- 删除指定旧内核:sudo apt-get purge
- 一键清理不再需要的旧内核:sudo apt-get autoremove --purge
- 日志与临时文件
- 查看日志占用:journalctl –disk-usage
- 按时间清理:sudo journalctl –vacuum-time=3d
- 按大小清理:sudo journalctl –vacuum-size=100M
- 清理临时文件:sudo rm -rf /tmp/*
- 清空回收站:rm -rf ~/.local/share/Trash/*
- Snap 旧版本
- 查看大小:du -h /var/lib/snapd/snaps
- 删除旧修订(关闭所有 Snap 后执行):
- 脚本方式:
- snap list --all | awk ‘/disabled/{print $1, $3}’ | while read snapname revision; do
snap remove “$snapname” --revision=“$revision”
done
- 图形化工具
- Disk Usage Analyzer(分析大文件/目录)
- GParted(分区调整、扩容)
- 系统清理工具:Stacer、Ubuntu Cleaner(第三方清理)
四、虚拟机环境的额外步骤(回收虚拟磁盘空白)
- 在虚拟机内先清理并“填零”空闲空间:
- df -h(确认空间)
- 创建填充文件:sudo dd if=/dev/zero of=/wipefile bs=1M
- 同步:sudo sync
- 删除填充文件:sudo rm -rf /wipefile
- 使用虚拟化工具收缩磁盘
- VMware:确保无快照后执行
- 查看磁盘:sudo /usr/bin/vmware-toolbox-cmd disk list
- 收缩:sudo /usr/bin/vmware-toolbox-cmd disk shrink /
- 或在 VMware 设置中对虚拟磁盘执行碎片整理/压缩
- 注意:执行收缩前请备份虚拟机,并确保快照已删除。