Windows-Subsystem-for-Linux

WSL 上的“modprobe 保險絲”?

  • December 7, 2021

嘗試在 WSL 中使用 veracrypt(控制台)。

我製作了一個卷,似乎工作正常……但是當我嘗試安裝它時:

Done: 100.000%  Speed: 5.0 MiB/s  Left: 0 s

The VeraCrypt volume has been successfully created.
m17awl@M17A:/media/mike$ veracrypt /mnt/e/test.vc /media/mike/rsync_vc_drive_e/
Enter password for /mnt/e/test.vc:
Enter PIM for /mnt/e/test.vc:
Enter keyfile [none]:
Protect hidden volume (if any)? (y=Yes/n=No) [No]:
Error: fuse: device not found, try 'modprobe fuse' first

NB 已經看到了這個問題,但是當我嘗試這些命令時,我得到了這個:

m17awl@M17A:/media/mike$ modprobe fuse
modprobe: FATAL: Module fuse not found in directory /lib/modules/4.4.0-19041-Microsoft
m17awl@M17A:/media/mike$ modprobe loop
modprobe: FATAL: Module loop not found in directory /lib/modules/4.4.0-19041-Microsoft
m17awl@M17A:/media/mike$ lsmod
libkmod: ERROR ../libkmod/libkmod-module.c:1668 kmod_module_new_from_loaded: could not open /proc/modules: No such file or directory
Error: could not get list of modules: No such file or directory

…顯然這些問題可能是 WSL 特有的。我不知道,也從未聽說過這些 Linux“模組”(我是低級的,抱歉!)。

作為一種解決方法,我安裝了 W10 版本的 veracrypt 控制台(想要使用控制台版本的目的是我想從腳本中掛載和解除安裝)。這也遇到了一個問題,如此所述,儘管我已經設法找到了一種次優的安裝方式,在這裡,至少可以工作……

fuseWSL 1 不支持

來自WSL 問題 #2869,therealkenc的評論

WSL 上沒有 Linux 模組,因為 WSL 中沒有 Linux 核心。


fuse編譯成 WSL 2

來自 MSPoweruser 文章Windows Subsystem for Linux (WSL) 2 supportcoming to Windows 10 version 1903 and 1909

WSL 2 中內置的完整 Linux 核心

來自WSL 第 17 期,therealkenc的評論

FUSE 被靜態編譯到 WSL2 核心中。一般來說 modprobe 不適用於 WSL2 by-design


信用@史蒂夫貝內特

在 WSL 2 中,使用的核心是 Microsoft 的自定義建構。雖然它是在支持模組的情況下編譯的,但模組和核心標頭檔都沒有提供,因此,實際上不可能在沒有大量工作自己建構的情況下將自定義模組載入到核心中。請注意,您的發行版提供的核心模組和標頭檔用於不同的核心,因此無法正常工作。

為了對模組進行基本概述,它們本質上是驅動程序,用於支持硬體(真實或虛擬)、文件系統、設備和各種其他功能,同時保持主核心映像較小。因此,它們通常被發行版使用。Microsoft 不為其核心提供模組,因為環境是眾所周知的並且是靜態的,如果將功能編譯到核心中,分發會容易得多。

為了使用 FUSE 文件系統,您需要擁有該/dev/fuse設備。從文件來看,udev可能無法執行來創建設備,因此您可以嘗試執行sudo mknod /dev/fuse c 10 229來創建它,然後查看是否有效。據說保險絲是可用的,所以這可能會奏效。

引用自:https://unix.stackexchange.com/questions/636749