使用标签栏时,我不断收到此错误:
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)