Falls man in der Verlegenheit ist, Linux als VM unter Windows laufen lassen zu müssen, dann ist HyperV die beste Lösung. Das Windows Subsystem for Linux ist bestenfalls ein Notbehelf, falls HyperV unter Windows nicht genutzt werden kann.

Gleich vorweg - so komfortabel wie bei Desktop Virtualisierungen wie z.B. VirtualBox oder auch VMware Workstation wird das nicht. Auch an Libvirt/qemu/kvm kommt diese Lösung nicht heran, aber man kann damit auf jeden Fall besser arbeiten, als mit WSL2.

Zunächst einmal hat man ein vollständiges Linux mit einem ebenso vollständigen Linux Kernel, der inzwischen über eine sehr gute HyperV Unterstützung verfügt.

Warum ist HyperV so viel besser als WSL2?

HyperV ist eine Bare-Metal Virtualisierung, so dass Linux eine vollwertige Hardware sieht. Dazu kommen die von Microsoft beigesteuerten HyperV Kernel module für Linux. Von der Performance her braucht sich HyperV mit einem Linux Gast nicht vor den anderen VM Lösungen zu verstecken, zumindest so lange Linux sein Block Device nicht auf einem NTFS hat. Ein Raw Device konnte ich mangels Testmöglichkeit - ich setze Windows außer auf dem Surface Go nicht native ein - nicht prüfen, da sollte die Performance aber deutlich besser sein. Bei HyperV hat man aber auch hier die Wahl, interessant wird das gerade mit Ubuntu und ZFS.

Installation

Die Installation unter HyperV ist sehr einfach und schnell gemacht. in der Schnellerstellung einfach Ubuntu 20.04 auswählen und schon hat in in wenigen Minuten die aktuelle LTS Version installiert.

Wurde die Installation durchgeführt, dann ist zunächst ein Update fällig, ein apt update && apt-fullupgrade && reboot führt dann zu einem aktuellen System. Ist das erledigt, dann kommt noch eine etwas unschöne Eigenschaft von HyperV, die hardcodierte Anpassung der Bildschirmauflösung. In der Datei /etc/default/grub ist der Parameter

GRUB_CMDLINE_LINUX_DEFAULT="quiet splash video=hyperv_fb:1600x1000"

zu setzen. Die Auflösung passt hier zu einem Microsoft Surface Go und muss ggf. angepasst werden.

Fazit

WSL2 ist wirklich nur ein absoluter Notbehelf und kaum zu gebrauchen. Spätestens wenn unter Linux Services laufen sollen, Systemd oder auch nur ein aktuelles GUI (Wayland, X11) benötigt wird, dann ist WSL2 keine Option mehr. HyperV ist hier aber ein brauchbares Werkzeug, auf dem ein full-featured Linux betrieben werden kann.