This project is in no way related to or created by the official Alpine team or its members. It is solely a project of mine.
Alpine on WSL2 (Windows 10 FCU or later) based on wsldl.
- Increase virtual disk size from the default 256GB
- Create a new user and set the user as default
- AlpineWSL2 is based on "edge". the current development tree of Alpine Linux. It is thus a rolling release.
- AlpineWSL2 includes a wsl.conf file which only has section headers. Users can use this 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.
- If you are running Windows 10 version 2004 or higher, you can install all components required to run wsl2 with a single command. This will install ubuntu by default. More details are available here.
wsl.exe --install 
- If you are running Windows 10 lower then version 2004, follow the steps below. For more details, check this microsoft document.
- Enable Windows Subsystem for Linux feature.
 dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart - Enable Virtual Machine feature
 dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart - Download and install the latest Linux kernel update package from here.
 
- Make sure all the steps mentioned under "Requirements" are completed.
- Download installer zip
- Extract all files in zip file to same directory
- Set version 2 as default. Note that this step is required only for manual installation.
wsl --set-default-version 2
- Run Alpine.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 diffrent name and have multiple installs.
Usage :
    <no args>
      - Open a new shell with your default settings.
        Inherit current directory (with exception that %%USERPROFILE%% is changed to $HOME).
    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 [value]]
      - `--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.
      - `--wt-profile-name`: Get Profile Name from Windows Terminal
      - `--lxguid`: Get WSL GUID key for this instance.
    backup [file name]
      - `*.tar`: Output backup tar file.
      - `*.tar.gz`: Output backup tar.gz file.
      - `*.ext4.vhdx`: Output backup ext4.vhdx file. (WSL2 only)
      - `*.ext4.vhdx.gz`: Output backup ext4.vhdx.gz file. (WSL2 only)
      - `*.reg`: Output settings registry file.
    clean
      - Uninstall that instance.
    help
      - Print this usage message.
>Alpine.exe
[root@PC-NAME user]#>Alpine.exe run uname -r
4.4.0-43-Microsoft>Alpine.exe runp echo C:\Windows\System32\cmd.exe
/mnt/c/Windows/System32/cmd.exe>Alpine.exe config --default-user user
>Alpine.exe
[user@PC-NAME dir]$>Alpine.exe config --default-term wtAlpineWSL2 will ask you to create a new user during its first run. If you chose to create a new user during initial setup, the steps below are not required unless you want to create additional users.
passwd
useradd -m -g users -G sudo -s /bin/bash <username>
echo "%sudo ALL=(ALL) ALL" >/etc/sudoers.d/sudo
passwd <username>
exit
You can set the user you created as default user using 2 methods.
Open Alpine.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 Alpine.exe is installed.
>Alpine.exe config --default-user <username>
>Alpine.exe clean
export to backup.tar.gz (WSL1 or 2)
>Alpine.exe backup backup.tar.gzexport to backup.ext4.vhdx.gz (WSL2 only)
>Alpine.exe backup backup.ext4.vhdx.gzThere are 2 ways to do it.
Rename the backup to rootfs.tar.gz and run Alpine.exe
(or)
.tar(.gz)
>Alpine.exe install backup.tar.gz.ext4.vhdx(.gz)
>Alpine.exe install backup.ext4.vhdx.gzYou may need to run the command below in some circumstances.
>Alpine.exe --default-uid 1000Docker, tar, zip, unzip, bsdtar need to be installed.
git clone git@gitlab.com:sileshn/AlpineWSL2.git
cd AlpineWSL2
make
Copy the AlpineWSL2.zip file to a safe location and run the command below to clean.
make clean
