我的 Debian 直到昨天都运行正常。我安装了 reaver、aircrack 和 kismet,并且用了一段时间(它们可能是罪魁祸首吗?)。但现在 x 服务器无法连接。我没有安装桌面管理器,所以我总是手动startx
-ed(wm=awesome),没有任何问题。现在我不能了。我会在这里写下症状。我希望你们能诊断问题并提出解决方案。
内容
startx
:XKEYBOARD 键盘映射编译器 (xkbcomp
) 报告:Error: cannot close "/tmp/server-0.xkm" properly (not enough space?) ... output file "tmp/server-0.xkm" removed. Errors from xkbcomp are not fatal. AIGLX:suspending AIGLX clients for VT switch (EE) server terminated with error (1) ...
该
xorg.0.log
文件基本上说的是同样的事情。(Keyboard initialization failed, could be missing or incorrect setup of xkeyboard-config
)奇怪的是,它报告可能没有足够的空间。上次我检查时,剩余空间绰绰有余(20 GB)。
当我清除 reaver、kismet 和 aircrack 时:一切顺利,但它说无法更新 mandb,因为它没有空间。
ls on
/
:当我 时cd /;ls
,该/tmp
目录是唯一以绿色突出显示的目录(bg = 绿色,fg = 黑色)。 我认为这很可疑。当我删除
.Xsessions
文件然后startx
:有关键盘的错误消息消失了,但 AIGLX 客户端仍然被暂停(服务器因错误而终止)我
df -i
说的是:一切都很好,只使用了 10% 的 inode。说什么
df -h
:什么?它说根分区已完全填满。(24 GB 中的 24 GB)我照做了apt-get clean
,它仍然说已完全填满。
好吧,伙计们,我们都知道问题是什么:root 已完全填满。当然我没有这样做。下载 20 GB 的数据需要很长时间,我不可能不注意到(我的下载速度为 20 kbps)。此外,写入大量数据(例如日志或类似的东西)也需要很长时间。(无论如何,root 是写保护的。)
论坛上有人声称已经通过 解决了该问题pacman -Scc
。我试过了apt-get clean
,但没有用。
因此,我现在向你们寻求帮助。请建议我下一步该怎么做。
答案1
当df
报告分区已满时,该du
命令是诊断问题的下一步。我会cd
进入文件系统根目录并运行
sudo du -smx * .[^.]* | sort -n
-s
( )选项--summarize
打印全部的每个文件/目录的大小。- 该
-m
选项以兆字节为单位打印每个文件/目录使用的磁盘空间。 -x
(--one-file-system
) 选项强制保留du
在初始文件系统上。这会忽略不相关的信息(为此!)/run
,例如/sys
、/dev
和/或中的所有文件/proc
(感谢 MariusMatutiae)。- 包括
[^.].*
隐藏文件但排除父目录,..
)。 - 最后,按数字对列表进行排序,方便地在列表末尾显示占用最多空间的目录。
然后我切换到占用空间最大的目录,并对其子目录重复此过程。最终你应该找到一个占用空间超过应有空间的目录。
顺便说一句,/tmp/
是全球可写的(因此背景为绿色)。其内容应该会定期被操作系统自动删除 - 但您可能需要手动删除未自动清理的旧文件。
就我个人而言,我总是将其挂载/home
到单独的文件系统,每当这种情况发生时,我都会发现罪魁祸首是中的日志文件/var/log
。