如何在 WSL 上的 Cryptomator 卷上运行 bash

如何在 WSL 上的 Cryptomator 卷上运行 bash

我的电脑操作系统是 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

相关内容