Zo draai je Linux direct in Windows

© PXimport

Zo draai je Linux direct in Windows

Geplaatst: 20 augustus 2021 - 09:14

Aangepast: 14 december 2022 - 10:20

Toon van Daele

Je wilt af en toe met Linux aan de slag, maar om daar nou telkens een dualboot-installatie voor aan te spreken … Het is veel comfortabeler om Linux-commando’s en zelfs Linux-applicaties direct vanuit je vertrouwde Windows-omgeving te gebruiken. Dat kan met WSL (Windows Subsysteem voor Linux). Linux dat direct onder Windows draait, wie had dat ten tijde van Windows XP en Windows 7 kunnen denken?

WSL is een compatibiliteitslaag voor Windows 10 waarmee je een Linux-omgeving rechtstreeks in Windows draait, zonder verdere modificaties en zonder (aanvullende) hypervisor of dualboot-configuraties. WSL biedt een volwaardige Linux-omgeving en integreert zich naadloos in Windows.

De eerste versie van WSL kwam in 2016 uit (Windows 10 1709 64 bit), maar dat bleek weinig meer dan een Linux-compatibele kernelinterface waarin Linux-commando’s simpelweg naar de overeenkomstige systeemfuncties van Windows werden omgezet. WSL 1 leek dus wel op Linux, maar was het niet.

Sinds medio 2019 bracht Microsoft daarom opvolger WSL 2 uit en deze bevat wel degelijk een heuse Linux-kernel. WSL 2 maakt complexere Linux-commando’s mogelijk en zorgt voor een snellere bestandsafhandeling. Met deze opzet mikt Microsoft vooral op de grote schare Linux-ontwikkelaars die Windows als desktop-OS willen blijven gebruiken.

01 Installatie WSL

In het kader ‘Insider Preview’ lees je hoe je WSL 2 in principe met nauwelijks meer dan een commando kunt installeren, maar die methode is vooralsnog voorbehouden voor Windows Insider Preview build 20262 en hoger. We gaan ervan uit dat je met een ‘reguliere’ Windows 10-versie werkt. De WSL 2-installatie vergt dan net iets meer inspanning. Controleer voor alle zekerheid of je wel met Windows 10 64 bit versie 1903 (build 18362) of hoger werkt – dat vertelt het commando ver in de opdrachtprompt je wel.

Voor je Linux-distributies kunt installeren in Windows, moet je eerst WSL zelf inschakelen. Dat kan als volgt. Klik in het Windows-startmenu met rechts op Windows PowerShell en kies Als administrator uitvoeren. Na je bevestiging voer je het volgende uit in het PowerShell-venster:

dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart

Als het goed is, verschijnt even later de melding “The operation completed successfully”, waarna je Windows herstart. In feite is WSL 1 nu al geïnstalleerd, maar je hebt natuurlijk liever de échte Linux en dat vergt nog enkele extra installatiestappen.

Mocht je WSL naderhand weer willen verwijderen, dan kan dat met het commando:

Disable-WindowsOptionalFeature -Online -FeatureName Microsoft-Windows-Subsystem-Linux

 

© PXimport

Alternatieven

 

© PXimport

02 Installatie VM-platform

Wat we je nog niet verteld hebben (maar wat wel al uit de eerste afbeelding valt af te leiden), is dat de Linux-kernel van WSL2 de installatie vereist van een hypervisor, een virtuele machinebeheerder. WSL 2 gebruikt daarvoor een lichtgewicht VM op basis van Hyper-V en die zit al in Windows ingebouwd, ook in Windows Home.

Maak je overigens niet te veel zorgen: je hoeft weinig meer te doen dan die in te schakelen, verder heb je eigenlijk geen omkijken meer naar deze virtuele omgeving. Ook dit VM-platform kun je inschakelen vanuit een PowerShell-venster dat je als administrator hebt opgestart:

dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart

Als het goed is, verschijnt ook deze keer heel snel de melding dat de operatie succesvol verlopen is, waarna je Windows nogmaals herstart.

 

© PXimport

03 Update Linux-kernel

Om er zeker van te zijn dat je met de nieuwste Linux-kernel aan de slag gaat, download je die via de link www.tiny.cc/wslx64. We gaan er wel van uit dat je met een x64-systeem werkt. Mocht je over een ARM64-systeem beschikken, dan heb je de kernel nodig via www.tiny.cc/arm64.

