To podsystem umożliwiający uruchomienie jądra Linuxa w ramach systemu Windows. Pisałem o tym wcześniej.
Jedną z możliwości jest zainstalowanie wielu instancji jednej lub różnych dystrybucji Linuxa i wykorzystanie każdej z nich do innego celu. Każdą z instancji można inaczej skonfigurować, zainstalować inne narzędzia itp.
Można także wykorzystać je do niezaśmiecania bazowego systemu Windows. Wiele programów i narzędzi ma także linuxowe wersje (lub odpowiedniki). Każdą instancję można potraktować jako swoistą piaskownicę - takie wirtualne środowisko, odpowiednik maszyny wirtualnej z wykorzystaniem WSL. Instalując je w różnych instancjach WSL unikamy konieczności ich instalacji bezpośrednio w systemie Windows.
Używając sklepu systemowego (Microsoft Store) można zainstalować kilka dystrybucji np. Ubuntu 20.04 i Ubuntu 18.04, ale nie jest możliwe zainstalowanie kilku instancji jednej dystrybucji (np. Ubuntu 20.04). Polecam zainstalować pierwszą instancję w standardowy sposób. Ta instancja posłuży jako szablon dla następnych. Dlatego można ją wstępnie skonfigurować, zainstalować podstawowe narzędzia (np. mc), zaktualizować itp., według potrzeb i własnego uznania. Gdy pierwsza instancja jest gotowa należy utworzyć jej kopię:
wsl --export Ubuntu-20.04 D:\WSL\Ubuntu-20.04.tar
Należy zachować plik .tar - będzie służył jako szablon dla następnych instancji. Nową instancję można stworzyć importując wyeksportowany wcześniej plik tar. Aby zaimportować nową instancję o nazwie Ubuntu-20.04-2
i umieścić ją w folderze D:\WSL\Ubuntu-20.04-2
należy wykonać:
wsl --import Ubuntu-20.04-2 D:\WSL\Ubuntu-20.04-2 D:\WSL\Ubuntu-20.04.tar --version 2
Przed eksportem szablonu można także wskazać domyślnego użytkownika, na rzecz którego nastąpi logowanie do danej instancji. W tym celu należy sprawdzić czy istnieje plik /etc/wsl.conf
z wpisem:
[user]
default=abcde
gdzie abcde
to nazwa użytkownika.
Uruchomienie konsoli danej dystrybucji:
wsl -d Ubuntu-20.04
Wypisanie zawartości pliku:
cat /etc/wsl.conf
a jeżeli taki plik nie istnieje lub nie zawiera właściwego wpisu:
echo -e "[user]\ndefault=abcde" >> /etc/wsl.conf
W przypadku, gdy mamy do czynienia z instancją, która nie ma właściwego wskazania domyślnego użytkownika, można to skonfigurować także w zaimportowanej instancji:
wsl -d Ubuntu-20.04-2
usermod -aG sudo abcde
echo -e "[user]\ndefault=abcde" >> /etc/wsl.conf
exit
Istnieje możliwość zainstalowania innych wersji dystrybucji Linuxa niż te udostępnione w Microsoft Store. Należy pobrać odpowiedni obraz dystrybucji - w przypadku Ubuntu poszukiwania zaczynamy na stronie i poszukujemy pliku amd64-wsl.rootfs.tar.gz odpowiedniej wersji. Dla 21.10 będzie to ubuntu-21.10-server-cloudimg-amd64-wsl.rootfs.tar.gz.
Należy go pobrać, a następnie zaimportować:
wsl --import Ubuntu-Test D:\WSL\Ubuntu-Test D:\WSL\ubuntu-21.10-server-cloudimg-amd64-wsl.rootfs.tar.gz
wsl -l -v
wsl -d Ubuntu-Test
adduser abcde
usermod -aG sudo abcde
echo -e "[user]\ndefault=abcde" >> /etc/wsl.conf
exit
wsl -t Ubuntu-Test
wsl -d Ubuntu-Test
Z jednego szablonu można utworzyć wiele instancji WSL. W każdej z nich można zainstalować inny zestaw narzędzi i programów lub różne zestawy ich wersji - w zależności od potrzeb. Jest to szczególnie przydatne, gdy często używamy różnych wersji oprogramowania, a jednoczesna instalacja tych wersji jest kłopotliwa.