制表符完成错误:bash:无法为此处文档创建临时文件:设备上没有剩余空间

制表符完成错误:bash:无法为此处文档创建临时文件:设备上没有剩余空间

使用标签栏时,我不断收到此错误:

bash:无法为此处文档创建临时文件:设备上没有剩余空间”

有任何想法吗?

我一直在做一些研究,很多人都在谈论 /tmp 文件,它可能存在溢出。当我执行时,df -h我得到:

Filesystem      Size  Used Avail Use% Mounted on 
/dev/sda2       9.1G  8.7G     0 100% /
udev             10M     0   10M   0% /dev
tmpfs           618M  8.8M  609M   2% /run
tmpfs           1.6G     0  1.6G   0% /dev/shm
tmpfs           5.0M  4.0K  5.0M   1% /run/lock
tmpfs           1.6G     0  1.6G   0% /sys/fs/cgroup
/dev/sda1       511M  132K  511M   1% /boot/efi
/dev/sda4       1.8T  623G  1.1T  37% /home
tmpfs           309M  4.0K  309M   1% /run/user/116
tmpfs           309M     0  309M   0% /run/user/1000

看起来 /dev/data 目录即将爆炸,但是如果我提示:

$ du -sh /dev/sda2
0   /dev/sda2

看来是空了。

我是 Debian 新手,我真的不知道如何继续。我过去通常通过 ssh 访问这台计算机。除了这个问题之外,我在这台计算机上还有其他几个问题,它们可能是相关的,例如每次我想使用 GUI 输入我的用户(使用 root 即可)我得到:

Xsession:警告:无法写入 /tmp:Xsession 可能会退出并出现错误

答案1

如果有人在磁盘未满时出现此错误,请务必不仅检查df而且还要检查df -i.文件系统上有固定数量的 inode,每个文件都需要一个。如果您只有大量小文件,那么您的文件系统很容易被这些小文件填满,而运行时驱动器上仍然有足够的空间df

答案2

您的根文件系统已满,因此您的临时目录(/tmp 和 /var/tmp)也已满。许多脚本和程序都需要一些空间来存放工作文件,甚至锁定文件。当 /tmp 不可写时坏的事情发生。

您需要弄清楚如何填充文件系统。通常发生这种情况的地方是 /var/log (检查您是否正在循环日志文件)。或者 /tmp 可能已满。然而,还有很多很多其他方式可以填满磁盘。

du -hs /tmp /var/log

您可能希望重新分区,为 /tmp 提供它自己的分区(这是老式的做法,但如果您有足够的磁盘,那就没问题),或者将其映射到内存中(这将使其速度非常快,但开始如果临时文件过多,则会导致交换问题)。

答案3

您可能还失去了对该/tmp/目录的写访问权限。

它应该看起来像这样:

ls -l / |grep tmp
drwxrwxrwt   7 root root  4096 Nov  7 17:17 tmp

您可以这样修复权限:

chmod a+rwxt /tmp

答案4

我收到错误,然后我看到

[  672.995482] EXT4-fs (sda2): Remounting filesystem read-only
[  672.999802] EXT4-fs error (device sda2): ext4_journal_check_start:60: Detected aborted journal

我能够确认这一点,

mount | grep -i sda2
/dev/sda2 on / type ext4 (ro,relatime,errors=remount-ro,data=ordered)

相关内容