Met een dubbelklik op het msi-bestand start je de installatie: druk op Next, bevestig met Ja en rond af met Finish. Je wilt met WSL 2 aan de slag, dus stel je die in als standaardversie van WSL. Dat doe je vanuit een PowerShell-venster dat je als administrator opstart, met het commando:

wsl --set-default-version 2

 

© PXimport

04 Installatie Linux-distro

Nu is alles gereed voor de installatie van een heuse Linux-distributie. Immers, wanneer je het commando wsl --list --all uitvoert, zie je dat er voor WSL momenteel nog geen distributies zijn geïnstalleerd. Zo’n installatie vergt een bezoekje aan www.aka.ms/wslstore, of je opent zelf de Microsoft Store vanuit het Windows-startmenu en tikt in de zoekbalk rechtsboven Linux in. Er verschijnen verschillende opties, maar wij gaan voor de installatie van Ubuntu 20.04 LTS. In het kader ‘Insider Preview’ lees je dat er nog andere distro’s zijn voor WSL, maar op het moment van schrijven was Ubuntu 21.04 (LTS) nog niet beschikbaar.

Klik dus maar op Ubuntu 20.04 LTS en druk op de knop Downloaden en vervolgens Installeren (ca. 450 MB). Na afloop druk je op de knop Starten, of je start Ubuntu 20.04 LTS op vanuit het Windows-startmenu. De eerste keer dat je een pas geïnstalleerde Linux-distro start, opent een consolevenster en moet je even wachten tot alle benodigde bestanden zijn uitgepakt op je systeem. Vervolgens wordt je om een new UNIX username gevraagd. Die hoeft niet dezelfde te zijn als je Windows-account, maar je gebruikt het best alleen kleine letters zonder spaties. Geef ook een wachtwoord op.

 

© PXimport

Insider Preview

 

© PXimport

05 Installatie Windows Terminal

Toegegeven, deze stap is optioneel, maar biedt wel een handig en veelzijdiger alternatief voor de standaard Ubuntu-terminal: de installatie van de nieuwe Windows Terminal. Ook dit kan vanuit de Microsoft Store. Zoek hier naar Terminal, klik op Windows Terminal en volg de verdere installatie-instructies.

Standaard opent deze Terminal een PowerShell-console, maar via het pijlknopje komen andere opties beschikbaar, waaronder Command Prompt en Ubuntu-20.04. Klik deze laatste aan om een Ubuntu-shell in een nieuw tabblad te openen. Klik nogmaals op het pijlknopje en kies Settings. Hier kun je eventueel Ubuntu-20.04 als Default profile instellen en het standaard aantal rijen en kolommen vastleggen.

 

© PXimport

GUI-installatie

06 Basiscommando’s

Vanuit deze console kun je ook nagaan of je wel de juiste Ubuntu-versie hebt geïnstalleerd, met uname -a of lsb_release -a.

Verder doe je er goed aan om na de installatie van een distro bronpakketinformatie te downloaden via sudo apt update. Het extra commando sudo staat voor ‘superuser do’ en geeft je de nodige machtigingen om systeemcommando’s op rootniveau te gebruiken. Wanneer je vervolgens apt list –upgradable uitvoert, krijg je een overzicht van de pakketten die in aanmerking komen voor een upgrade. De upgrade zelf voer je dan uit met sudo apt --only-upgrade install <pakketnaam>, bijvoorbeeld sudo apt --only-upgrade install. Om alle pakketten in één keer te upgraden, gebruik je sudo apt upgrade waarna je met y bevestigt.

Een van de standaard geïnstalleerde pakketten is bijvoorbeeld een simpele webserver die je met één commando activeert: python3 -m http.server. Door vervolgens op die pc naar http://localhost:8000 te surfen, krijg je de inhoud van de servermap te zien.

Een compleet nieuw pakket installeren kan ook, met sudo apt install <pakketnaam>. Een leuk voorbeeld is sudo apt install imagemagick. Twijfel je over de juiste naam, dan helpt apt search <zoekterm> je wel op weg. ImageMagick is een krachtige functiebibliotheek voor fotomanipulatie (zie ook www.imagemagick.org/index.php). We houden het hier bij één voorbeeldje:

