GitHunt
VI

Vinfall/VenomWSL

Venom Linux as a WSL instance.

VenomWSL

Venom Linux on WSL2 powered by wsldl.

Disclaimer

THIS REPO IS NOT AFFILIATE TO THE OFFICIAL "VENOM LINUX" DISTRIBUTION IN ANY WAY!

Install

  1. Download installer zip from releases
  2. (Optinally) verify hash to avoid file corruption
  3. Extract all files in zip file to same directory (e.g. D:\WSL\Venom)
  4. Run Venom.exe to extract rootfs and Register to WSL

Venom.exe is used as WSL distro label.
It's possible to have multiple installs by renaming it to something like Vemon.exe.

Init

# Update system to latest as it's rolling release
scratch sync
scratch outdate
scratch sysup -y
# Check integrity just in case
scratch integrity
# Check broken packages
revdep

Then follow Configuring system.
Skip things like fstab, kernel and bootloader as WSL covers that already.
You don't need to enter chroot environment as well
since the installation (importing the tarball) is done during #Install.

You may also want to enable nonfree repo in /etc/scratch.repo
and setup package aliases in /etc/scratchpkg.alias
to avoid compiling certain packages from source.

For example, use rust binary as compiling is resource consuming.

echo 'rust rust-bin' | sudo tee -a /etc/scratchpkg.alias

Usage

Click to expand

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.

Uninstall

.\Venom.exe clean

Build

VenomWSL can be built on GNU/Linux or WSL.

curl, bsdtar, jq and unzip is required for build.

By default it builds s6 variant.
To use SysV/runit, change $(BASE_URL_S6) respectively in Makefile.

# Install build tools
sudo apt install -y curl libarchive-tools jq unzip
# Make release
# Use `sudo` here as partitions mounted via WSL are owned by current user
# (e.g. UID 1000) but rootfs requires root aka. UID 0
sudo make
# Clean-up using `sudo` as some files are owned by root
sudo make clean

Backup

It's suggested to compact the volume first as WSL does not free the space automatically:

wsl --shutdown
cd "path\to\WSL\Venom"
# requires Hyper-V feature
Optimize-VHD -Path .\ext4.vhdx -Mode Retrim -Confirm -Whatif # dry run
Optimize-VHD -Path .\ext4.vhdx -Mode Retrim -Confirm

wsldl backup mentioned in #Usage is recommended
as it does not require extra tools,
but you can use whatever method you like.

You can use native wsl --export + zstd to compress much faster:

wsl --shutdown
# you need to install ZSTD on Windows (NOT inside WSL!)
cmd /c "wsl --export Venom - | zstd -T0 -o Venom-$(Get-Date -UFormat "%Y%m%d").tar.zst"

It's even possible to use bash+zstd via cosmoscc
to avoid ZSTD on Windows or PowerlessShell:

bash-5.2$ wsl.exe --export Venom - | zstd -T0 -o ./Venom-$(date +'%Y%m%d').tar.zst

License

MIT

Contributors

MIT License
Created May 13, 2024
Updated February 22, 2026