
Einführung
Dieser Artikel richtet sich an Systemadministratoren, die Standardarbeitsplätze auf Computern mit Windows 10 einrichten, auch für Softwareentwickler.
Es gibt ein bestimmtes Problem, das mit der Unmöglichkeit der Integration von Software, die im Microsoft Store online erworben wurde, in ein Benutzerimage von Windows 10 verbunden ist. Ohne ins Detail zu gehen, möchte ich klarstellen, dass dieses Problem darin besteht, dass Programme, die aus dem Microsoft Store installiert wurden, mit dem Dienstkonto Administrator verknüpft sind, und beim Abschluss der Erstellung des Benutzerimages mit der Utility sysprep treten dadurch bedingte Fehler auf.
Die in diesem Artikel beschriebene Methode kann helfen, dieses Problem zu vermeiden, wenn ein Windows 10-Image mit einer zuvor konfigurierten WSL2-Subsystem und einem vorbereiteten und konfigurierten Image von Ubuntu 20.04 mit GUI KDE Plasma erstellt wird, das seinerseits über eine eigene Sammlung von Benutzeranwendungen verfügen kann.
Im Internet gibt es zahlreiche Beispiele und Anleitungen zur Einrichtung des WSL-Subsystems (d.h. WSL1 und das vergleichsweise neue WSL2), insbesondere zur Einrichtung von GUI-Oberflächen für Linux-Systeme basierend auf Ubuntu-Versionen von 16.04 bis 20.04. Die meisten dieser Anleitungen beziehen sich jedoch auf Desktop-Umgebungen wie das sogenannte "leichte" xfce4, das durchaus erklärbare Einschränkungen bei den Benutzereinstellungen aufweist. Was die GUI KDE Plasma für Ubuntu 20.04 betrifft, so fand sich im Netz keine nennenswerte Information dazu. Doch gerade diese Variante bietet dem Endbenutzer nahezu unbegrenzte Anpassungsmöglichkeiten hinsichtlich des System-Designs und der Hardwareeinstellungen, natürlich unter Berücksichtigung der aktuellen Integrationsmöglichkeiten von Linux-Systemen in das WSL2-Subsystem.
Installation des erforderlichen Softwarepakets und Konfiguration von WSL2
Überprüfen Sie die aktuelle Windows-Version, indem Sie im Suchfeld von Windows den Befehl winver eingeben und die folgende Ausgabe erhalten:
Es ist wichtig, dass das Betriebssystem die Version 1903 oder 1909 hat (die angegebenen Betriebssystemversionen müssen mit dem kumulativen Update KB4566116 installiert sein), oder 2004 (Build-Nummer mindestens 19041). Alle anderen Informationen sind nicht relevant. Wenn die Versionsnummer niedriger ist, wird empfohlen, auf die neueste Windows-Version zu aktualisieren, um die in diesem Artikel beschriebenen Ergebnisse korrekt zu reproduzieren.
Zur Erleichterung der weiteren Schritte installieren wir das kostenlose Windows Terminal über den Microsoft Store (es besteht auch die Möglichkeit, es aus anderen Quellen herunterzuladen):
Wir installieren X Server X410 ebenfalls über den Microsoft Store. Diese Software ist kostenpflichtig, bietet jedoch eine kostenlose Testphase von 15 Tagen, was für verschiedene Tests mehr als ausreichend ist.
Als kostenlose Alternative zu X410 und installieren den X-Server VcXsrv.
An einem beliebigen Ort auf der Festplatte erstellen wir ein Verzeichnis, in dem wir unsere Dateien speichern. Als Beispiel erstellen wir das Verzeichnis C:wsl.
und installieren den Offline-Installer von Ubuntu 20.04, entpacken die heruntergeladene Datei mit einem Archivierungsprogramm (zum Beispiel 7-zip). Umbenennen des entpackten Verzeichnisses mit dem langen Namen Ubuntu_2004.2020.424.0_x64 in etwas Angemesseneres, zum Beispiel Ubuntu-20.04 und kopieren es in das Verzeichnis C:wsl (im weiteren Text einfach wsl).
und entpacken in das Verzeichnis wsl den plattformübergreifenden Audio-Server PulseAudio v.1.1., außerdem nehmen wir Änderungen an seinen Konfigurationsdateien vor.
In der Datei wslpulseaudio-1.1etcpulsedefault.pa im Abschnitt Laden Sie Audio-Treiber statisch bearbeiten wir die Zeile:
load-module module-waveout sink_name=output source_name=input record=0
und im Abschnitt Netzwerkzugriff bearbeiten wir die Zeile:
load-module module-native-protocol-tcp auth-ip-acl=127.0.0.1 auth-anonymous=1
In der Datei wslpulseaudio-1.1etcpulsedaemon.conf entkommentieren und die Zeile ändern
exit-idle-time = -1
Wir konfigurieren das WSL2-Subsystem gemäß Microsoft. Anmerkung: Die Ubuntu-Distribution haben wir bereits heruntergeladen und werden sie im nächsten Schritt installieren. Im Wesentlichen besteht die Einrichtung darin, zusätzliche Komponenten "Windows-Subsystem für Linux" und "Virtuelle Maschinen-Plattform" zu aktivieren und anschließend den Computer neu zu starten, um die Änderungen in den Computereinstellungen zu übernehmen:
Falls erforderlich installieren wir das Update-Paket für den Linux-Kernel in WSL2.
Wir starten das Windows Terminal und wählen den Modus Eingabeaufforderung, indem wir die Tasten Ctrl+Shift+2.
drücken. Zuerst stellen wir den WSL2-Modus ein, dafür geben wir den Befehl ein:
wsl --set-default-version 2
Wir wechseln in das Verzeichnis mit dem Offline-Installer von Ubuntu 20.04, in meinem Fall ist das wslUbuntu-20.04 und starten die Datei ubuntu2004.exe. Wenn das Benutzername-Aufforderung erscheint, geben Sie den Namen ein engineer (Sie können jeden anderen Namen eingeben), geben Sie Ihr Passwort ein und bestätigen Sie das eingegebene Passwort für das angegebene Konto:
Es ist eine Terminal-Prompt-Zeile erschienen, der Ubuntu 20.04-Kernel ist installiert. Überprüfen wir die Konfiguration des WSL2-Modus, dafür wählen wir im Windows Terminal die Registerkarte Windows PowerShell und geben den Befehl ein:
wsl -l -v
Das Ergebnis sollte so aussehen:
Wir konfigurieren die Microsoft Defender Firewall, d.h. wir deaktivieren sie für öffentliche Netzwerke:
Konfiguration von Ubuntu 20.04
Im Windows Terminal wählen wir erneut die Registerkarte Eingabeaufforderung und aktualisieren die Pakete für Ubuntu 20.04. Dafür geben wir in die Eingabeaufforderung ein:
sudo apt update && sudo apt upgrade –y
Wir installieren die KDE Plasma-Desktop-Umgebung:
sudo apt install kubuntu-desktop -y
Die Installation kann bis zu 30 Minuten dauern, abhängig von der Computerleistung und der Internetgeschwindigkeit. Bestätigen Sie die Eingabeaufforderung des Installers. OK.
Wir installieren die russische Lokalisierung und Wörterbücher für Ubuntu 20.04. Dafür geben wir in die Eingabeaufforderung ein:
sudo apt install language-pack-ru language-pack-kde-ru -y
sudo apt install libreoffice-l10n-ru libreoffice-help-ru -y
sudo apt install hunspell-ru mueller7-dict -y
sudo update-locale LANG=ru_RU.UTF-8
sudo dpkg-reconfigure locales # Hinweis: Wählen Sie ru_RU.UTF-8 UTF-8, siehe Screenshots unten.
sudo apt-get install --reinstall locales
Wir fügen die neueste Version des KDE Plasma-Desktops hinzu:
sudo add-apt-repository ppa:kubuntu-ppa/backports
sudo apt update && sudo apt full-upgrade -y
Wir fügen unser eigenes Set von Konsolenanwendungen hinzu, zum Beispiel mc und neofetch:
sudo apt install mc neofetch -y
Wir überprüfen, was wir erreicht haben, geben wir in die Eingabeaufforderung ein neofetch, siehe Screenshot:
Wir bearbeiten die Konfigurationsdatei von WSL /etc/wsl.conf:
sudo nano /etc/wsl.conf
In das sich öffnende leere Fenster des Texteditors kopieren wir den Text:
[automount]
enabled = true
root = /mnt
options = "metadata,umask=22,fmask=11"
mountFsTab = true
[network]
generateHosts = true
generateResolvConf = true
[interop]
enabled = true
appendWindowsPath = true
Wir speichern die Änderungen (Ctrl+O), bestätigen die Operation und verlassen den Texteditor (Ctrl+X).
Wir exportieren das konfigurierte Image von Ubuntu-20.04 in das von uns erstellte Verzeichnis wsl. Dafür wählen wir im Windows Terminal erneut die Registerkarte Windows PowerShell und geben den Befehl ein:
wsl --export Ubuntu-20.04 c:wslUbuntu-plasma-desktop
Das erstellte Image wird uns helfen, die Vorgänge des Startens/Wiederinstallierens der konfigurierten Ubuntu 20.04 zu automatisieren und ermöglicht es uns, sie bei Bedarf einfach auf einen anderen Computer zu übertragen.
Vorbereitung von bat-Dateien und Verknüpfungen auf dem Windows-Desktop
Mit dem Editor Notepad++ erstellen wir bat-Dateien (unbedingt in der Codierung OEM-866 für die korrekte Darstellung der kyrillischen Zeichen):
Die Datei Install-Ubuntu-20.04-plasma-desktop.bat — dient zur Automatisierung der Erstinstallation des erstellten Images von Ubuntu 20.04 auf einem Computer mit bereits eingerichteter WSL2-Subsystem und X-Server. Wenn der Benutzername und das Passwort von den im Beispiel angegebenen abweichen, müssen die entsprechenden Änderungen in dieser bat-Datei vorgenommen werden:
@echo off
wsl --set-default-version 2
cls
echo Bitte warten Sie, bis die Installation des Ubuntu-20.04-Distributions abgeschlossen ist...
wsl --import Ubuntu-20.04 c:wsl c:wslUbuntu-plasma-desktop
wsl -s Ubuntu-20.04
cls
echo Die Distribution Ubuntu-20.04 wurde erfolgreich installiert!
echo Vergessen Sie nicht, das Standardkonto "root" auf ein vorhandenes Benutzerkonto zu ändern,
echo oder verwenden Sie das vorinstallierte Konto "engineer", Passwort: "password".
pause
Die Datei Reinstall-Ubuntu-20.04-plasma-desktop.bat — dient zur Neuinstallation des vorbereiteten Images von Ubuntu 20.04 auf einem Computer.
@echo off
wsl --unregister Ubuntu-20.04
wsl --set-default-version 2
cls
echo Bitte warten Sie, bis die Neuinstallation des Ubuntu-20.04-Distributions abgeschlossen ist...
wsl --import Ubuntu-20.04 c:wsl c:wslUbuntu-plasma-desktop
wsl -s Ubuntu-20.04
cls
echo Die Distribution Ubuntu-20.04 wurde erfolgreich neuinstalliert!
pause
Die Datei Set-default-user.bat — zur Einstellung des "Standardbenutzers".
@echo off
set /p answer=Geben Sie einen bestehenden Benutzer in Ubuntu (engineer) ein:
c:wslUbuntu-20.04ubuntu2004.exe config --default-user %answer%
cls
echo Das Benutzerkonto %answer% in Ubuntu-20.04 wurde als Standard festgelegt!
pause
Die Datei Start-Ubuntu-20.04-plasma-desktop.bat — tatsächlich zum Starten des KDE Plasma-Desktops.
@echo off
echo ===================================== Achtung! ============================================
echo Für eine korrekte Funktion des GUI von Ubuntu 20.04 in WSL2 muss ein X-Server verwendet werden.
echo Hinweis: Bei Verwendung des VcXsrv Windows X Servers müssen die Zeilen in der Datei Start-Ubuntu-20.04-plasma-desktop.bat, die "config.xlaunch" und
echo "vcxsrv.exe" enthalten, auskommentiert und alle Zeilen, die "x410" enthalten, kommentiert werden.
echo ============================================================================================
rem start "" /B "c:wslvcxsrvconfig.xlaunch" > nul
start "" /B x410.exe /wm /public > nul
start "" /B "c:wslpulseaudio-1.1binpulseaudio.exe" --use-pid-file=false -D > nul
c:wslUbuntu-20.04Ubuntu2004.exe run "if [ -z "$(pidof plasmashell)" ]; then cd ~ ; export DISPLAY=$(awk '/nameserver/ {print $2; exit}' /etc/resolv.conf 2>/dev/null):0 ; setxkbmap us,ru -option grp:ctrl_shift_toggle ; export LIBGL_ALWAYS_INDIRECT=1 ; export PULSE_SERVER=tcp:$(grep nameserver /etc/resolv.conf | awk '{print $2}') ; sudo /etc/init.d/dbus start &> /dev/null ; sudo service ssh start ; sudo service xrdp start ; plasmashell ; pkill '(gpg|ssh)-agent' ; fi;"
rem taskkill.exe /F /T /IM vcxsrv.exe > nul
taskkill.exe /F /T /IM x410.exe > nul
taskkill.exe /F /IM pulseaudio.exe > nul
Die Datei Start-Ubuntu-20.04-terminal.bat — Start des grafischen Terminals ohne KDE Plasma-Desktop.
@echo off
echo ===================================== Achtung! ============================================
echo Für die korrekte Funktionalität der GUI von Ubuntu 20.04 unter WSL2 muss ein X-Server verwendet werden.
echo Hinweis: Wenn Sie VcXsrv Windows X Server verwenden, müssen Sie die Zeilen im Datei Start-Ubuntu-20.04-plasma-desktop.bat, die "config.xlaunch" und
echo "vcxsrv.exe" enthalten, entkommentieren und alle Zeilen, die "x410" enthalten, auskommentieren.
echo ============================================================================================
rem start "" /B "c:wslvcxsrvconfig.xlaunch" > nul
start "" /B x410.exe /wm /public > nul
start "" /B "c:wslpulseaudio-1.1binpulseaudio.exe" --use-pid-file=false -D > nul
c:wslUbuntu-20.04Ubuntu2004.exe run "cd ~ ; export DISPLAY=$(awk '/nameserver / {print $2; exit}' /etc/resolv.conf 2>/dev/null):0 ; export LIBGL_ALWAYS_INDIRECT=1 ; setxkbmap us,ru -option grp:ctrl_shift_toggle ; export PULSE_SERVER=tcp:$(grep nameserver /etc/resolv.conf | awk '{print $2}') ; sudo /etc/init.d/dbus start &> /dev/null ; sudo service ssh start ; sudo service xrdp start ; konsole ; pkill '(gpg|ssh)-agent' ;"
taskkill.exe /F /T /IM x410.exe > nul
rem taskkill.exe /F /T /IM vcxsrv.exe > nul
taskkill.exe /F /IM pulseaudio.exe > nul
Um die Benutzerfreundlichkeit zu erhöhen, wsl bereiten wir Verknüpfungen vor, die auf die entsprechenden Bat-Dateien verweisen. Nach dieser Maßnahme sieht der Inhalt des Verzeichnisses wsl folgendermaßen aus:
Start des KDE Plasma-Desktops
Wir prüfen, ob alle vorbereitenden Maßnahmen abgeschlossen sind und versuchen, die Verknüpfung Plasma-desktop. Es erscheint eine Passwortaufforderung, wir geben das Passwort für das Konto ein und… das Fenster schließt sich. Beim ersten Mal ist das normal. Wir versuchen es noch einmal — und sehen die vertraute KDE Plasma-Taskleiste. Wir passen das gewünschte Erscheinungsbild der Taskleiste an, indem wir sie beispielsweise zur rechten Bildschirmseite verschieben und zentrieren. Wir überprüfen die Lokalisierungseinstellungen und fügen bei Bedarf die russische Sprache hinzu:
Falls erforderlich, bringen wir Verknüpfungen für installierte Linux-Anwendungen in die KDE Plasma-Taskleiste.
Wenn Ubuntu 20.04 verlangt, dass Sie sich abmelden, um die Änderungen in den Einstellungen anzuwenden oder dass Sie das Betriebssystem neu starten müssen, geben Sie im Windows Terminal den Befehl ein:
wsl -d Ubuntu20.04 --shutdown
Mit der Verknüpfung Plasma-desktop oder Konsole kann die GUI von KDE Plasma Ubuntu 20.04 gestartet werden. Zum Beispiel installieren wir mit Hilfe von Konsole dem Grafikbearbeitungsprogramm GIMP:
Nach Abschluss der Installation starten wir aus Konsole dem Grafikbearbeitungsprogramm GIMP:
GIMP funktioniert, was wir überprüfen wollten.
So funktionieren verschiedene Linux-Anwendungen in KDE Plasma unter WSL2:
Die angepasste KDE Plasma-Taskleiste befindet sich auf der rechten Bildschirmseite, und das Video wird mit Ton im Firefox-Fenster wiedergegeben.
Falls erforderlich, kann der Zugriff auf Ubuntu 20.04 über SSH und RDP, dafür müssen die entsprechenden Dienste mit dem Befehl installiert werden:
sudo apt install ssh xrdp -y
Hinweis: Um den Passwortzugang zu aktivieren, SSH muss die Datei bearbeitet werden /etc/ssh/sshd_config, und zwar der Parameter PasswordAuthentication no muss auf den Wert PasswordAuthentication yes, Änderungen speichern und Ubuntu 20.04 neu starten.
Bei jedem Start von Ubuntu 20.04 ändert sich die interne IP-Adresse; vor der Einrichtung des Remotezugriffs muss die aktuelle IP-Adresse mit dem Befehl ip a:
abgefragt werden. Diese IP-Adresse muss dann in die Sitzungseinstellungen SSH und RDP vor dem Start eingetragen werden.
So sieht der Remotezugang über SSH mit MobaXterm aus:
So sieht der Remotezugang über RDP:
Die Verwendung des X-Servers vcxsrv anstelle von x410
Wir starten und konfigurieren vcxsrv, und setzen die entsprechenden Häkchen sorgfältig:




