为什么磁盘空间和 inode 剩余充足却仍然提示 "No space left on device"?

我的电脑是 SSD(240G) + HDD(320G) 双硬盘。系统 macOS 10.13 安装在 SSD,用户数据放在 HHD 并挂载到 /Users

最近随便下载点文件就显示 "No space left on device",明明磁盘剩余空间近 40G,inode 余量充足:


$ [~/Downloads] a2.sh https://nodejs.org/dist/v18.1.0/node-v18.1.0.pkg

04/08 15:37:01 [NOTICE] Downloading 1 item(s)
[#30d21c 8.3MiB/65MiB(12%) CN:10 DL:441KiB ETA:2m13s]
04/08 15:37:06 [ERROR] Error when trying to flush write cache
Exception: [AbstractDiskWriter.cc:456] errNum=28 errorCode=9 \
Failed to write into the file /Volumes/HDD/Users/*/Downloads/node-v18.1.0.pkg, \
cause: No space left on device
...


$ [~/Downloads] df -hi
Filesystem      Size   Used  Avail Capacity iused               ifree %iused  Mounted on
/dev/disk2s1   233Gi   50Gi  177Gi    22% 1697029 9223372036853078778    0%   /
devfs          341Ki  341Ki    0Bi   100%    1180                   0  100%   /dev
/dev/disk2s4   233Gi  5.0Gi  177Gi     3%       1 9223372036854775806    0%   /private/var/vm
/dev/disk1s2   297Gi  260Gi   37Gi    88% 5469492          4289497787    0%   /Volumes/HDD
map -hosts       0Bi    0Bi    0Bi   100%       0                   0  100%   /net
map auto_home    0Bi    0Bi    0Bi   100%       0                   0  100%   /home

磁盘错误也修复了,但并没有解决问题。

会是什么原因导致?

删除文件有时也会提示 “No space left on device”:

$ [~] rm -rf ~/.cocoapods
rm: ~/.cocoapods/repos/master/.git/index: No space left on device

这应该是磁盘空间耗尽了才会有的显现?但我分明还有几十G的剩余空间。

而且删除的目录2G多,只有两个文件有提示,而且这两个文件都很小。

会不会是 mac 的文件系统有问题?

我个人还是推荐尽快备份数据,然后格盘排查问题。这种事已经超越了理性分析的尺度,毕竟数据无价。

小白观点,可忽略。

你看看这篇能不能帮到你

他的inode是充足的,怀疑文件系统挂了或磁盘主控出问题了。

话说 /home 为啥是0,感觉会不会是下载过程需要创建缓存目录,结果和系统配置的不一样创建到 /home 目录内了,所以报了这个错误。

auto_home 的问题吧,可能得重新来一次

@Qquanwei @Nasy home 并非真正的磁盘,只是挂载点,所以 inode 为 0。


各大卖场都是1T以上的叠瓦盘了,我只想要个500G的垂直盘 :expressionless:

是不是 tmpfs 满了,有时候 /tmp 满了也会提示 no space left on device.

嗯,只是印象中 auto_home 出问题时也会出现类似情况

会不会是有什么txt文件. 也就是从windows下拷贝过来的

我conda install的时候也遇到这种现象,重启之后问题解决。

可能是这些文件还在使用过程中,linux/mac 都是在最后一个进程关闭了已删除的文件读写后,才真正删除文件占用的磁盘空间。

是不是docker 占用了。记得 macos 有这个bug。