convert foto1.jpg -crop 800x600+0+0 -rotate 45 foto2.jpg

Dit commando snijdt een foto uit volgens de opgegeven afmetingen en offset, en roteert die vervolgens 45 graden, waarna het resultaat in een ander fotobestand wordt bewaard.

&nbsp;

© PXimport

07 Configuratie

We hebben tot nu toe maar één Linux-distributie onder WSL geïnstalleerd (Ubuntu), maar je kunt er op vergelijkbare manier nog andere installeren. Een distro verwijderen is ook altijd mogelijk, met wsl –-unregister <distributienaam>. Je moet dan wel beseffen dat je langs deze weg alle instellingen, data en software verwijdert die rechtstreeks aan die distro zijn gekoppeld. Een ‘verse’ (her)installatie is uiteraard nog altijd mogelijk.

Heb je meerdere gebruikers gecreëerd in een distributie (met sudo adduser <gebruikersnaam>), dan start je die met wsl –-user <gebruikersnaam> voor die gebruiker op. Gebruik het commando <distributienaam> config -default-user <gebruikersnaam> om die distro standaard met een bepaalde gebruiker op te laten starten.

Voor meer geavanceerde configuratie-instellingen kun je nog terecht op www.tiny.cc/wslcfg, onder meer voor het standaard koppelen van stations, waarbij je het configuratiebestand /etcs/wls.conf desnoods zelf creëert (vanuit Ubuntu) met bijvoorbeeld nano /etc/wsl.conf. Of je creëert een globaal configuratiebestand .wslconfig in de map %userprofile%, bijvoorbeeld om de optimale hoeveelheid swapruimte, geheugen en processorkernen toe te kennen aan WSL 2. Meer feedback hierover vind je op www.tiny.cc/wslglob.

&nbsp;

© PXimport

08 Wisselwerking

We zeiden al dat Linux via WSL mooi geïntegreerd is in Windows. Dat zie je vanaf Windows 10 build 19603 ook terug in de Verkenner: het navigatievenster heeft er namelijk een herkenbaar icoontje (pinguïn) bijgekregen, waar je in de mappenstructuur van de geïnstalleerde Linux-distro’s kunt navigeren.

Verder kun je de inhoud van het klembord tussen Linux en Windows delen, en Windows-tools rechtstreeks vanuit de WSL-opdrachtregel opstarten: probeer het maar eens met notepad.exe of explorer.exe. Deze Windows-tools worden trouwens op dezelfde manier als native Linux-tools behandeld, zoals uit het volgende voorbeeld blijkt:

ipconfig.exe | grep IPv4 | cut -d: -f2

Hierbij wordt de uitvoer van het Windows-commando beperkt (grep) tot de regels met 'IPv4' en vervolgens worden de ongewenste kolommen weggeknipt (cut).

Ook in de omgekeerde richting zet deze wisselwerking zich door. Je kunt namelijk ook Linux-binary’s vanaf de opdrachtprompt of vanuit PowerShell uitvoeren, via het commando wsl. Om de actuele mapinhoud op te vragen, kun je bijvoorbeeld wsl ls -la uitvoeren, en om je standaard Linux-distributie te updaten hoef je maar wsl sudo apt-get update in te tikken. En ook hier kun je commando’s mixen, bijvoorbeeld:

dir | wsl grep <tekstdeel> of wsl ls -la > mapinhoud.txt.

&nbsp;

© PXimport

09 Docker (installatie)

Omdat in WSL 2 een volwaardige Linux-kernel actief is, kun je het gerust ook wat ambitieuzer aanpakken. Wat dacht je van het draaien van heuse Docker-containers?

Download en installeer eerst Docker Desktop for Windows. Zorg dat je het vinkje laat staan bij Install required Windows components for WSL 2 en bevestig met OK. Herstart Windows na de installatie.

Er zijn nu verschillende manieren om na te gaan of Docker Desktop wel degelijk WSL 2 gebruikt. Je kunt hiervoor Docker Desktop opstarten vanuit het Windows-startmenu. Klik vervolgens op het tandwielpictogram en open de rubriek General. Hier zou een vinkje moeten staan bij Use the WSL 2 based engine. In de rubriek Resources / WSL Integration hoort er een vinkje te staan bij Enable integration with my default WSL distro en eventueel ook bij specifieke distro’s (onder additional distros).

