我在 WSL2 上使用 Ubuntu 20.04.1 LTS,突然在启动 shell 时收到此错误。
Error: EIO: i/o error, scandir '/mnt/c/Users/computer'
nvm is not compatible with the npm config "prefix" option: currently set to ""
Run `npm config delete prefix` or `nvm use --delete-prefix v14.0.0 --silent` to unset it.
所以,我尝试查找 EIO i/o 错误,但没有任何结果。对于 npm 配置前缀问题有一个解决方案,但我又遇到了 EIO i/o 错误。我尝试使用
nvm
重新安装 v14.0.0,但只输出上面的错误行。我重新安装了 nvm 并让它安装 14.0.0 但错误仍然存在。
我可以使用 Node,但尝试使用 npm 会出现 EIO 错误。
我该怎么办?
来自这篇博文:
简短的版本是将此部分添加到您的 WSL 实例的
(该文件可能不存在,只需创建它):/etc/wsl.conf
[automount]
enabled = true
options = "metadata,umask=22,fmask=11"
它有什么作用
您可以在他们的开发博客上阅读“官方”Microsoft 文档,但这是我逐行的解释:
- 下自动安装的驱动器的设置
部分更改在automount
/mnt
键可能是不必要的,但它明确打开自动挂载(默认为enabled
)true
键更有趣一点:options
打开大部分并行的文件权限元数据,允许保留 WSL 文件权限更改。它部分影响底层Windows权限;有关更多详细信息,请参阅上面的开发博客链接。metadata
值屏蔽(即取消设置)文件和目录的group和others写入位umask
值屏蔽了group和others仅用于文件的执行位fmask
如果文件安装在
下,现在应该以舒适的权限设置 0644 和 0755 的目录显示。/mnt
更改后不要忘记重新启动。