应用场景
硬件/整机信息:全平台
OS版本信息:桌面专业版v25
问题现象
磁盘空间不足,文件管理器中显示红色,且用户不知道大文件所在位置及如何清理。
解决方案
排查方法
建议通过安全管家、BaoBab等软件处理,如需手动处理,可参考本方案,对文件删除等操作前务必确认数据是否可删除,避免影响正常使用。
步骤一
系统盘磁盘空间不足排查基本以检查 /usr 为主,高概率为 /usr/share 下面爆满为主,出现概率极少。V25版本中 /usr 为 overlay 挂载,实际存储在 /persistent 下。由于我们系统磁盘分区的特殊性,数据盘分区会单独在 /persistent 下,所以建议是先 cd /persistent 之后再使用下面命令排查每个目录所占磁盘大小。
sudo du -sh * .[^.]*注意:可以同时查询隐藏文件大小,根据真实案例,部分应用软件导致的磁盘爆满会有以隐藏文件形式出现,并且不方便直接删除文件,只能清空内容为主
步骤二
查看系统当前磁盘使用情况,使用 df -h 命令确认哪个分区空间不足。
sudo df -h输出示例:
文件系统 大小 已用 可用 已用% 挂载点
udev 3.7G 0 3.7G 0% /dev
tmpfs 767M 2.7M 765M 1% /run
/dev/nvme0n1p4 30G 6.9G 22G 25% /
/dev/nvme0n1p5 190G 39G 142G 22% /persistent
usr-overlay 190G 39G 142G 22% /usr
opt-overlay 190G 39G 142G 22% /opt
etc-overlay 190G 39G 142G 22% /etc
/dev/nvme0n1p2 3.9G 426M 3.3G 12% /boot然后一层一层排查到具体目录或者异常日志。
输出示例:
user@uos-PC:/persistent$ sudo du -sh * .[^.]*
28G ostree
5.7G home
575M overlay
16K lost+found
4.0K root
user@uos-PC:/persistent$ cd ostree
user@uos-PC:/persistent/ostree$ sudo du -sh * .[^.]* | sort -hr | head -20
24G deploy
3.5G repo
16K lost+found步骤三
检查系统日志目录大小,systemd 日志通常占用较大空间。
user@uos-PC:/persistent$ cd /var/log
user@uos-PC:/var/log$ sudo du -sh * .[^.]* | sort -hr输出示例:
183M journal
24M syslog
6.4M user.log
4.0M uos
1.1M kern.log
544K deepin-installer
412K dpkg.log
384K apt步骤四
进入 journal 目录详细查看日志文件大小。
user@uos-PC:/var/log$ cd journal
user@uos-PC:/var/log/journal$ sudo du -sh * .[^.]* | sort -hr输出示例:
120M xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
63M xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
user@uos-PC:/var/log/journal$ cd xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
user@uos-PC:/var/log/journal/xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx$ sudo du -sh * .[^.]* | sort -hr | head -15
63M system@xxxxxxxx-xxxxxxxx-xxxxxxxx-xxxxxxxx-xxxxxxxx.journal
63M system@xxxxxxxx-xxxxxxxx-xxxxxxxx-xxxxxxxx-xxxxxxxx.journal
63M system@xxxxxxxx-xxxxxxxx-xxxxxxxx-xxxxxxxx-xxxxxxxx.journal
41M system@xxxxxxxx-xxxxxxxx-xxxxxxxx-xxxxxxxx-xxxxxxxx.journal
8.1M system.journal
8.1M user-1000@xxxxxxxx-xxxxxxxx-xxxxxxxx-xxxxxxxx-xxxxxxxx.journal
8.1M user-1000@xxxxxxxx-xxxxxxxx-xxxxxxxx-xxxxxxxx-xxxxxxxx.journal
8.1M user-1000@xxxxxxxx-xxxxxxxx-xxxxxxxx-xxxxxxxx-xxxxxxxx.journal步骤五
使用 sort 命令对当前目录下所占磁盘空间大小进行排序,快速定位最大文件。
sudo du -s * .[^.]* | sort -nr注意:当前目录下所占磁盘空间大小排序
步骤六
用这种方法首先确认大文件所在的位置,然后再根据目录功能判断磁盘爆满原因和选择清理方法。
磁盘空间文件清理方法
步骤一
直接删除文件:
rm -rf 目标文件步骤二
清空文件内容,自己不清楚能否自动生成的文件,或者单个大的日志文件建议以清空内容的方法清理,保留文件。
echo > 目标文件举例:
user@uos-PC:/persistent$ df -h
文件系统 大小 已用 可用 已用% 挂载点
/dev/nvme0n1p5 190G 185G 5.0G 98% /persistent
user@uos-PC:/persistent$ sudo du -sh * .[^.]* | sort -hr | head -10
98G home
28G ostree
575M overlay
user@uos-PC:/persistent$ cd home
user@uos-PC:/persistent/home$ sudo du -sh * .[^.]* | sort -hr
95G user
user@uos-PC:/persistent/home$ cd user
user@uos-PC:/persistent/home/user$ sudo du -sh * .[^.]* | sort -hr | head -20
80G .cache
12G Documents
3.5G Downloads
user@uos-PC:/persistent/home/user$ cd .cache
user@uos-PC:/persistent/home/user/.cache$ sudo du -sh * .[^.]* | sort -hr | head -10
75G mozilla
2.1G vmware
user@uos-PC:/persistent/home/user/.cache/mozilla$ cd firefox
user@uos-PC:/persistent/home/user/.cache/mozilla/firefox$ ls -la
total 12
drwx------ 3 user user 4096 Mar 24 10:30 .
drwx------ 4 user user 4096 Mar 24 10:30 ..
drwx------ 14 user user 4096 Mar 24 10:30 xxxxxxxx.default
user@uos-PC:/persistent/home/user/.cache/mozilla/firefox$ cd xxxxxxxx.default
user@uos-PC:/persistent/home/user/.cache/mozilla/firefox/xxxxxxxx.default$ sudo du -sh * .[^.]* | sort -hr | head -20
72G storage
1.2G cache2
800M startupCache步骤三
清理 systemd journal 日志(推荐使用 journalctl 命令)
user@uos-PC:/var/log$ sudo journalctl --disk-usage
Archived and active journals take up 183.1M in the file system.
user@uos-PC:/var/log$ sudo journalctl --vacuum-time=30d
Vacuuming done, freed 0B of archived journals from /var/log/journal.
user@uos-PC:/var/log$ sudo journalctl --vacuum-size=100M
Vacuuming done, freed 83.1M of archived journals from /var/log/journal.
user@uos-PC:/var/log$ sudo journalctl --disk-usage
Archived and active journals take up 100.0M in the file system.步骤四
清理包管理器缓存
user@uos-PC:/var/log$ sudo df -h /var
文件系统 大小 已用 可用 已用% 挂载点
/dev/nvme0n1p5 190G 180G 10G 95% /var
user@uos-PC:/var/log$ sudo apt clean
user@uos-PC:/var/log$ sudo apt autoclean
user@uos-PC:/var/log$ sudo apt autoremove
Reading package lists... Done
Building dependency tree... Done
Calculating upgrade... Done
0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.
user@uos-PC:/var/log$ sudo df -h /var
文件系统 大小 已用 可用 已用% 挂载点
/dev/nvme0n1p5 190G 175G 15G 92% /var注意:有的文件权限为 644,单独加 sudo 提权是无法执行命令的,必须先 sudo -i 切到 root 用户,或者 chmod 添加该文件其它用户的 w 权限,后者不提倡使用。
提醒:数据安全性
©统信软件技术有限公司。访问者可将本网站提供的内容或服务用于个人学习、研究或欣赏,以及其他非商业性或非盈利性用途,但同时应遵守著作权法及其他相关法律的规定,不得侵犯本网站及相关权利人的合法权利。除此以外,将本网站任何内容或服务进行转载,须备注:该文档出自【faq.uniontech.com】统信软件知识分享平台。否则统信软件将追究相关版权责任。