WSL 将 W10 CLI 交换机转换为 Linux?

WSL 将 W10 CLI 交换机转换为 Linux?

我正在尝试安装 Veracrypt 并从 WSL 中运行的脚本(Python 但显然可以调用 BASH 脚本)运行它(挂载卷等)。

据记载这里,我在尝试使用 Linux 控制台版本的 Veracrypt 时遇到了问题。所以我想也许我可以利用 WSL 中也可以运行 Windows 应用程序的事实。而且 W10 版本的 Veracrypt 确实可以从 CLI 运行。例如,这有效:

> "VeraCrypt.exe" /v e:\test.vc /l A /password "badger34" /silent /q

那么,那些 W10 风格的交换机如何才能“转换”成 WSL 交换机呢?以下是一些尝试:

m17awl@M17A:/mnt/d/apps/VeraCrypt$ "VeraCrypt.exe" /v e:\test.vc /l A /password "badger34" /silent /q
VeraCrypt.exe: command not found
m17awl@M17A:/mnt/d/apps/VeraCrypt$ ./VeraCrypt.exe /v e:\test.vc /l A /password "badger34" /silent /q
m17awl@M17A:/mnt/d/apps/VeraCrypt$ ./VeraCrypt.exe /v e:\test.vc /l A /password "badger34" /q
m17awl@M17A:/mnt/d/apps/VeraCrypt$ ./VeraCrypt.exe /v /mnt/e/test.vc /l A /password "badger34" /q
m17awl@M17A:/mnt/d/apps/VeraCrypt$ ./VeraCrypt.exe -v /mnt/e/test.vc -l A /password "badger34" -q
m17awl@M17A:/mnt/d/apps/VeraCrypt$ ./VeraCrypt.exe "/v /mnt/e/test.vc /l A /password \"badger34\" /q"
m17awl@M17A:/mnt/d/apps/VeraCrypt$ ./VeraCrypt.exe /v /mnt/e/test.vc /l A /password "badger34" /q
m17awl@M17A:/mnt/d/apps/VeraCrypt$ ./VeraCrypt.exe --v /mnt/e/test.vc --l A --password "badger34" --q
m17awl@M17A:/mnt/d/apps/VeraCrypt$ ./VeraCrypt.exe -v /mnt/e/test.vc -l A -password "badger34" -q

大多数情况下,Veracrypt 都会以错误对话框进行响应,例如“解析命令行错误”...在示例 5 中,会出现 Veracrypt GUI 对话框。

事实上,上述方法不太可能起作用,原因很简单,在 Linux 中您使用文件系统中的挂载点进行挂载,而不是驱动器号(目前尚不存在……但如果存在的话,它就会出现/mnt/a在上述内容中)。

./VeraCrypt.exe /v /mnt/e/test.vc /l /mnt/a /password 'badger34' /q
./VeraCrypt.exe /v /mnt/e/test.vc /l /media/mike/rsync_vc_drive_e /password 'badger34' /q

使该驱动器号位置确定???

m17awl@M17A:/mnt/d/apps/VeraCrypt$ sudo mkdir /mnt/a
[sudo] password for m17awl:
m17awl@M17A:/mnt/d/apps/VeraCrypt$ ./VeraCrypt.exe /v /mnt/e/test.vc /l /mnt/a /password 'badger34' /q
m17awl@M17A:/mnt/d/apps/VeraCrypt$ ./VeraCrypt.exe /v /mnt/e/test.vc /l A /password 'badger34' /q

--> “解析命令行错误”

注意:如果您veracrypt.exe /?在 W10 命令提示符下运行,您将获得可用开关的列表。

有什么想法吗?例如,我不认为有某种方法可以将“纯 W10”CLI 行传递到 WSL 环境之外并进入 W10 环境并运行它?

答案1

一个可能的解决方案:

m17awl@M17A:/mnt/d/apps/VeraCrypt$ cmd.exe /K mount_a.bat
D:\apps\VeraCrypt>"VeraCrypt.exe" /v e:\test.vc /l A /password "badger34" /silent /q 
D:\apps\VeraCrypt>

... 一两秒后,驱动器 A: 出现在 Explorer 中。好极了。

注意:只有第一行是我输入的,即 mount_a.bat 包含我的 Plain-Old-W10 命令行。这也会结束有问题的 WSL 进程(或将其转换为 W10 进程),但这不是问题。

可能有比这更好的答案。此外,这还会导致另一个问题(即使我在 W10 中使用 VC GUI 应用程序“手动”安装也会出现此问题):无法访问驱动器(即上例中的 /mnt/a 不存在!)。但这当然是另一个问题。

相关内容