Manjaro on WSL2 (Windows 10 FCU or later) based on wsldl.
ManjaroWSL has the following features during the installation stage.
- Increase virtual disk size from the default 256GB
- Create a new user and set the user as default
ManjaroWSL includes a wsl.conf file which only has section headers. Users can use this file to configure the distro to their liking. You can read more about wsl.conf and its configuration settings here.
- 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 latest Linux kernel update package from here. Its a cab file. Open and extract the exe file within using 7zip/winzip/winrar.
For more details, check this microsoft document.
- 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
Alternatively, you can use Scoop:
scoop bucket add extras
scoop install manjarowsl
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.
ManjaroWSL will ask you to create a new user during its first run. If you choose to create a new user during the first run, the steps below are not required unless you want to create additional users.
Open Manjaro.exe and run the following commands.
passwd
useradd -m -g users -G wheel -s /bin/bash <username>
echo "%wheel ALL=(ALL) ALL" >/etc/sudoers.d/wheel
passwd <username>
exit
You can set the user you created as default user using 2 methods.
Open Manjaro.exe, run the following command (replace username with the actual username you created).
sed -i '/\[user\]/a default = username' /etc/wsl.conf
Shutdown and restart the distro (this step is important).
(or)
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 pacman mirrors before you proceed using ManjaroWSL. Pacman is configured to use the Global mirror by default. Switch to the mirror/mirrors of your choice or reset to use all mirrors before you update. More information on how to use pacman-mirrors is available here.
$sudo pacman-mirrors --country <name>
$sudo pacman -Syu
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
- `--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.
- `--reg`: Output settings registry file to the current directory.
- `--tgz`: Output backup.tar.gz to the current directory.
- `--vhdx`: Output backup.ext4.vhdx to the current directory.
- `--vhdxgz`: Output backup.ext4.vhdx.gz to the current directory.
clean
- Uninstall that instance.
help
- Print this usage message.
>{InstanceName}.exe
[root@PC-NAME user]#
>{InstanceName}.exe run uname -r
4.4.0-43-Microsoft
>{InstanceName}.exe runp echo C:\Windows\System32\cmd.exe
/mnt/c/Windows/System32/cmd.exe
>{InstanceName}.exe config --default-user user
>{InstanceName}.exe
[user@PC-NAME dir]$
>{InstanceName}.exe config --default-term wt
Updating Manjaro doesn't require you to download and install a newer release everytime. Usually all it takes is to run the command below to update the instance.
$sudo pacman -Syu
Sometimes updates may fail to install. You can try the command below in such a situation.
$sudo pacman -Syyuu
You may need to install a newer release if additional features have been added/removed from the installer.
If you have used Scoop to install Manjaro, you can use it to update to a newer release.
scoop update manjarowsl
>Manjaro.exe clean
export to backup.tar.gz
>Manjaro.exe backup --tgz
export to backup.ext4.vhdx.gz
>Manjaro.exe backup --vhdxgz
There are 2 ways to do it.
Rename the backup to rootfs.tar.gz and run Manjaro.exe
(or)
.tar(.gz)
>Manjaro.exe install backup.tar.gz
.ext4.vhdx(.gz)
>Manjaro.exe install backup.ext4.vhdx.gz
You may need to run the command below in some circumstances.
>Manjaro.exe --default-uid 1000
Docker, tar, zip, unzip, bsdtar 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
Install docker.
sudo pacman -S docker
Follow this blog post for further details on how to set it up.