wangjiangmin / ManjaroWSL

Manjaro for WSL2 using wsldl

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

ManjaroWSL

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

Screenshot-2022-02-21-162309 Screenshot-2022-02-21-162326 Screenshot-2022-02-21-162404 Screenshot-2022-02-21-162919 Screenshot-2022-02-21-162502 Screenshot-2022-02-17-125524 Screenshot-2022-02-17-125501 Screenshot-2022-02-17-111059 Github All Releases SourceForge GitHub release (latest by date) PRs Welcome License

Features and important information

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.

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

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

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.

How to setup

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

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

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 update

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

How to uninstall instance

>Manjaro.exe clean

How to backup instance

export to backup.tar.gz

>Manjaro.exe backup --tgz

export to backup.ext4.vhdx.gz

>Manjaro.exe backup --vhdxgz

How to restore instance

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

How to build from source

prerequisites

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

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

About

Manjaro for WSL2 using wsldl

License:MIT License


Languages

Language:Shell 77.8%Language:Makefile 22.2%