VenomWSL
Venom Linux on WSL2 powered by wsldl.
Disclaimer
THIS REPO IS NOT AFFILIATE TO THE OFFICIAL "VENOM LINUX" DISTRIBUTION IN ANY WAY!
Install
- Download installer zip from releases
- (Optinally) verify hash to avoid file corruption
- Extract all files in zip file to same directory (e.g.
D:\WSL\Venom) - Run
Venom.exeto 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
revdepThen 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.aliasUsage
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 cleanBuild
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 cleanBackup
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 -Confirmwsldl 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.zstLicense
MIT