Slackware on WSL2 (Windows 10 FCU or later) based on wsldl.
This is a very minimal build of Slackware. The list of packages included may change from release to release. You can view the actual list of packages included in any release by downloading the package_list.txt file. This file is also created while building the distro.
SlackwareWSL2 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
SlackwareWSL2 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 Slackware.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.
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
SlackwareWSL2 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
groupadd sudo
useradd -m -g users -G sudo,wheel,floppy,audio,video,cdrom,plugdev,power,netdev,lp,scanner -s /bin/bash <username>
echo "%wheel ALL=(ALL) ALL" >/etc/sudoers.d/wheel
echo "%sudo ALL=(ALL) ALL" >/etc/sudoers.d/sudo
sed -i 's/PATH="\/usr\/local\/bin:\/usr\/bin:\/bin:\/usr\/games"/PATH="\/usr\/local\/bin:\/usr\/bin:\/bin:\/usr\/games:\/sbin:\/usr\/sbin"/g' /etc/profile
passwd <username>
You can set the user you created as default user using 2 methods.
Open Slackware.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 Slackware.exe is installed.
>Slackware.exe config --default-user <username>
The next step involves changing the default mirror to your liking. This is achieved by editing the /etc/slackpkg/mirrors
file. SlackwareWSL2 uses the default mirror provided by Slackware (http:\\slackware.osuosl.org\slackware64-15.0\)
. You can find a list of Slackware mirrors here. SlackwareWSL2 also provides a script to list the top 10 fastest slackware mirrors. You can run the script with the following command.
slack_mirrortest
After updating the /etc/slackpkg/mirrors
file with a mirror of your choice, run the command's below to update your system. Use sudo if running the command as user.
slackpkg update gpg
slackpkg update
slackpkg upgrade-all
>Slackware.exe clean
export to backup.tar.gz
>Slackware.exe backup --tgz
export to backup.ext4.vhdx.gz
>Slackware.exe backup --vhdxgz
There are 2 ways to do it.
Rename the backup to rootfs.tar.gz and run Slackware.exe
(or)
.tar(.gz)
>Slackware.exe install backup.tar.gz
.ext4.vhdx(.gz)
>Slackware.exe install backup.ext4.vhdx.gz
You may need to run the command below in some circumstances.
>Slackware.exe --default-uid 1000
Docker, tar, zip, unzip, bsdtar need to be installed.
git clone git@gitlab.com:sileshn/SlackwareWSL2.git
cd SlackwareWSL2
make
Copy the SlackwareWSL2.zip file to a safe location and run the command below to clean.
make clean