Windows Subsystem for Linux 2 now allows a physical disk with a Linux filesystem, such as ext4, to be attached and mounted inside WSL 2.
The feature lets users access Linux file systems, such as ext4, that Windows don’t natively support. It also means those dual-booting Windows and Linux with different disks can now access Linux files from Windows.
Starting with Windows build 20211, Windows Subsystem for Linux 2 (WSL 2) will be offering a new feature:
wsl --mount. This new parameter allows a physical disk to be attached and mounted inside WSL 2, enabling you to access filesystems that aren’t natively supported by Windows (such as ext4).
Related: How to Use showmount Command to List Shares on an NFS Server
So, if you’re dual-booting with Windows & Linux using different disks, you can now access your Linux filesystem in WSL 2.
However, the feature comes with limitations. For instance, it’s impossible to attach a single partition or mount ext4 partitions on the same physical disk as Windows OS.
This is because the new improvement is only limited to separate physical disks. Also, you cannot attach USB flash drives even though it supports USB disks.
How to Mount a Linux Disk in WSL 2
To mount a disk, open a PowerShell window with administrator privileges and run:
wsl --mount <DiskPath>
Listing the available disks in Windows is easy. Just run:
wmic diskdrive list brief
To unmount and detach the disk from WSL 2, run:
wsl --unmount <Diskpath>
The disks paths are available under the
DeviceID columns, usually under the
Below is an example of mounting a specific hard disk partition into WSL and browsing its files.
Accessing Linux Filesystem with File Explorer
Once mounted, it’s also possible to access these disks through Windows Explorer by navigating to
\wsl$ and then to the mount folder.
If you want to access a Linux filesystem in WSL 2, first update your Windows to the latest Build 20211 and then check out the official docs.
This is pretty much useless for laptops, as the majority will have partitions on a single disk.
I’m using a Luks encrypted BRTFS drive. I managed to mount the drive with “wsl –mount –bare” Afterwards I used
sudo cryptsetup luksOpen /dev/sdc1 cryptroothd
sudo mount -o compress=zstd:1 /dev/mapper/cryptroothd /wd12tb
So the drive is visible within WSL2 but Windows just shows the empty folder without the mounted drive. Do I have to to that in another way or is it not possible to access it from Windows?
Since I am not the most eminent Windows expert :), please take a look at what it says on the subject here: https://devblogs.microsoft.com/commandline/servicing-the-windows-subsystem-for-linux-wsl-2-linux-kernel/
So, my best guess is to check that you are using a sufficiently up-to-date version of the WSL 2 kernel, and if not, just update it, and it should work fine.
I hope it will help you solve your problem!