Het is overigens geen slecht idee om via de knop Start de tutorial te volgen. Die leidt je in vier stappen door het proces van het klonen van een repository, het bouwen van een image, het opstarten van een container en, na je aanmelding bij Docker Hub, het bewaren en delen van je image.

&nbsp;

© PXimport

10 Docker (gebruik)

Laten we nu bij wijze van experiment ook zelf een container-image downloaden van de officiële Docker Hub. We hebben ons oog laten vallen op NGINX, een opensource-tool die uiteenlopende services kan hosten, zoals een webserver of een mediastreamer.

We zetten daarvoor Windows PowerShell in. Hier voer je het commando docker pull nginx uit. Na afloop tik je docker images in voor een lijst met images die op je pc beschikbaar zijn. Vervolgens creëer je een nieuwe container, gebaseerd op het gedownloade NGINX-Docker-image:

docker run –-name docker-nginx -p 80:80 -d nignx

Je krijgt nu de unieke ID van de zonet gecreëerde container te zien en zou de NGINX-webinterface moeten kunnen benaderen via http://localhost[:<poortnummer>]. Om een Docker-container te stoppen, voer je docker stop docker-nginx uit (of docker stop <minimaal-12-eerste-tekens-van-het-id>).

&nbsp;

© PXimport

11 WSLg (introductie)

Microsoft heeft duidelijk nog meer in petto voor WSL. Zo kunnen Windows Insider-gebruikers met Windows Preview build 21364 en hoger Linux GUI-apps (graphical user interface) direct in Windows gebruiken. Dit project kreeg de naam WSLg mee; voor een korte introductievideo kun je terecht op

.

WSLg beschikt trouwens ook al over ingebouwde ondersteuning voor gpu-versnelde 3D-graphics. Het is dan wel verstandig om vGPU (virtual GPU) voor WSL ingeschakeld te hebben. Je vindt hiervoor de nodige instructies en drivers voor zowel AMD, Intel als NVIDIA op www.bit.ly/miwslg.

WSLg zit standaard al in WSL 2 als je wsl --install hebt uitgevoerd (zie kadertekst ‘Insider Preview’), bij voorkeur gevolgd door wsl –update (en wsl –shutdown, voor een herstart).

WSlg blijkt al behoorlijk goed geïntegreerd in Windows. Zo is het mogelijk om Linux-apps vanuit het Windows-startmenu op te starten. Ook kun je deze apps vastpinnen op de Windows-taakbalk. Met de toetscombinatie Alt+Tab schakel je snel om tussen opgestarte Windows- en Linux-applicaties, en ook het klembord wordt netjes gedeeld.

&nbsp;

© PXimport

12 WSLg (voorbeelden)

Voldoet je systeem aan alle voorwaarden en heb je WSL correct geïnstalleerd, dan kun je eigenlijk al meteen aan de slag met Linux GUI-apps. De volgende voorbeelden kunnen je wellicht inspireren.

Laten we beginnen met de installatie van Nautilus, de grafische bestandsmanager voor de GNOME-desktop. De installatie vergt slechts één commando: sudo apt intall nautilus -y. Na afloop start je de tool met het commando nautilus.

Met hetzelfde gemak installeer je ook Gedit (de standaard teksteditor van GNOME): sudo apt install gedit -y. Om een tekstbestand te bewerken, typ je gedit <pad_naar_bestand>.

Of wat dacht je van GIMP, de opensource-editor voor rasterafbeeldingen? Ook die installeer je via sudo apt install gimp -y en start je simpelweg op met gimp. Hetzelfde geldt voor de VLC media player (sudo apt install vlc -y en vlc) en voor X11 apps, het venstersysteem inclusief een leuke app-collectie (sudo apt install x11-apps y), waarna je de diverse apps kun opstarten met xclock, xeyes, xcalc enz.

Wist je dat ook Microsoft Edge onder Linux draait? Die installeer je als volgt in WSL:

sudo curl https://packages.microsoft.com/repos/edge/pool/main/m/microsoft-edge-dev/microsoft-edge-dev_91.0.852.0-1_amd64.deb -o /tmp/edge.deb

Opstarten doe je met microsoft-edge.

&nbsp;

© PXimport

Deel dit artikel
Voeg toe aan favorieten