WSL 2
As of 13.8.21, WSL 2 is also available, with a currently more complicated install: https://docs.microsoft.com/en-us/windows/wsl/install-win10
WSL 2 uses a virtual machine in order to run the actual Linux kernel, this is meant to improve performance across the board. Probably best to use this.
Resolve issues: as of Aug 2021 the WSL machine can connect to external IPs but not resolve names.
Check out /etc/resolv.conf – you can disable autoupdating, then remove it (it's a symlink) and replace it with something sane (nameserver 8.8.8.8 for a start).
But that may not help. This did: https://gist.github.com/sivinnguyen/8bc0125b274250683a97e149cf270040 but it nuked my Windows network settings, which can be reapplied from run → ncpa.cpl. For some reason the new Win 10 network settings couldn't change the IP address.
Install Windows Terminal from the Windows Store. Hopefully you have saved a profile at some point or can export it(settings.json).
WSL 1
- Control Panel > Programs and Features > Turn Windows Features On Or Off
- Enable “Windows Subsystem for Linux”
- Restart
- Microsoft store > search for “Debian” > Get (need to disconnect VPN or create an account)
- Launch from the start menu
- Fix screen:
The directory /var/run/screen/ is the socket directory for screen.
Fortunately, screen reads a environment variable SCREENDIR to get an alternative socket directory.
So to work around it, you can create a directory, such as ~/.screen:
mkdir ~/.screen && chmod 700 ~/.screen
and export the SCREENDIR to point to that directory:
export SCREENDIR=$HOME/.screen
You can also put this line into your ~/.bashrc so that it will also take effect afterwards.
Samba
You can't automatically access Windows network drives, even if they are mapped to a letter (20.6.20).
/etc/fstab:
\\alan\huge /mnt/y drvfs user,uid=1000,gid=1000 0 0
This ought to automount when WSL is fired up, but something[TM] needs to start it if you want to run rsync from cron.
cron
Add to the end of /etc/sudoers:
%sudo ALL=NOPASSWD: /etc/init.d/cron start
Roughly, follow https://blog.snowme34.com/post/schedule-tasks-using-crontab-on-windows-10-with-wsl/index.html although I think there was a lot of fighting to create the link:
Next, type shell:startup in the Run and explorer will open the startup folder.
Create a shortcut to wsl.exe and edit the properties as following:
C:\Windows\System32\wsl.exe sudo /etc/init.d/cron start