-
Ubuntu WSL2 must be already installed in C: system drive and user should be able to call windows binaries like
wsl.exefrom bash. -
We will install Alpine WSL2 distro in an external partition/disk:
-
Download Alpine.zip from here: https://github.com/yuk7/AlpineWSL/releases/
-
Extract the files in an external partition/disk. (for example D:\Alpine)
-
Make sure WSL2 is enabled by default (
wsl.exe --set-default-version 2) -
Inside the Alpine folder run
Alpine.exeto install the Distro. Anext4.vhdxfile will be created in that same folder. -
Run
Alpine.exeagain. -
Now from the Alpine terminal we will create same user as Ubuntu. This will create the
/home/onomafolder.adduser onoma
-
-
On Ubuntu edit the
~/.profilefile and add:
# mount external /home folder from Alpine distro
if [ ! -d /mnt/wsl/Alpine ]; then
mkdir /mnt/wsl/Alpine
wsl.exe -d Alpine -u root mount --bind /home/onoma /mnt/wsl/Alpine/
fi
-
We will close the VM with:
wsl.exe --shutdown -
Next time Ubuntu distro is launched it will automount the
/home/onomafolder from Alpine distro to/mnt/wsl/Alpinein Ubuntu with all the benefits and speed of ext4 mounted folders.
WSL2 runs a single lightweight VM that supports multiple distros running on the same Linux kernel.
Every time a distro is launched, its vhdx file is attached automatically to the VM as a /dev/sdc device.
Thanks to the nature of WSL interop we can launch another distro and inmediately close it from inside bash.
The folder /mnt/wsl is an undocumented WSL2 feature which is a tmpfs special folder used by applications as Docker for Desktop.
Everything mounted in that folder will also appear in every running distro under /mnt/wsl/. Just make sure you have file permissions to
access that directory. In my case I'm using user "onoma" on both Ubuntu and Alpine.


Thanks a lot.
Here is what i try to do
jso@VivoMini-VC65:~> wsl.exe sudo mount --bind /mnt/d/VHD/HD.vhdx /mnt/abc
mount: /mnt/abc: mount(2) system call failed: Not a directory.
I need to add the sudo, or otherwise the system will give me error.
I have tried to do /home/ /mnt/abc then it will not complain that is not a directory
My target is to see if i can call a vhdx directly