当保险丝 NTFS-3G 上有可用空间时,“ENOSPC:设备上没有剩余空间”

当保险丝 NTFS-3G 上有可用空间时,“ENOSPC:设备上没有剩余空间”

我在 Ubuntu 18.04 上。我正在尝试运行一个涉及在缓存目录中创建大量文件的命令:$XDG_CACHE_HOME。我已将此变量设置为/media/michael/Storage2/cache/,以强制将缓存安装在此处而不是安装到我的 Linux 分区中。

所讨论的磁盘有足够的剩余空间和 inode:

$ df /media/michael/Storage2/
Filesystem      1K-blocks      Used  Available Use% Mounted on
/dev/sdc1      1953512444 843210596 1110301848  44% /media/michael/Storage2
$ df -i /media/michael/Storage2/
Filesystem         Inodes   IUsed      IFree IUse% Mounted on
/dev/sdc1      1115872408 5527524 1110344884    1% /media/michael/Storage2

但是,当我运行有问题的命令(pre-commit run --all-files涉及运行npm install以安装节点包)时,出现以下错误:

23065 verbose stack Error: ENOSPC: no space left on device, mkdir '/media/michael/Storage2/cache/pre-commit/repo822s6gpl/node_modules/.staging/deep-is-660143e4'
23066 verbose cwd /media/michael/Storage2/cache/pre-commit/repo822s6gpl
23067 verbose Linux 4.19.34-041934-generic
23068 verbose argv "/usr/bin/node" "/home/michael/.nvm/versions/node/v10.22.0/bin/npm" "install"
23069 verbose node v14.13.1
23070 verbose npm  v6.14.6
23071 error code ENOSPC
23072 error syscall mkdir
23073 error path /media/michael/Storage2/cache/pre-commit/repo822s6gpl/node_modules/.staging/deep-is-660143e4
23074 error errno -28
23075 error nospc ENOSPC: no space left on device, mkdir '/media/michael/Storage2/cache/pre-commit/repo822s6gpl/node_modules/.staging/deep-is-660143e4'
23076 error nospc There appears to be insufficient space on your system to finish.
23076 error nospc Clear up some disk space and try again.
23077 verbose exit [ -28, true ]

该驱动器最不寻常的地方是它通过 NTFS-3G(FUSE)使用 NTFS:

df -T /media/michael/Storage2/
Filesystem     Type     1K-blocks      Used  Available Use% Mounted on
/dev/sdc1      fuseblk 1953512444 843220496 1110291948  44% /media/michael/Storage2
lsblk -no name,fstype /dev/sdc1
sdc1 ntfs

如果情况并非如此,那么可能出现什么问题导致无空间错误?


额外信息:

$ grep Storage2 /etc/mtab
/dev/sdc1 /media/michael/Storage2 fuseblk rw,relatime,user_id=0,group_id=0,default_permissions,allow_other,blksize=4096 0 0

答案1

看起来您系统上的所有 docker 容器都共享相同的磁盘空间。——我找到了两个解决方案:——

1 => 进入Docker Desktop 的设置并增加可用的磁盘空间量。

2 => 运行 docker container prune 来释放已停止的容器正在使用的磁盘空间。

就我的情况而言,几个月前我就停止了一堆 Docker 容器,它们占用了分配给 Docker 的所有磁盘空间。

相关内容