Gibt ja hier so einige notorische Windows 10 Nutzer mit ein paar Linux-Kenntnissen... Hin und wieder könnte man das ja doch mal gebrauchen. Aber dafür extra komplett installieren? Sprich erstmal Platte umpartitonieren, und dann hat man doch nur Dualboot, man muss aber laufend wechseln...
Irgendwie doof. Ok, man könnte jetzt das eine oder das andere (Linux/Windows) in eine virtuelle Maschine packen und unter dem anderen (Windows/Linux) laufen lassen. Ist aber auch ziemlicher Aufwand.
Nunja, hab da einen Artikel gefunden und den durchgebastelt und bin einfach nur begeistert...
Also, geht das nicht einfacher?
Ja. Windows Subsystem for Linux 2 in Windows 10 2004. Jetzt werden gleich 2 Einwände kommen:
- WSL ist ja kein richtiges Linux, sondern nur ein Wrapper für Systemaufrufe auf Kernelebene nach Windows. Für WSL1 stimmt das, aber WSL2 kommt als richtige virtuelle Maschine mit einem Standardkernel.
- Unter WSL kann man ein Linux laufen lassen, aber nur im Textmodus. Stimmt. Stimmt? Microsoft hat die Unterstützung für grafische Anwendungen und Desktops von Linux zwar schon angekündigt, aber noch nicht fertig gestellt. Also geht es nicht...? Doch!
Das Zauberwort heißt "kex".
Und das geht so.
Systemvorraussetzung ist Win 10 2004 auf einer ausreichend schnellen Maschine mit genug RAM. Bei mir sinds 64 GB und "kex" belegt momentan laut Windows 10 Taskmanager rund 25 GB RAM. Wieviel das auf der Platte ausmacht, weiß ich noch nicht, weil ich nicht weiß, wo WSL die Linux-Systeme ablegt, aber geht mal davon aus, dass diese Spielerei bestimmt 10-20 GB Plattenplatz auf dem C-Laufwerk braucht. Wie ich gerade gelesen habe, soll bald auch Win 10 1909 WSL2 Unterstützung bekommen, aber das Neueste Win 10 ist eh immer das Beste, also im Zweifelsfall erstmal auf 2004 aktualisieren!
Zunächst fügt man das Feature WSL hinzu, das geht per Features Dialog in der Systemsteuerung (Programme und Funktionen) oder aus der Admin-Eingabeaufforderung heraus und legt den Default-Wert für die WSL Version auf 2 fest, das muss man aber auf jeden Fall an der Eingabeaufforderung machen:
dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart
dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart
wsl --set-default-version 2
Danach öffnet man den Windows App Store und sucht nach "Kali Linux". Kali Linux, für den, der das nicht kennt, ist ein spezialisiertes Debian-Linux für IT-Sicherheits-Leute, da sind massenweise (Hacker-)Tools drin, um z.B. im Netzwerk rumzuschnüffeln. Aber es ist ein Debian, und es ist neuerdings "Kex" mit an Board, extra für wsl... Das installiert man aus dem Appstore, das taucht dann irgendwo im Startmenü auf, man kann im Startmenü auch einfach lostippen "kali" und dann findet man das und startet es. Es fragt dann nach einem root-Passwort und macht und tut ein bischen und dann hat man eine Linux-Shell.
Jedenfalls erstmal im Text-Modus.
Nebenbei bemerkt, wusste ich auch noch nicht, unter WSL kann man Windows-Befehle starten, sofern sie im Suchpfad von Windws sind, und man muss sie mit der Datei-Endung ".exe" starten. Oder man muss sie mit komplettem Pfad angeben, auch mit ".exe" am Ende :
So kann man da heraus die Powershell, Notepad oder Winver eingeben, in dem man z.B. "notepad.exe" eingibt. Das funktioniert übrigens auch innerhalb von Shellscripten, so irrsinnige Sachen wie das hier kann man da machen:
sc.exe query | grep SERVICE_NAME | awk '{print $1=""; print $0}' | sort -bf| sed '/^$/d' | sort.exe
Damit liest man die Windows-Dienste des WSL-Wirtes innerhalb von WSL aus... Strange, oder doch irgendwie wahnsinnig geil...? Ok, kann man auch mit Powershell direkt unter Windows, aber geil ist es irgendwie trotzdem... Und Ok, der Sort ist doppelt gemoppelt, Unsinn, erst von Linux sortiert, dann von Windows nochmal, aber es geht... Und das kann kein anderer Virtualisierer. Allerdings kann das auch eine Sicherheitslücke sein, wer also glaubt, mit irgendwelchen Schädlingen innerhalb der Linux-VM rumspielen zu müssen, sollte nicht vergessen, dass der Bösling so ganz einfach aus der virtuellen Maschine ausbrechen kann... Was man auch noch wissen muss, unter /mnt/ finden sich alle in Windows verfügbaren Laufwerke, auch Netzlaufwerke...
Jetzt folgt Textadventure Teil 2... An der Windows-Eingabeaufforderung (cmd.exe!!!) das hier machen:
Damit erstmal gucken, welche Linuxe unter WSL schon verfügbar sind, Kali sollte dabei stehen, und dahinter die Zahl "2" für WSL 2. Falls da eine "1" steht, muss man das switchen:
(Im Appstore gibts auch Ubuntu und Debian, aber die kennen momentan den kex-Trick noch nicht...)
Spätestens jetzt wird die Kali-Session gekillt und muss neu gestartet werden.
Wieder an der Linux-(s)hell zurück geht die Frickelei so richtig los, folgende Befehle sind nacheinander abzusetzen:
sudo apt update
sudo apt dist-upgrade
sudo apt install -y kali-win-kex
sudo apt install -y kali-linux-default
sudo apt install synaptic
Der Sudo-Befehl fragt das oben festgelegte Root-Passwort ab. (Streng genommen ist es keins, sondern das Benutzerpasswort um Root-Rechte zu bekommen) Letzterer Befehl ist optional, aber man will ja auch einen gescheiten grafischen Paketmanager haben, mit dem man die ganzen Standardpakete von Debian nachinstallieren will. Jedenfalls rödelt das ordentlich lange, bis alle Pakete nachinstalliert sind, Abhängigkeiten aufgelöst sind usw. Einzelne wenige angeforderte Pakte scheinen momentan im Repo zu fehlen, ich habe aber nicht versucht, mal andere Repos auszuprobieren. Aber egal, es funktioniert.
Letztlich startet man kex am Linux-Prompt mit der Eingabe von
die grafische Oberfläche.
Aktuell öffnet sich der Linux-Desktop bei mir über beide Monitore, wobei auf dem 2. monitor unten die Windows Taskleiste eingeblendet ist, und auf dem ersten Monitor habe ich obn die Taskleiste von Gnome. Technisch läuft da mittels kex auf Linux-Seite ein VNC-Server, und über WSL, wir haben ja schon gelernt, dass das Windows-Befehle ausführen kann, wird da Windows-seitig ein Tightvnc gestartet. Wie man das umbaut, dass der Linux-Desktop in einem Fenster läuft, muss ich noch sehen. Was auch etwas umständlich ist, dass man kex erstmal manuell starten muss, wenn man kali aus Windows heraus startet.
Shocking, oder? So kann aber endlich mal das Jahr von Linux auf dem Desktop anbrechen, irgendwas gutes muss ja 2020 haben...
Was noch wichtig ist, auch den synaptics Paketmanager muss man mit sudo starten, sonst kann man damit nichts installieren. Damit er sein Fenster öffnen kann, muss man vorher erst noch mit
dem sudo erlauben, das synaptics Fenster zu öffnen. Das lässt sich in Linux irgendwo auch noch voreinstellen, muss ich später mal schauen.
Weblinks, auch mit ein paar Bildchen von der Installationsorgie: