如何解决linux报No space left on device错误

2025-03-29 09:32:11
推荐回答(2个)
回答1:

原因与解决方法一,磁盘inode被用光导致
/data目录下无法创建文件
> touch a
touch: cannot touch `a': No space left on device

磁盘只使用了61%
> df -h

Filesystem Size Used Avail Use% Mounted on
...
/dev/sda5 817G 466G 310G 61% /data
...
inode被用光
> df -i

Filesystem Inodes IUsed IFree IUse% Mounted on
...
/dev/sda5 54378496 54378496 0 100% /data
...

解决办法:删除无用文件,释放inode

解决方法二,硬盘有空间但还是提示此错误
# tail -f ../logs/catalina.out
tail: cannot watch `../logs/catalina.out': No space left on device
df -h 查看有剩余空间
df -i 查看inode也有剩余空间
最终解决:
# vim /etc/sysctl.conf
添加以下:
fs.inotify.max_user_watches = 32768
生效:
# sysctl -p /etc/sysctl.conf
再次测试:
# tail ../logs/catalina.out
正常输出,成功。

回答2:

Linux系统中tail命令可以依照要求将指定的文件的最后部分输出到标准设备,也就是说在终端中可以随时看到最新的档案内容,这对使用很有帮助。以下为解决系统提示No space left on device的方法:
修改etc/sysctl.conf文件:
# vim /etc/sysctl.conf
添加以下内容:
fs.inotify.max_user_watches = 32768
生效:
# sysctl -p /etc/sysctl.conf
这样就可以正常输出了。