====== Windows Subsystem for Linux (WSL) ====== * Dokumentation zu WSL: [[https://learn.microsoft.com/windows/wsl/]] * Installation und Upgrade: [[https://learn.microsoft.com/windows/wsl/install]] * Vergleich zwischen WSL 1 und 2: [[https://learn.microsoft.com/windows/wsl/compare-versions]] * WSL 2 nutzt einen **vollständigen Linux-Kernel** * VirtualBox u.ä. sollten parallel zu WSL 2 funktionieren, müssen aber Hyper-V als Virtualisierung verwenden Siehe [[windows_terminal|Windows Terminal]] für ein anpassbares und kompatibles Terminal (in Win 11 standardmäßig installiert) [[https://youtu.be/nVxYFMa1ltM|Erklärvideo zu WSL im MS Store]] ===== WSL Kommandos ===== [[https://learn.microsoft.com/windows/wsl/basic-commands]] * Status aller Installationen anzeigen: ''%%wsl --status%%'' * Linux Kernel updaten: ''%%wsl --update%%'' * WSL-Version für eine bestimmte Installation festlegen (Up-/Downgrade): ''%%wsl --set-version debian 2%%'' * WSL Standardversion festlegen: ''%%wsl --set-default-version 2%%'' (versionNumber kann ''1'' oder ''2'' sein) * WSL Standardinstallation festlegen: ''%%wsl -s debian%%'' (Die Installation mit dem Namen Debian wird als Standard festgelegt) * verfügbare Linux-Distributionen auflisten: ''%%wsl -l -o%%'' * installierte Linux-Distribution und jeweilige WSL-Version auflisten: ''%%wsl -l -v%%'' ===== Installation ===== FIXME **Infos auf dieser Wikiseite sind teilweise veraltet! Hier ein Update:** [[https://devblogs.microsoft.com/commandline/the-windows-subsystem-for-linux-in-the-microsoft-store-is-now-generally-available-on-windows-10-and-11/]] **TLDR: ''%%wsl --install -d debian%%''** installiert die neuste version **Wichtig**: WSL kann unter Win 11 auch aus dem [[https://apps.microsoft.com/store/detail/9P9TQF7MRM4R|MS Store]] installiert werden //(empfohlen)//, unterstützt mit ''WSLg'' GUI apps (Wayland & X11) und bekommt darüber schneller Updates ==== CLI ==== **Es wird empfohlen die Distributionen von der [[https://learn.microsoft.com/windows/wsl/install-manual#downloading-distributions|MS Webseite]] herunterzuladen, statt mit ''wsl --install'' zu installieren, da bspw. Debian bei letzterer Methode veraltet ist** # list available wsl distros wsl -l -o # install wsl with distro of choice wsl --install -d debian Alternativ Distribution als *.appxbundle herunterladen (siehe oben): $wsl="debian.appxbundle" curl -Lo ./$wsl https://aka.ms/wsl-debian-gnulinux Add-AppxPackage ./$wsl Invoke-Item ./$wsl # or double click the *.appxbundle wsl -l -v ==== GUI ==== * Optionale Features aktivieren: ''optionalfeatures'' in Start/Terminal/Win+R eingeben * ''Windows Subsystem for Linux'' (**wird nur gebraucht wenn man WSL nicht aus dem MS Store installiert hat oder wenn man WSL1 verwenden möchte**) * ''Virtual Machine Platform'' (**nur für WSL2**) * Linux Distributionen für WSL aus dem Microsoft Store installieren: [[https://aka.ms/wslstore]] ===== Config ===== [[https://learn.microsoft.com/windows/wsl/wsl-config]] ==== Windows ==== Diese globalen Einstellungen gelten für alle WSL2 Instanzen! # https://learn.microsoft.com/windows/wsl/wsl-config#configuration-setting-for-wslconfig [wsl2] [experimental] ==== Linux ==== Diese Einstellungen gelten nur für die jeweilige WSL1 oder WSL2 Instanz! # https://learn.microsoft.com/windows/wsl/wsl-config#configuration-settings-for-wslconf [automount] options = case = off [network] [interop] [user] [boot] systemd = true ===== USB Geräte in WSL verwenden ===== [[https://learn.microsoft.com/windows/wsl/connect-usb]] **Wichtig:** Dies funktioniert nur mit WSL 2 unter Win 11 (Win 10 u.U. nur mit Zusatzaufwand) ==== Linux (WSL) ==== === Vorbereitung === Debian (für Ubuntu Anweisungen, siehe MS Dokumentation) sudo apt install usbip hwdata usbutils === USB Geräte auflisten === lsusb ==== Windows ==== === Vorbereitung === winget install -e dorssel.usbipd-win -i === USB Geräte auflisten === usbipd wsl list ==== USB Geräte verbinden/trennen ==== === Attach === usbipd wsl attach -b usbipd wsl attach -i Mit ''-d'' Distro spezifizieren und/oder mit ''-a'' automatisch neuverbinden usbipd wsl attach -a -d debian -b usbipd wsl attach -a -d debian -i === Detach === usbipd wsl detach -b usbipd wsl detach -i Alle Geräte trennen usbipd wsl detach -a ===== besondere Linux-Kommandos in der WSL ===== wenn die SD-Karte in Windows als Laufwerk "S:" sichtbar ist, dann kann man das Volumen in der WSL-Umgebung so mounten: > sudo -s [sudo] password for fritz: > mkdir /mnt/S > mount -t drvfs S: /mnt/S > ls -lha /mnt/S ===== nützliche crons ===== täglich (und beim Systemstart) das Upgrade-Skript ausführen MAILTO="" @reboot root /usr/local/sbin/upgrade.sh -y > /var/log/upgrade.log 2>&1 @daily root /usr/local/sbin/upgrade.sh -y > /var/log/upgrade.log 2>&1 für ''upgrade.sh'' siehe [[ubuntu#simple_version_des_upgrade-skripts|hier]]