我收到“磁盘配额超出”错误,但分区未满,并且用户拥有无限配额。出了什么问题,我该如何解决?
xxx@mc:/tmp$ pyenv install 3.7.6
/home/xxx/.pyenv/plugins/python-build/bin/python-build: line 2048: cannot create temp file for here-document: Disk quota exceeded
mkdir: cannot create directory ‘/tmp/python-build.20220629235336.143991’: Disk quota exceeded
BUILD FAILED (Ubuntu 20.04 using python-build 20180424)
Inspect or clean up the working tree at /tmp/python-build.20220629235336.143991
xxx@mc:/tmp$ df -h
Filesystem Size Used Avail Use% Mounted on
udev 445M 0 445M 0% /dev
tmpfs 98M 1016K 97M 2% /run
/dev/sda 19G 11G 7.5G 58% /
tmpfs 489M 0 489M 0% /dev/shm
tmpfs 5.0M 0 5.0M 0% /run/lock
tmpfs 489M 0 489M 0% /sys/fs/cgroup
/dev/sdc 4.8G 20M 4.7G 1% /baks
tmpfs 98M 0 98M 0% /run/user/0
xxx@mc:/tmp$ quota -u
Disk quotas for user xxx (uid 1000): none
答案1
配额的目的是避免磁盘空间不足,因此限制磁盘使用是有意义的前磁盘已满。
可以为用户设置配额,但也可以用于限制一组用户使用的集体存储空间。
在您的情况下,您表明没有有效的用户配额。
使用quota -g
、 和查看组配额根据评论,这似乎是导致您出现问题的原因。另外有点奇怪的是,该目录在您连接的系统上/tmp
不是它自己的文件系统。tmpfs
答案2
遇到同样的问题。 '配额-su; df /tmp' 确认我达到了 /tmp 中的用户配额并且未满,但 'find /tmp -user $USER' 出现为空,并且 'quota -sg | grep < tmp mount >' 发现没有涉及组配额。所以我不知道为什么系统说我的tmp配额超出了。
我找到了一个解决方法:更改 bash 临时文件的位置。
$ mkdir -p ~/tmp
$ export TMPDIR=~/tmp
$ echo "export TMPDIR=~/tmp" >> ~/.bashrc