WSL CHECKING VERSION. Tricky! You want version 2. I think "version 2" == 1.2.x. Windows version < 10.0.18917 (via "ver") has v 1. Generally AFTER enabled per below: wsl -v # wsl -l -v for instance-specific versions But sometimes does not work if you have version 1. Final check: wsl uname [-r|a] # if kernel version >= 4.19 you have v2. Though wsl.exe is available, runs, and "wsl -l -o" works just fine, it is still disabled by default. Must enable the optional feature under Settings / Apps > Optional Features, More Windows Features. OR PS: enable-windowsoptionalfeature -online -featurename microsoft-windows-subsystem-linux then REBOOT! If version < 1.2 then update! wsl --update No systemd according to docs, but systemd package is present. ??? Dedicated ext4 disks. Generally available? Try to use for thumb drive. https://broersma.dev/how-to-use-dedicated-disks-in-wsl/ ArchLinux install: GOTCHA: Even after following wsl installation instructions to get v2, you must still run wsl --update [I did not get wslg until I did this] https://wsldl-pg.github.io/ArchW-docs/How-to-Setup/ # I did Method 1: zip file. Unzip the zip anywhere into where you want our "ext4.vhdx" to be created. Wipe the zip file; Rename Arch.exe to inst_id.exe. Run the executable (from anywhere). Wipe the rootfs file. RETAIN the *.exe file because it still has useful commands! # GOTCHA! Try without this. Maybe I forgot to reboot after enabling WSL feature? On my Win 10 system I also had to enable these 2 features then reboot to avoid 0x80370114 failures: 'Virtual Machine Platform', "Windows Hypervisor Platform' per https://superuser.com/questions/1736443/wsl-2-installing-linux-failed-error-code-0x80370114 N.b. this installer writes "ext4.vhdx" right to directory containing the *.exe file. VHDs use ext4 and are on Windows FS as "ext4.vhdx" files under %LOCALAPPDATA% (~/AppData/Local). NO!! For me the file is created directly where the installer is run from (possibly where installer executable resides). (Get-ChildItem -Path HKCU:\Software\Microsoft\Windows\CurrentVersion\Lxss | Where-Object { $_.GetValue("DistributionName") -eq '' }).GetValue("BasePath") + "\ext4.vhdx" By default each file is initially allocated virtual 1TB Max. In reality I see that it shows up as 256G. Check WSL disk space from PS: wsl.exe --system -d distroname df -h /mnt/wslg/distro [The main ext4 device is mounted to /; and if wslg active then also to /mnt/swlg/distro. Don't know why you would waste effort checking /mnt/sslg/distro rather than /.] Use curl to download good resolv.conf and mirrorlist from a good Linux system. Then mv /etc/resolv.conf /etc/resolv.conf.orig, and copy in good one. Then mv /etc/pacman.d/mirrorlist x.orig and copy in good one. DNS: Until I find a more dynamic way to somehow load from DHCP... vim /etc/wsl.conf. Add: [network] generateResolvConf = false date # update: date 2023... pacman-key --refresh-keys # takes about 5-10 minutes # Next 3 commands here are from "Initialize keyring" section of # https://wsldl-pg.github.io/ArchW-docs/How-to-Setup/#initialize-keyring # Some of these commands probably done automatically upon first wsl login, but definitely # at least one of the first 3 is needed: pacman-key --init pacman-key --populate pacman -Sy archlinux-keyring Create user: groupadd...; useradd... -g x -G wheel -d /mnt/c/Users/X x # with existing win home dir vim /etc/wsl.conf. Add: [user] default=blaine [back at DOS CLI:] wsl --terminate pacman --noconfirm -Syu pacman --noconfirm -R vim Install these things with pacman --noconfirm -S: openssh xorg-xclock parted rsync zip unzip gnu-netcat npm whois mlocate screen inetutils expect bind gvim #usbip not giving access to USB devices usbutils Rsync over /usr/local/etc, bin Copy over beyla:/bin/genius to /usr/local/bin/ When df shows 1,802M used, ext4.vndx file is 1914 MiB, Win side shows 861.03 GB free I dun a dd command to copy in 256 MB more and it becomes... 2,314M used, ext4.vndx file is 1914 MiB, Win side shows 637.94 GB free USB DRIVES Not working yet, but what I've tried is https://learn.microsoft.com/en-us/windows/wsl/connect-usb then from the lsusb bus and device enumbers, /dev/bus/usb/X/Y. These are character devices and do not give access to the drive contents! also from "dmesg". Nothing gives any indication of an actual usable device. DiskInternals looked useful to get RO to Linux partitions, but critical limitations: Can only read root btrfs partitions, no sub-partitions. Can't read LVM partitions at all. When it does mount a partition to a drive (at least a btrfs, and probably all), that does not become available under lsw under /mnt/x. Possible but unlikely that OOTB mouting system like FILESYSTEM1_1 would work. https://www.bleepingcomputer.com/news/microsoft/windows-10-now-lets-you-mount-linux-ext4-filesystems-in-wsl-2/ GENERAL USAGE: wsl # gets bash shell as default user set in /etc/wsl.conf wsl -u root # gets bash shell as root: ln -s /mnt/wslg/.X11-unix If X stops working, check that /tmp/.X11-unix -l /mnt/wslg/.X11-unix If not, as root remove existing /tmp/.X11-unix and: