Kör Linux direkt i Windows med WSL2
WSL står för Windows Subsystem for Linux och har funnits i Windows 10 sedan 2016. Det är ett system för att köra Linuxdistributioner direkt i Windows. Men med WSL översattes systemanropen i Linuxsystemet till Windows NT-kärnan. WSL byggde alltså i grund och botten på Windows. Detta gjorde att mer avancerade program inte fungerade i WSL, exempelvis Docker.
Men med WSL2 däremot kommer en riktig Linuxkärna som det går att köra i princip allt på. Inklusive Docker. Dessutom har prestandan förbättrats avsevärt.
För att kunna använda WSL2 behöver du uppdatera Windows 10 till minst
build 19041. Du ser vilken version av Windows 10 du använder genom att köra
programmet winver
.
Hos mig fungerade inte Microsofts officiella dokumentation för att installera
WSL2. Kommandot wsl
installerades aldrig. Istället gjorde jag som i de
nedanstående stegen.
Uppdatera först och främst Windows 10 till build 19041. Därefter börjar vi med att aktivera WSL med följande kommandon i Powershell (som administratör).
Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Windows-Subsystem-Linux
Starta om datorn när blir ombedd att göra så. När datorn startas och du har loggat in igen, kör du:
Enable-WindowsOptionalFeature -FeatureName VirtualMachinePlatform -Online -All
Nu måste vi starta om datorn igen innan vi går vidare. När du väl har loggat in igen sätter vi WSL2 som standard.
wsl --set-default-version 2
När du kört detta kommandot får du med största sannolikhet ett meddelande som säger: WSL 2 måste uppdateras enligt kernelkomponenten. Mer information finns på https://aka.ms/wsl2kernel. Om inte kan du hoppa över detta steget. Annars surfa in på adressen som visas och installera uppdateringen till kärnan. När detta är klart kan du köra kommandot igen för att säkerställa att du är på version 2 av WSL.
wsl --set-default-version 2
När allt är klart kan du installera valfri Linuxdistribution via Windows Store. Sök exempelvis efter Debian och installera det. När det väl är installerat startar du Debian Linux genom att söka på Debian i startmenyn.
För att kontrollera att Debian använder version 2 av WSL kan du köra följande kommando i PowerShell.
wsl --list -v
NAME STATE VERSION
* Debian Running 2
Sedan är bara att börja mecka med Linux. Behovet av en virtuell Linuxmaskin försvinner i princip helt, likaså behovet av att dualboota mellan Windows och Linux.
Docker i WSL2
Det går till och med att installera Docker genom att följa Dockers officiella dokumentation för Debian på docs.docker.com/engine/install/debian/ (om du valt Debian som distribution i WSL2 det vill säga). Vi slipper på så sätt att använda Docker Desktop för Windows.
I skrivande stund fungerar dock inte systemctl
i WSL2. Istället får man
starta Docker-demonen med sudo /etc/init.d/docker start
.
Skulle det trots allt inte gå att starta Docker i Debian i WSL2 beror det på att Debian använder en modifierad version av nftables för NAT. Men det går att använda legacy iptables istället, då fungerar Docker. Ändra till legacy iptables med (inuti Debian):
sudo update-alternatives --set iptables /usr/sbin/iptables-legacy
sudo update-alternatives --set ip6tables /usr/sbin/ip6tables-legacy
Vill man fortfarande använda Docker Desktop går att växla så att även det använder WSL2. Prestandan förbättras då avsevärt.
Kommentarer
Kommentarsfältet är modererat. Det innebär att alla kommentarer granskas av ansvarig utgivare före publicering.
Du väljer själv om du vill ange ditt riktiga namn, en pseudonym eller vara helt anonym. Ingen registrering behövs.
Relaterade artiklar
-
Var försiktig med att curl:a skript som root
Att installera program i Linux genom att omdirigera utdata från Curl till skalet är snabbt och smidigt. Men det är ack så farligt om du inte känner till programmet eller dess ursprung.
-
Vidarebefordran av SSH-agenten
SSH agent forwarding, eller vidarebefordran av SSH-agenten, innebär att man kan vidarebefordra SSH-agenten till ett fjärrsystem. På så sätt behöver man inte kopiera sin privata SSH-nyckel till fjärrsystemet, eller skapa flera nycklar för olika system. Men det finns risker med det.
-
Jenkins som ett alternativ till Ansible Tower
Ansible Tower kommer med en stor prislapp, speciellt för ett mindre företag eller en privatperson. AWX å andra sidan är helt fritt, men kräver numera Kubernetes. För den som vill automatisera sina Ansible Playbooks går det dock bra att använda Jenkins som en ersättning för Tower och AWX.
-
Hämta data från API:er med cURL och jq
Med cURL och jq går det att extrahera data från API:er direkt från kommandoraden. Jq är en JSON-tolkare och beskrivs av utvecklarna som sed och awk för JSON.
-
Det nya Docker Compose
Sedan i mitten av förra året har det gamla Python-baserade
docker-compose
-kommandot sakta ersatts av det nyare Go-baseradedocker compose
. Det nya kommandot är ett plugin till Docker istället för ett fristående kommando som tidigare.
Senaste nyheterna och inläggen
-
Riskerna med BankID som ingen pratar om
BankID är ett säkert och smidigt sätt att identifiera sig online. Men i takt med dess ökade popularitet och användning har det blivit en svag länk – en single point of failure – på mer än ett sätt.
-
Polisernas fängelsedomar står fast
Efter tre år är målet mot de två poliser som olovligen tog sig in i en berusad mans bostad i Landskrona och misshandlade honom klart. Högsta domstolen beslutade den sjätte mars att avvisa överklagan. Fängelsedomarna för poliserna står därmed fast.
-
Tredje utgåvan av Grunderna i programmering
Den tredje utgåvan av Grunderna i programmering är nu klar och planeras att ges ut i mitten av mars.
-
Författarintervju med Josefin Hansson
År 2022 debuterade hon med boken “Ur askan en drake”. Boken tar upp duktiga flickan-syndromet och psykisk ohälsa. Hon har också varit ambassadör för Hjärnkoll och föreläst på bland annat Medborgarskolan. Idag driver hon eget företag inom samtalscoaching.
-
En chans att vinna Demonerna på internet
Företaget GleSYS lottar ut tre exemplar av vår bok Demonerna på internet i en tävling på LinkedIn. Passa på att tävla du också för en chans att vinna!
Utvalda artiklar
-
Datorparty i Landskrona
I helgen höll Syntax Society sitt årliga sommarparty. Platsen var en källarlokal i Landskrona där ett femtontal personer medverkade.
-
Det första Pågadata har ägt rum
I helgen ägde det första Pågadata rum – uppföljaren till Gubbdata. Platsen var Folkets Hus i Kvidinge. Organisatör av partyt var Johan “z-nexx” Osvaldsson med hjälp från Jesper “Skuggan” Klingvall. Partyt hade över 100 anmälda deltagare.
-
Även hovrätten fäller poliserna för att ha satt dit oskyldig
Hovrätten fastställer straffet för de två poliser som förra året dömdes till vardera ett års fängelse av Lunds tingsrätt för att ha misshandlat och satt dit en oskyldig man. De båda poliserna ska även betala skadestånd till mannen.
-
Retroloppis i Påarp
Idag var det retroloppis hos Andreas Nilsson i Påarp. På baksidan av huset fanns hundratals spel uppradade på långa bord. Trots friska vindar och sval temperatur var loppisen välbesökt.
-
Stort deltagande på årets Gubbdata
I helgen var det Gubbdata i Lund – ett av Sveriges största demoparty. På plats fanns cirka ett hundra deltagare, alla med en passion för retrodatorer.
CyberInfo Sverige är ett it- och medieföretag i nordvästra Skåne som tillhandahåller böcker, utbildningar, nyheter och konsulttjänster inom Linux, säkerhet och programmering.
CyberInfo Sverige är godkänd för F-skatt, är momsregistrerat och innehar
utgivningsbevis för webbplatsen www.cyberinfo.se.