/ManjaroWSL

Manjaro for WSL2 using wsldl

Primary LanguageMakefileMIT LicenseMIT

ManjaroWSL

Manjaro on WSL2 (Windows 10 FCU or later) based on wsldl.

Screenshot-2021-02-12-142406.png Github All Releases PRs Welcome License

Requirements

  • For x64 systems: Version 1903 or higher, with Build 18362 or higher.
  • For ARM64 systems: Version 2004 or higher, with Build 19041 or higher.
  • Builds lower than 18362 do not support WSL 2.
  • Enable Windows Subsystem for Linux feature. Open PowerShell as Administrator and run:
dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart
  • Enable Virtual Machine feature. Open PowerShell as Administrator and run:
dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart
  • Download and install the Linux kernel update package from here.

For more details, check this microsoft document.

How to install

  • Make sure all the steps mentioned under "Requirements" are completed.
  • Set wsl2 as default. Run the command below in a windows cmd terminal.
wsl --set-default-version 2
  • Download installer zip.
  • Extract all files in zip file to same directory.
  • Run Manjaro.exe to Extract rootfs and Register to WSL

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

How to setup

Open Manjaro.exe and run the following commands.

passwd
useradd -m -G wheel -s /bin/bash <username>
passwd <username>
exit

Execute the command below in a windows cmd terminal from the directory where Manjaro.exe is installed.

>Manjaro.exe config --default-user <username>

Set up your choice of pacman mirrors before you proceed using ManjaroWSL. More information on how to use pacman-mirrors is available here.

How to use 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 distro. Inherit current directory.

    runp <command line (includes windows path)>
      - Run the path translated command line in that distro.

    config [setting [value]]
      - `--default-user <user>`: Set the default user for this distro to <user>
      - `--default-uid <uid>`: Set the default user uid for this distro to <uid>
      - `--append-path <on|off>`: Switch of Append Windows PATH to $PATH
      - `--mount-drive <on|off>`: Switch of Mount drives
      - `--default-term <default|wt|flute>`: Set default terminal window

    get [setting]
      - `--default-uid`: Get the default user uid in this distro
      - `--append-path`: Get on/off status of Append Windows PATH to $PATH
      - `--mount-drive`: Get on/off status of Mount drives
      - `--wsl-version`: Get WSL Version 1/2 for this distro
      - `--default-term`: Get Default Terminal for this distro launcher
      - `--lxguid`: Get WSL GUID key for this distro

    backup [contents]
      - `--tgz`: Output backup.tar.gz to the current directory using tar command
      - `--reg`: Output settings registry file to the current directory

    clean
      - Uninstall the distro.

    help
      - Print this usage message.

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 using 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

>Manjaro.exe clean

How to build from source

prerequisites

Docker, tar, zip, unzip need to be installed.

git clone git@gitlab.com:sileshn/ManjaroWSL.git
cd ManjaroWSL
make

Copy the Manjaro.zip file to a safe location and run the command below to clean.

make clean

How to run docker in ManjaroWSL without using docker desktop

Install docker.

sudo pacman -S docker

Follow this blog post for further details on how to set it up.

Screenshot-2021-01-27-175029.png