Home

Awesome

wsldl

Advanced WSL Distribution Launcher / Installer

wsldl logo

GitHub Workflow Status Github All Releases PRs Welcome License

Detailed documentation is here

💻Requirements

📦Install with Prebuilt Packages

You can see List on docs

Note: Exe filename is using to the instance name to register. If you rename it, you can register with a different name.

🔧Install with any rootfs tarball

Note: The filesystem needs to be in the root of the tarball, some rootfs tarballs may need to be repacked.

1. Download wsldl.exe

(wsldl.exe is x86_64, wsldl_arm64.exe is ARM64 build)

2. Rename it for distribution name to register.

(Ex: Rename to Arch.exe if you want to use "Arch" for the Instance name)

3. Put your install.tar(.gz) in same directory as exe (Installation directory)

4. Run exe to install. This process may take a few minutes.

🔧Install with any ext4 vhdx disk images (WSL2 only)

1. Download wsldl.exe

(wsldl.exe is x86_64, wsldl_arm64.exe is ARM64 build)

2. Rename it for distribution name to register.

(Ex: Rename to Arch.exe if you want to use "Arch" for the Instance name)

3. Put your install.ext4.vhdx(.gz) in same directory as exe (Installation directory)

4. Run exe to install. This process may take a few minutes.

🔗Use as a Launcher for already installed distribution

1. Download wsldl.exe

(wsldl.exe is x86_64, wsldl_arm64.exe is ARM64 build)

2. Rename it for registerd instance name.

Please check the registered instance name of the distribution with wslconfig /l command. (Ex: If the instance name is "Ubuntu-20.04", rename wsldl.exe to Ubuntu-20.04.exe)

4. Run exe to Launch instance or configuration.

For details, please see the help. ({InstanceName}.exe help)

Note: You can distribute your distribution including wsldl exe.

📝How-to-Use(for Installed Instance)

exe Usage

Usage :
    <no args>
      - Open a new shell with your default settings.

    run <command line>
      - Run the given command line in that instance. Inherit current directory.

    runp <command line (includes windows path)>
      - Run the given command line in that instance after converting its path.

    config [setting [value]]
      - `--default-user <user>`: Set the default user of this instance to <user>.
      - `--default-uid <uid>`: Set the default user uid of this instance to <uid>.
      - `--append-path <true|false>`: Switch of Append Windows PATH to $PATH
      - `--mount-drive <true|false>`: Switch of Mount drives
      - `--wsl-version <1|2>`: Set the WSL version of this instance to <1 or 2>
      - `--default-term <default|wt|flute>`: Set default type of terminal window.

    get [setting]
      - `--default-uid`: Get the default user uid in this instance.
      - `--append-path`: Get true/false status of Append Windows PATH to $PATH.
      - `--mount-drive`: Get true/false status of Mount drives.
      - `--wsl-version`: Get the version os the WSL (1/2) of this instance.
      - `--default-term`: Get Default Terminal type of this instance launcher.
      - `--lxguid`: Get WSL GUID key for this instance.

    backup [contents]
      - `--tar`: Output backup.tar to the current directory.
      - `--tgz`: Output backup.tar.gz to the current directory.
      - `--vhdx`: Output backup.ext4.vhdx to the current directory. (WSL2 only)
      - `--vhdxgz`: Output backup.ext4.vhdx.gz to the current directory. (WSL2 only)
      - `--reg`: Output settings registry file to the current directory.

    clean
      - Uninstall that instance.

    help
      - Print this usage message.

Just Run exe

>{InstanceName}.exe
[root@PC-NAME user]#

Run with command line

>{InstanceName}.exe run uname -r
4.4.0-43-Microsoft

Run with command line with path translation

>{InstanceName}.exe runp echo C:\Windows\System32\cmd.exe
/mnt/c/Windows/System32/cmd.exe

Change Default User(id command required)

>{InstanceName}.exe config --default-user user

>{InstanceName}.exe
[user@PC-NAME dir]$

Set "Windows Terminal" as default terminal

>{InstanceName}.exe config --default-term wt

How to uninstall instance

>{InstanceName}.exe clean

How-to-backup

export to backup.tar.gz (WSL1 or 2)

>{InstanceName}.exe backup --tgz

export to backup.ext4.vhdx.gz (WSL2 only)

>{InstanceName}.exe backup --vhdxgz

How-to-import

.tar(.gz) (WSL1 or 2)

>{InstanceName}.exe install backup.tar.gz

.ext4.vhdx(.gz) (WSL2 only)

>{InstanceName}.exe install backup.ext4.vhdx.gz

🛠How-to-Build

Please see DEVELOPERS.md

📄License

MIT

Copyright (c) 2017-2021 yuk7