我的电脑操作系统是 Windows 10,我在其中托管一个密码机E: 上的音量。我想对该已安装卷的内容运行 bash 命令,因此,我尝试使用 WSL 访问其内容。
这个好像不能直接实现:我正在尝试在 Windows 上打开容器并将卷直接安装在 WSL 上,失败了,因为它似乎只适用于 Docany,目前最新版本的 Cryptomator 不支持。
因此我尝试使用 Cryptomator CLI (https://github.com/cryptomator/cli)直接在 WSL 上,我的目标是直接打开容器。不幸的是,当尝试安装该卷时,我得到:
Password: /sbin/mount.davfs: loading kernel module fuse
modprobe: FATAL: Module fuse not found in directory /lib/modules/4.4.0-19041-Microsoft
/sbin/mount.davfs: loading kernel module fuse failed
/sbin/mount.davfs: waiting for /dev/fuse to be created
fuse
应该编译成 WSL 2 (WSL 上的“modprobe 保险丝”?),但是,即使我执行该mknod
命令,我仍然收到相同的错误。
编辑:在 PowerShell 上将 WSL 更新到最新版本解决了上述问题:
wsl --set-version Ubuntu-20.04 2
。
现在,在我存储的目录上cryptomator-cli-0.5.1.jar
,我运行java
命令(出于明显的原因,在此处混淆了密码):
java -jar cryptomator-cli-0.5.1.jar --bind 127.0.0.1 --port 8080 --vault firstVault=/mnt/e/myFolder/ --password firstVault='[###]'
我得到以下输出:
14:54:23.878 [main] INFO o.c.frontend.webdav.WebDavServer - Binding server socket to 127.0.0.1:8080
14:54:23.940 [main] INFO o.e.jetty.server.AbstractConnector - Started ServerConnector@6a472554{HTTP/1.1, (http/1.1)}{127.0.0.1:8080}
14:54:23.950 [main] INFO org.eclipse.jetty.server.Server - jetty-10.0.6; built: 2021-06-29T15:28:56.259Z; git: 37e7731b4b142a882d73974ff3bec78d621bd674; jvm 17.0.2+8-Ubuntu-120.04
14:54:24.091 [main] INFO o.e.j.server.handler.ContextHandler - Started o.e.j.s.ServletContextHandler@3d0f8e03{/,null,AVAILABLE}
14:54:24.111 [main] INFO org.eclipse.jetty.server.Server - Started Server@5a955565{STARTING}[10.0.6,sto=0] @1212ms
14:54:24.112 [main] INFO o.c.frontend.webdav.WebDavServer - WebDavServer started.
14:54:24.112 [main] INFO org.cryptomator.cli.frontend.WebDav - WebDAV server started: 127.0.0.1:8080
14:54:24.144 [main] INFO org.cryptomator.cli.CryptomatorCli - Unlocking vault "firstVault" located at /mnt/e/myFolder
14:54:24.145 [main] INFO o.c.c.p.PasswordFromPropertyStrategy - Vault 'firstVault' password from property.
14:54:25.709 [main] INFO o.e.j.s.s.DefaultSessionIdManager - Session workerName=node0
14:54:25.731 [main] INFO o.a.j.w.server.AbstractWebdavServlet - authenticate-header = Basic realm="Jackrabbit Webdav Server"
14:54:25.733 [main] INFO o.a.j.w.server.AbstractWebdavServlet - csrf-protection = null
14:54:25.733 [main] INFO o.a.j.w.server.AbstractWebdavServlet - createAbsoluteURI = true
14:54:25.734 [main] INFO o.e.j.server.handler.ContextHandler - Started o.e.j.s.ServletContextHandler@f478a81{/firstVault,null,AVAILABLE}
14:54:25.738 [main] INFO o.c.f.w.s.WebDavServletController - WebDavServlet started: /firstVault
14:54:25.739 [main] INFO org.cryptomator.cli.CryptomatorCli - Press Ctrl+C to terminate.
回到 Windows,我打开 Google Chrome 并尝试访问http://127.0.0.1:8080/firstVault
,但是,我得到了ERR_CONNECTION_REFUSED
。
为了使用 WSL 访问 Cryptomator 卷,是否缺少某些内容?
答案1
有什么方法可以使用 WSL 访问 Cryptomator 卷吗?
可能 - 我不能肯定地说,但我确实知道您将无法按照当前配置执行此操作。您使用的内核表明您实际上处于 WSL1,而不是您想象的 WSL2。
- WSL1“伪内核”结束于
-Microsoft
- WSL2 内核以
-microsoft-standard-WSL2
认为自己正在运行 WSL2 而实际上并未运行的情况并不少见。它可能是:
- 您的计算机不支持 WSL2,因此一开始只安装了 WSL1(不太可能)
- 您最初在 WSL2 出现之前安装了 WSL,然后升级到 WSL2,但没有升级发行版。
- 您的默认版本设置为 WSL1,因此发行版是在该模式下安装的。
- 或者 WSL2 安装时可能出现问题。
让我们逐一检查一下:
默认版本
wsl --status # Available on recent Windows/WSL releases
是否status
显示默认版本是2
?如果是这样,那就好。如果没有,请首先设置默认值:
wsl --set-default-version 2
wsl --status
如果您看到类似以下的消息:
Please enable the Virtual Machine Platform Windows feature and ensure virtualization is enabled in the BIOS.
For information please visit https://aka.ms/wsl2-install
然后按照这些说明进行操作。
否则,如果wsl --status
返回没有错误,则继续...
检查当前分布
wsl -l -v
查看发行版列表。你的几乎肯定会出现1
。
转换分布
在运行转换之前,您可能需要备份您的发行版。然后从 PowerShell 退出 WSL:
$imagePath = "$env:USERPROFILE\WSL\images" # Edit if you want a different location
$distroName = "Ubuntu" # Edit with your distribution name, if different
wsl --terminate $distroName
mkdir $imagePath
wsl --export $distroName $imagePath\$distroname-backup.tar
假设以上运行成功,请使用以下命令完成转换:
wsl --set-version $distroName 2