Install any GNU/Linux distribution userspace in Windows Subsystem for Linux (WSL) with compressed RootFS tarballs 📦 (tar.gz) or with Docker containers 🐳 or with ISO files 💿
Clone this GitHub repository with this link https://github.com/Biswa96/WSLInstall.git .
Use MSBuild (or mingw-w64) to make executable file from project file(.vcxproj).
Or use the makefile in WslFunctions
folder. The project file only provides x64-Release version.
- Generate DEF file:
gendef /c/Windows/System32/wslapi.dll
- For MSVC:
lib /DEF:wslapi.def /MACHINE:X64
- For GCC:
dlltool -D /c/Windows/System32/wslapi.dll -d wslapi.def -l libwslapi.a
wslapi export library was added in latest mingw-64 toolchain. See this commits for further details:
- First make a folder where you want to install that distribution, that may be any partition of internal drives only. External drives are not supported now.
- Place both
WslInstall.exe
and{distribution}.tar.gz
files in that same folder. - Open command prompt in that folder and type the command like this:
WslInstall.exe <distro_name> <distribution.tar.gz>
. Always put a space between the two command arguments like between <distro_name> and <distribution.tar.gz>. - After some seconds, that distribution will be installed. Confirm it with
wslconfig.exe /list /all
command. Also you may see arootfs
folder in that directory where you want to install.
- WslInstall: In the source code, the main function imports the
WslRegisterDistribution
function fromwslapi.dll
file. Then it passes the provided two commandline arguments indistroName
and intarGzFilename
string parameters of that function respectively and the imported function installs that distribution. See details of WSL Functions and WSL_DISTRIBUTION_FLAGS.
-
Docs:
-
Tools:
- DistroLink: Create a shortcut file aka. shell link with
\\wsl$
path.
- DistroLink: Create a shortcut file aka. shell link with
This project is licensed under GNU General Public License v3 or higher. See LICENSE for more details. You are free to study, change, modify the source code and make your own version and publish that.