![什么填满了我的根目录?](https://linux22.com/image/1175111/%E4%BB%80%E4%B9%88%E5%A1%AB%E6%BB%A1%E4%BA%86%E6%88%91%E7%9A%84%E6%A0%B9%E7%9B%AE%E5%BD%95%EF%BC%9F.png)
我有一个 120gb 的 SSD 专用于 /root,还有一个单独的 HDD 用于 /home,但是由于某种原因,我的根驱动器已满,但我不知道原因。
我已尝试过autoclean
autoremove
,clean
但是没有帮助。
我在使用 lightdm 时遇到了问题,并花了几个小时用 testdisk 扫描有故障的 USB 驱动器,可能会创建一些大的错误日志,但我不知道在哪里。
有什么方法可以解决此问题吗?
$ df -h
Filesystem Size Used Avail Use% Mounted on
udev 2.9G 0 2.9G 0% /dev
tmpfs 588M 1.8M 586M 1% /run
/dev/nvme0n1p2 96G 91G 284M 100% /
tmpfs 2.9G 26M 2.9G 1% /dev/shm
tmpfs 5.0M 4.0K 5.0M 1% /run/lock
tmpfs 2.9G 0 2.9G 0% /sys/fs/cgroup
/dev/loop1 114M 114M 0 100% /snap/audacity/675
/dev/loop2 157M 157M 0 100% /snap/chromium/1213
/dev/loop4 55M 55M 0 100% /snap/core18/1754
/dev/loop3 97M 97M 0 100% /snap/core/9665
/dev/loop5 97M 97M 0 100% /snap/core/9436
/dev/loop6 159M 159M 0 100% /snap/chromium/1229
/dev/loop7 162M 162M 0 100% /snap/gnome-3-28-1804/128
/dev/loop9 146M 146M 0 100% /snap/firefox/392
/dev/loop10 256M 256M 0 100% /snap/gnome-3-34-1804/36
/dev/loop8 161M 161M 0 100% /snap/gnome-3-28-1804/116
/dev/loop11 145M 145M 0 100% /snap/firefox/387
/dev/loop12 256K 256K 0 100% /snap/gtk2-common-themes/13
/dev/loop0 114M 114M 0 100% /snap/audacity/666
/dev/loop13 256K 256K 0 100% /snap/gtk2-common-themes/9
/dev/loop14 63M 63M 0 100% /snap/gtk-common-themes/1506
/dev/loop15 116M 116M 0 100% /snap/spek/43
/dev/loop16 30M 30M 0 100% /snap/snapd/8140
/dev/nvme0n1p1 188M 7.8M 180M 5% /boot/efi
/dev/loop17 291M 291M 0 100% /snap/vlc/1700
/dev/loop18 55M 55M 0 100% /snap/core18/1880
/dev/loop19 112M 112M 0 100% /snap/simplescreenrecorder-brlin/69
/dev/loop20 30M 30M 0 100% /snap/snapd/8542
/dev/loop21 291M 291M 0 100% /snap/vlc/1620
/dev/sda1 3.4T 490G 2.7T 16% /home
tmpfs 588M 24K 588M 1% /run/user/1000
好的,所以 syslog.1 和 kernlog.1 都是 35.9,如果可以的话,它们可能会变得更大 - 这给我的系统带来了重大问题 - lightdm 停止工作并且在启动时出现登录循环。
编辑:我需要打开这些文件才能找出原因,但我怀疑它们会用要打开的数据量锁定我的电脑 - 有人可以证实这一点或有任何建议来查看内容吗?
编辑:原因已找到,问题已回答。我认为最好再问一个问题:如何读取/打开文件
编辑:原因似乎是 testdisk 或故障驱动器。我中止了驱动器上的深度扫描并拔下了它。感谢 Soren A,系统日志的前 20 行是:
Jul 27 14:09:08 ryzen kernel: [19606.795097] sd 10:0:0:0: [sdc] tag#0 device offline or changed
答案1
首先进入你的根目录。然后运行以下命令来查找最大的问题:
find . -maxdepth 1 -mindepth 1 -type d -exec du -sh {} \; | sort -rh | head
现在进入其中一个主要问题并再次运行相同的命令。继续沿着目录树向下查找,直到找到有问题的文件。
解释:
- maxdepth 表示只需在“.”目录中查找文件
- mindepth 表示不包括“。”目录(仅查看“。”下一级的文件)
- -type d 标志表示仅匹配目录
- exec 表示执行以下命令
- du 命令用于告诉您目录中的文件使用了多少磁盘空间。-s 标志指示 du 报告给定目录及其内所有目录的总数,而不是单独报告每个子目录。-h 将字节转换为人类可读的格式 - 例如 M 表示兆,G 表示千兆。
- exec 将 {} 符号替换为匹配的目录名称
- ; 只是终止 exec 运行的命令(反斜杠转义“;”并且“;”结束命令)
- 然后我们将整个输出通过管道传输到 sort 中,它对来自 find 命令的目录大小进行排序 - -r 标志按相反顺序排序,-h 标志告诉 sort 按其值而不是按字符串排序顺序来解释数字,例如 10G 和 10K。
- 最后我们将其导入到 head 中,这样你就不会看到满屏的内容 - 你只会看到最上面的“违规者”
答案2
你可以安装命令行工具ncdu
。它是一个具有图形界面的磁盘使用情况分析器。
示例输出:
ncdu 1.14.1 ~ Use the arrow keys to navigate, press ? for help
--- / ---------------------------------------------------------
20.4 GiB [##########] /home
12.3 GiB [###### ] /usr
. 1.8 GiB [ ] /var
800.7 MiB [ ] /lib
117.4 MiB [ ] /boot
. 20.8 MiB [ ] /etc
17.9 MiB [ ] /opt
17.7 MiB [ ] /sbin
11.9 MiB [ ] /bin
4.8 MiB [ ] /lib32
. 1.1 MiB [ ] /run
16.0 KiB [ ] /media
答案3
您可以使用du
(磁盘使用情况)命令,例如像这样:
cd /
sudo du -sh *
然后,您将看到每个目录中使用了多少空间,/
例如/bin
和/var
等等。然后,您也可以在特定目录中执行此操作,具体取决于哪些目录包含大量数据。
答案4
您可以使用 GUI 工具文件灯它以漂亮的径向图形显示磁盘使用情况。您可以直接看到最大的文件夹,检查子目录,只需单击鼠标右键即可打开文件管理器或目录上的终端。
你可以用一个简单的安装sudo apt install filelight