我正在尝试运行bitbake
命令来构建图像,但看到以下错误
ERROR: No space left on device or exceeds fs.inotify.max_user_watches?
ERROR: To check max_user_watches: sysctl -n fs.inotify.max_user_watches.
ERROR: To modify max_user_watches: sysctl -n -w fs.inotify.max_user_watches=<value>.
ERROR: Root privilege is required to modify max_user_watches.
运行一个脚本来确定哪个进程有多少个监视计数,我得到以下信息:
INOTIFY
WATCHER
COUNT PID CMD
----------------------------------------
11978 15732 /snap/sublime-text/97/opt/sublime_text/plugin_host 15717 --auto-shell-env
11978 15717 /snap/sublime-text/97/opt/sublime_text/sublime_text
51 10165 /usr/lib/unity-settings-daemon/unity-settings-daemon
12 1759 /usr/lib/gvfs/gvfsd-trash --spawner :1.6 /org/gtk/gvfs/exec_spaw/0
...
运行以下命令会返回大于设置的最大监视计数,11978
但我仍然看到相同的错误。
$ sysctl -n fs.inotify.max_user_watches
12288
还有什么我应该调查的吗?
答案1
如果您使用 VS Code Remote-SSH,则会出现此错误,要防止此错误,只有一个选项关闭 VS Code 或尝试使用 files.watcherExclude 设置从文件观察器中排除大文件夹。
答案2
下面链接中的解决方案为我解决了这个问题:
https://forum.proxmox.com/threads/error-no-space-left-on-device.27809/post-141252
总之:
检查当前限制:
cat /proc/sys/fs/inotify/max_user_watches
对我来说这是 64000
暂时测试增加值是否可以解决问题:(这将在下次重新启动时重置为默认值 8192)
echo 1048576 > /proc/sys/fs/inotify/max_user_watches
请记住,每个大小约为 1k,这会将手表的 RAM 消耗从 ~8MB 增加到 ~1GB。您可能不需要这么大。尝试更小的东西以节省 RAM。
如果上述方法使问题消失,我们现在可以通过重新启动使其永久化:
编辑/etc/sysctl.conf
nano /etc/sysctl.conf
添加以下行(或编辑它,如果已经存在)
fs.inotify.max_user_watches=128000
如上所述,编辑 128000 值以满足您的需求
重新启动,或执行以下操作:
sysctl -p /etc/sysctl.conf