我使用 Windows 11 作为操作系统。其内部版本号为:22000.348
我从商店安装了 Debian,然后安装了 Windows Subsystem for Linux Preview。
WSL 版本为:2
Debian 运行正常,没有任何问题。但是当我运行适用于 Linux 的 Windows 子系统预览版应用程序中,出现此错误:
使用 mount -a 处理 fstab 失败。
[进程退出,代码为 1 (0x00000001)]
- 为什么会发生这种情况?
- 我怎样才能防止这种情况发生?
- 适用于 Linux 的 Windows 子系统应用程序有什么作用?
答案1
从评论来看,这听起来可能是由于从商店安装的 WSL 预览版中存在某种错误。
最终(也是从评论中得出的结论),问题在于其中一个 Docker WSL 实例成为了 WSL 的“默认”实例。因此,专门运行“Debian”发行版是可行的。wsl.exe
但是,运行 WSL 应用程序(运行)试图启动 docker 映像,而该映像不应直接访问(并导致错误fstab
)。
这是通过wsl -l -v
将 Docker 镜像显示为默认值发现的。
解决方案是使用:
wsl -s Debian
...设置默认分布。
虽然这不一定是一个“错误”,但有一个打开 Github 问题建议 WSL 具有一种机制,允许docker-desktop-data
(以及其他不应该由最终用户运行的发行版)“隐藏”。
答案2
扩展NotTheDr01ds的答案:
如果您需要安装其他发行版,例如 ubuntu,您可以通过以下方式安装:
wsl --install
#Warning - may break docker desktop!
然后您可以将该发行版设为默认发行版,而不是不起作用的 docker 集成。
但是,这可能会破坏您的 docker 桌面集成。