Wir speichern die konfigurierte Einstellung im Verzeichnis wslvcxsrv unter dem Standardnamen config.xlaunch.
Wir bearbeiten die bat-Dateien Start-Ubuntu-20.04-plasma-desktop.bat und Start-Ubuntu-20.04-terminal.bat gemäß den darin enthaltenen Anweisungen.
Wir starten die Verknüpfung Plasma-desktop, und das erhalten wir:
Der KDE Plasma-Desktop überlagert vollständig den Windows-Desktop; um zwischen den Fenstern von Linux- und Windows-Anwendungen zu wechseln, verwenden wir die bekannte Tastenkombination Alt+Tab, was nicht ganz bequem ist.
Darüber hinaus stellte sich eine unangenehme Eigenheit des X-Servers heraus – er „stürzt“ beim Starten einiger Anwendungen ab, insbesondere GIMP oder LibreOffice Writer. Es könnte sein, dass wir warten sollten, bis die Entwickler die festgestellten „Bugs“ beseitigen, aber das ist ungewiss … Daher ist es besser, für akzeptable Ergebnisse den Microsoft X Server x410 zu verwenden. vcxsrv Dennoch muss man Microsoft zugutehalten, dass das Produkt WSL2 durchaus funktionstüchtig ist und aus meinem unerfahrenen Blickwinkel – sehr gelungen. So viel ich weiß, arbeiten die Entwickler weiterhin intensiv daran, und möglicherweise wird dieses Subsystem in ein oder zwei Jahren in seiner vollständigen Funktionalität erscheinen.
Fazit
Die Veröffentlichung des Linux-Kernels 5.9
Quelle: habr.com
