Windows Subsystem for Linux (WSL)

Vor längerer Zeit hat Microsoft bereits angekündigt Linux von Haus aus mit Windows 10 zu unterstützen. Mittlerweile hat sich das mit dem Release 1909 bewahrheitet. Es ist mit WSL möglich, wie mit einer Virtuel Machine unter WIndows Linux Programme auszuführen. Das hat den Vorteil, dass man dafür keine eigene virtuelle Maschine mehr installieren braucht. Mittlerweile steht auch schon WSL2 zur Verfügung, für die allerdings der Hypervisor aktiviert sein muss. Hier beziehe ich mich aber auf WSL. Unterschiede der Versionen findet man hier.

Wichtig für die Feststellung des WSL Funktionsumfanges ist die aktuell verwendete Windows Version. Diese bekommt man, indem man in der CMD Shell WinVer.exe aufruft.

Allerdings hab eich noch einen anderen Rechner, der noch auf der Version 1909 installiert hat. Deswegen werde ich mit dieser Windoes 10 version anfangen. Um WSL verwenden zu können muss in der Powershell mit Adminrechten gearbeitet werden. Diese wird mit dem Punkt Power-Sehll (Administrator) im [WIN]-[X] Menu gestartet. In der Powershell kann man mit systeminfo überprüfen, dass die der Hypervisor aktiviert ist.

Falls nicht, kann dieser mit dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart und einem reboot aktiviert werden. Um zu überprüfen, ob WSL installiert ist, reicht schlicht die EIngabe von WSL.exe aus. Sollte WSL nicht verfügbar sein, so kann dies über einen WSL-Patch nachinstalliert werden. Weitere Informationen dazu findet man auch auf der Microsoft Seite. Mit wsl –set-default-version 2 kann auf WSL2 umgeschaltet werden. Unter Win 21H2 reicht es einfach aus wsl.exe –install und einen reboot auszuführen.

Damit nun ein Linux mit WSL gestartet werden kann, muss es erst noch installiert werden. Dazu kann schlicht über die Store Seite zB Ubuntu heruntergeladen werden. Alternativ kann das Paket auch über die Command-Line Invoke-WebRequest -Uri https://aka.ms/wslubuntu2004 -OutFile Ubuntu.appx -UseBasicParsing geladen und mit Add-AppxPackage .\Ubuntu.appx installiert werden. Unter Win 21H2 kann einfach mit wsl -l -o alle verfügbaren Versionen aufgelistet werden:

Mit wsl –install -d Ubuntu wird diese Version aus dem Internet direkt installiert. In einem extra Fenster wird man aufgefordert Username und zweimal passwort einzugeben. Dann befindet man sich schon in der Ubuntu Shell. Mit exit kann man die Shell wieder verlassen. Nun sollte unter wsl -l die installierten Linux Versionen angezeigt werden.

So lange es die einzige Installation ist, sollte sie als Standard gekennzeichnet sein und es reicht aus, diese schlicht mit dem Befehl wsl.exe zu starten. Dies kann mit wsl.exe -set-default <Distrubution> geändert werden. Mit wsl.exe –help erscheint die Befehlsübersicht. Mit wsl.exe –unregister Ubuntu kann diese Installation wieder entfernt werden. Auch kann eine Installation als zip Datei exportiert wsl –export Ubuntu und importiert wsl –import Ubuntu.tar werden. Ein update von wsl wird mit wsl.exe –update und wsl –shudown ausgeführt. Interessant ist noch die Distribution nach WSL2 zu konvertieren mit wsl –set-version Ubuntu 2.

Für eine optimale Einrichtung des Betriebes bei mir, hab ich unter Ubuntu noch folgende Installationen ausführen müssen, nachdem Ubuntu mit wsl.exe -d Ubuntu gestartet wurde:

sudo apt update
sudo apt install mc
sudo apt install ssh
sudo apt install cmake
sudo apt install subversion
sudo apt install corkscrew
sudo apt install net-tools
sudo apt install snmp
sudo apt install libsnmp-dev
sudo apt-get install x11-apps
sudo apt install thunderbird
sudo apt install filezilla
sudo apt install remmina

Für SSH hab ich noch folgenden Einstellungen geändert mit sudo nano /etc/ssh/sshd_config:

  • PermitRootLogin no
  • AllowUsers <yourusername>
  • PasswordAuthentication yes
  • UsePrivilegeSeparation no
  • ListenAddress 0.0.0.0
  • Port 2200
  • X11Forwarding yes
  • X11DisplayOffset 10
  • X11UseLocalhost no

Danach den Service neu gestartet:

sudo /etc/init.d/ssh stop
sudo /etc/init.d/ssh start
sudo service ssh –full-restart

Zum Testen der SSH verbindung, habe ich in einer Windows Shell den Befehl getestet:
ssh andre@127.0.0.1 -p 2200

Damit ich auch XWindow unter WSL2 nutzten kann hab ich in der Datei nano .bashrc das eingetragen:

  • export DISPLAY=$(route.exe print | grep 0.0.0.0 | head -1 | awk ‚{print $4}‘):0.0

Unter WSL1 ist es schlicht export DISPLAY=:0

Eventuell muss noch in firewall.cpl XMing für alle Verbindungen freigegeben werden, sowohl privat, als auch öffentlich.

Damit die XFenster auch ein Ziel unter Windows haben, muss noch der XServer XMing unter Windows installiert werden.

Die Windows Laufwerke befinden sich unter /mnt/c, /mnt/d usw.

Ein paar spezielle Einstellungen noch für ein SSH Tunnel:

nano connect.sh:
ssh -X -o ProxyCommand=’/usr/bin/corkscrew de.coia.siemens.net 9400 %h %p‘ -D 8090 -L9080:127.0.0.1:22 pi@xxxxxxxx.firewall-gateway.de -p 443
mkdir .ssh
nano.ssh/myAuth:
[proxy username]:[proxy passwort]

Remmina Settings:
Basic Tab:
– rdp
– server: 192.168.178.xxx:9080
SSH Tunnel Tab:
– custom: 127.0.0.1:9080
– Username: pi
– Password authentication

Filezilla Settings
sftp server 127.0.0.1:9080
Thunderbird settings:
Menu->perfereferences->connections->Settings-Manual->proxy->configuration->Socks Host: 127.0.0.1:8090

Interessant ist WSL in Kombination mit docker. Dafür muss aber die WSL Distribution auf WSL2 umgestellt werden mit wsl --set-version Ubuntu 2. Der Befehl wsl -l -v zeigt die aktuelle Version der Distribution. Damit das funktioniert muss das Fwature dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart aktiviert und neu gestartet sein.

Links:
https://docs.microsoft.com/de-de/windows/wsl/install-win10
https://wslstorestorage.blob.core.windows.net/wslblob/wsl_update_x64.msi
ttps://aka.ms/wslstore
https://sourceforge.net/projects/xming/
https://sourceforge.net/projects/xming/
https://itzwieseltal.wordpress.com/2021/10/27/docker-einstieg/

Kommentar verfassen

Trage deine Daten unten ein oder klicke ein Icon um dich einzuloggen:

WordPress.com-Logo

Du kommentierst mit Deinem WordPress.com-Konto. Abmelden /  Ändern )

Twitter-Bild

Du kommentierst mit Deinem Twitter-Konto. Abmelden /  Ändern )

Facebook-Foto

Du kommentierst mit Deinem Facebook-Konto. Abmelden /  Ändern )

Verbinde mit %s

Diese Seite verwendet Akismet, um Spam zu reduzieren. Erfahre, wie deine Kommentardaten verarbeitet werden..