Einführung
Dieser Artikel richtet sich an Systemadministratoren, die typische Arbeitsplätze auf Computern unter Windows 10 vorbereiten, einschließlich Softwareentwicklern.
Es sollte beachtet werden, dass es ein bestimmtes Problem im Zusammenhang mit der Unfähigkeit gibt, aus dem Online-Microsoft Store bezogene Software zur Verwendung in einem benutzerdefinierten Image von Windows 10 zu integrieren. Ohne auf Details einzugehen, werde ich klarstellen, dass dieses Problem auf die Tatsache zurückzuführen ist, dass aus dem Microsoft Store installierte Programme verknüpft sind Wenn das Dienstprogramm mit dem Administrator-Dienstkonto fertig ist und ein benutzerdefiniertes Image erstellt
sysprep, treten Fehler auf, die durch diesen Umstand verursacht werden.
Die in diesem Artikel beschriebene Methode zur Vermeidung eines solchen Problems bei der Erstellung eines Images von Windows 10 mit einem vorkonfigurierten WSL2-Subsystem sowie mit einem vorbereiteten und konfigurierten Image von Ubuntu 20.04 mit der KDE Plasma-GUI, die möglicherweise über eine eigene benutzerdefinierte Software verfügt.
Im Internet gibt es eine große Anzahl von Beispielen und Anleitungen zum Konfigurieren von WSL-Subsystemen (d. H. WSL1 und der relativ neuen WSL2), wobei die GUI-Schnittstelle für Linux-Systeme basierend auf dem Betriebssystem von Ubuntu 16.04 bis Ubuntu 20.04 konfiguriert wird Desktops basierend auf den sogenannten. "Lightweight" xfce4, das verständliche Einschränkungen in den Benutzereinstellungen aufweist. In Bezug auf die KDE Plasma GUI für Ubuntu 20.04 gab es jedoch keine wesentlichen Informationen im Internet. Diese Option bietet dem Endbenutzer jedoch nahezu unbegrenzte Einstellungen sowohl für das Erscheinungsbild des Systems als auch für die Hardwareeinstellungen, wobei natürlich die aktuellen Integrationsfunktionen der im WSL2-Subsystem implementierten Linux-Systeme berücksichtigt werden.
Installieren der erforderlichen Software-Suite und Konfigurieren von WSL2
Wir überprüfen die aktuelle Windows-Version. Geben Sie dazu in der Windows-Suchleiste den Befehl ein
winverund erhalten Sie Folgendes:

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). Der Rest der Informationen spielt keine Rolle. Wenn die Versionsnummer niedriger ist, wird empfohlen, ein Upgrade auf die neueste Windows-Version durchzuführen, um die in diesem Artikel dargestellten Ergebnisse korrekt zu wiederholen.
Installieren Sie für weitere Aktionen das kostenlose Windows-Terminal über den Microsoft Store (es besteht auch die Möglichkeit, es aus anderen Quellen herunterzuladen):

Wir installieren X Server X410 über denselben Microsoft Store. Diese Software wird bezahlt, es gibt jedoch einen freien Zeitraum von 15 Tagen, was für verschiedene Tests völlig ausreicht.

Laden Sie als kostenlose Alternative zu X410 den VcXsrv X-Server herunter und installieren Sie ihn.
Erstellen Sie an einem beliebigen Ort auf der Festplatte ein Verzeichnis, in dem wir unsere Dateien speichern. Lassen Sie uns als Beispiel ein Verzeichnis erstellen
C:\wsl.
Laden Sie das eigenständige Ubuntu 20.04-Installationsprogramm herunter und installieren Sie es. Entpacken Sie die resultierende Datei mit einem Archivierungsprogramm (z. B. 7-zip). Benennen Sie das entpackte Verzeichnis mit einem langen Namen
Ubuntu_2004.2020.424.0_x64beispielsweise Ubuntu-20.04in ein akzeptableres um und kopieren Sie es in ein Verzeichnis C:\wsl(im Folgenden einfach \wsl).
Laden Sie den
\wslplattformübergreifenden Soundserver PulseAudio v.1.1 herunter und entpacken Sie ihn in das Verzeichnis. Nehmen Sie auch Korrekturen an den Konfigurationsdateien vor.
In der Datei
\wsl\pulseaudio-1.1\etc\pulse\default.paunterLoad audio drivers statically Bearbeiten Sie die Zeile:
load-module module-waveout sink_name=output source_name=input record=0
und
Network accessbearbeiten Sie im Abschnitt die Zeile:
load-module module-native-protocol-tcp auth-ip-acl=127.0.0.1 auth-anonymous=1
\wsl\pulseaudio-1.1\etc\pulse\daemon.confKommentieren Sie
in der Datei die Zeile aus und ändern Sie sie
exit-idle-time = -1
Wir konfigurieren das WSL2-Subsystem gemäß der Microsoft- Dokumentation . Der einzige Hinweis ist, dass wir die Ubuntu-Distribution bereits heruntergeladen haben und sie im nächsten Schritt installieren werden. Grundsätzlich besteht die Konfiguration darin, die zusätzlichen Komponenten "Windows Subsystem für Linux" und "Virtual Machine Platform" zu aktivieren und anschließend neu zu starten, um Änderungen an den Computereinstellungen vorzunehmen:

Laden Sie bei Bedarf das Update-Paket für den Linux-Kernel in WSL2 herunter und installieren Sie es.
Starten Sie das Windows-Terminal und wählen Sie den Eingabeaufforderungsmodus durch Drücken der Tasten
Ctrl+Shift+2.
Zunächst stellen wir den WSL2-Betriebsmodus ein, dazu geben wir den Befehl ein:
wsl --set-default-version 2
Gehen Sie mit dem Offline-Bootloader Ubuntu 20.04 in das Verzeichnis, in meinem Fall ist dies
\wsl\Ubuntu-20.04und führen Sie die Datei aus ubuntu2004.exe. Wenn ich zur engineerEingabe eines Benutzernamens aufgefordert werde, gebe ich einen Namen an (Sie können einen anderen Namen eingeben), gebe Ihr Passwort ein und bestätige das eingegebene Passwort für das angegebene Konto:

Eine Terminal-Eingabeaufforderung wird angezeigt. Der Ubuntu 20.04-Kernel ist installiert. Lassen Sie uns die Richtigkeit der WSL2-Moduseinstellung überprüfen. Wählen Sie dazu im Windows-Terminal die Registerkarte Windows PowerShell und geben Sie den folgenden Befehl ein:
wsl -l -v
Das Ergebnis der Ausführung sollte folgendermaßen aussehen:

Wir konfigurieren die Microsoft Defender-Firewall, d. H. Deaktivieren Sie es für das öffentliche Netzwerk:


Ubuntu 20.04 einrichten
Wählen Sie in Windows Terminal erneut die Registerkarte Eingabeaufforderung und installieren Sie Updates für Ubuntu 20.04. Geben Sie dazu in der Befehlszeile Folgendes ein:
sudo apt update && sudo apt upgrade –y
Installieren des KDE Plasma-Desktops:
sudo apt install kubuntu-desktop -y
Die Installation dauert je nach Leistung des Computers und der Bandbreite des Internetzugangskanals bis zu 30 Minuten. Wenn die Anforderung des Installationsprogramms angezeigt wird, bestätigen wir dies
OK.
Installation der russischen Lokalisierung und Wörterbücher Ubuntu 20.04. Geben Sie dazu in der Befehlszeile Folgendes 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 # : ru_RU.UTF-8 UTF-8, . .
sudo apt-get install --reinstall locales


Fügen Sie die neueste Version des KDE Plasma-Desktops hinzu:
sudo add-apt-repository ppa:kubuntu-ppa/backports
sudo apt update && sudo apt full-upgrade -y
Hinzufügen einer Reihe von Konsolenanwendungen zum Beispiel
mcund neofetch:
sudo apt install mc neofetch -y
Wir überprüfen, was passiert ist, geben es in die Befehlszeile ein
neofetch, siehe Screenshot:

Bearbeiten der WSL-Konfigurationsdatei
/etc/wsl.conf:
sudo nano /etc/wsl.conf
Kopieren Sie den Text in das geöffnete leere Texteditorfenster:
[automount]
enabled = true
root = /mnt
options = «metadata,umask=22,fmask=11»
mountFsTab = true
[network]
generateHosts = true
generateResolvConf = true
[interop]
enabled = true
appendWindowsPath = true
Speichern Sie die Änderungen (
Ctrl+O), bestätigen Sie den Vorgang und beenden Sie den Texteditor ( Ctrl+X).
Wir exportieren das angepasste Ubuntu-20.04-Image in das von uns erstellte Verzeichnis
\wsl. Wählen Sie dazu in Windows Terminal erneut die Registerkarte Windows PowerShell und geben Sie den folgenden Befehl ein:
wsl --export Ubuntu-20.04 c:\wsl\Ubuntu-plasma-desktop
Das erstellte Image hilft uns dabei, die Start- / Neuinstallationsvorgänge des konfigurierten Ubuntu 20.04 zu automatisieren. Bei Bedarf können wir es problemlos auf einen anderen Computer übertragen.
Vorbereiten von Bat-Dateien und Verknüpfungen zum Windows-Desktop
Erstellen Sie mit dem Notepad ++ - Editor Bat-Dateien (obligatorisch in der OEM-866-Codierung für die korrekte Anzeige kyrillischer Zeichen):
Datei
Install-Ubuntu-20.04-plasma-desktop.bat- dient zur Automatisierung der Erstinstallation des erstellten Ubuntu 20.04-Images auf einem Computer mit einem bereits konfigurierten WSL2-Subsystem und einem X-Server. Wenn der Benutzername und das Kennwort von den im Beispiel angegebenen abweichen, müssen Sie die entsprechenden Änderungen an dieser bat-Datei vornehmen:
@echo off
wsl --set-default-version 2
cls
echo Ubuntu-20.04...
wsl --import Ubuntu-20.04 c:\wsl c:\wsl\Ubuntu-plasma-desktop
wsl -s Ubuntu-20.04
cls
echo Ubuntu-20.04 !
echo «root» ,
echo «engineer», : «password».
pause
Datei
Reinstall-Ubuntu-20.04-plasma-desktop.bat- zur Neuinstallation des vorbereiteten Ubuntu 20.04-Images auf dem Computer.
@echo off
wsl --unregister Ubuntu-20.04
wsl --set-default-version 2
cls
echo Ubuntu-20.04...
wsl --import Ubuntu-20.04 c:\wsl c:\wsl\Ubuntu-plasma-desktop
wsl -s Ubuntu-20.04
cls
echo Ubuntu-20.04 !
pause
Datei
Set-default-user.bat- um den "Standard" -Benutzer festzulegen.
@echo off
set /p answer= Ubuntu (engineer):
c:\wsl\Ubuntu-20.04\ubuntu2004.exe config --default-user %answer%
cls
echo %answer% Ubuntu-20.04 !
pause
Die Datei
Start-Ubuntu-20.04-plasma-desktop.batist der eigentliche Start des KDE Plasma-Desktops.
@echo off
echo ===================================== ! ============================================
echo GUI Ubuntu 20.04 WSL2 X Server.
echo : VcXsrv Windows X Server
echo Start-Ubuntu-20.04-plasma-desktop.bat, "config.xlaunch"
echo "vcxsrv.exe", , "x410".
echo ============================================================================================
rem start "" /B "c:\wsl\vcxsrv\config.xlaunch" > nul
start "" /B x410.exe /wm /public > nul
start "" /B "c:\wsl\pulseaudio-1.1\bin\pulseaudio.exe" --use-pid-file=false -D > nul
c:\wsl\Ubuntu-20.04\Ubuntu2004.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
Datei
Start-Ubuntu-20.04-terminal.bat- Startet ein grafisches Terminal ohne den KDE Plasma-Desktop.
@echo off
echo ===================================== ! ============================================
echo GUI Ubuntu 20.04 WSL2 X Server.
echo : VcXsrv Windows X Server
echo Start-Ubuntu-20.04-plasma-desktop.bat, "config.xlaunch"
echo "vcxsrv.exe", , "x410".
echo ============================================================================================
rem start "" /B "c:\wsl\vcxsrv\config.xlaunch" > nul
start "" /B x410.exe /wm /public > nul
start "" /B "c:\wsl\pulseaudio-1.1\bin\pulseaudio.exe" --use-pid-file=false -D > nul
c:\wsl\Ubuntu-20.04\Ubuntu2004.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
\wslZur
Vereinfachung der Verwendung bereiten wir außerdem Verknüpfungen im Verzeichnis vor, die auf die entsprechenden Bat-Dateien verweisen. Danach \wslsieht der Inhalt des Verzeichnisses folgendermaßen aus:

Starten des KDE Plasma Desktop
Wir überprüfen, ob alle vorbereitenden Aktionen abgeschlossen sind, und versuchen, die Verknüpfung zu starten
Plasma-desktop. Eine Passwortanfrage wird angezeigt, geben Sie das Passwort für das Konto ein und ... das Fenster wird geschlossen. Es ist beim ersten Mal in Ordnung. Beim erneuten Versuch sehen wir die bekannte KDE Plasma-Taskleiste. Wir konfigurieren das erforderliche Erscheinungsbild der Taskleiste. Beispielsweise wird das Bedienfeld zur Vereinfachung der Verwendung auf die rechte Seite des Bildschirms verschoben und zentriert. Wir überprüfen die Lokalisierungseinstellungen, fügen bei Bedarf die russische Sprache hinzu:

Fügen Sie bei Bedarf Verknüpfungen für installierte Linux-Anwendungen in die KDE Plasma-Taskleiste ein.
Wenn Sie sich in Ubuntu 20.04 vom Benutzerkonto abmelden müssen, um die Änderungen in den Einstellungen zu übernehmen, oder das Betriebssystem neu starten müssen, geben Sie dazu den folgenden Befehl in Windows Terminal ein:
wsl -d Ubuntu20.04 --shutdown
Mit der Verknüpfung
Plasma-desktopoder können KonsoleSie die KDE Plasma Ubuntu 20.04-Benutzeroberfläche starten. Lassen Sie uns zum Beispiel mit dem KonsoleGIMP-Grafikeditor installieren :

Führen Sie nach Abschluss der Installation den
KonsoleGIMP-Grafikeditor im Grafikeditor aus:

Das GIMP funktioniert, was Sie überprüfen wollten.
Und so funktionieren die verschiedenen Linux-Anwendungen in KDE Plasma in WSL2:

Die angepasste KDE Plasma-Taskleiste befindet sich auf der rechten Seite des Bildschirms. und das Video im Firefox-Fenster wird mit Ton abgespielt.


Bei Bedarf können Sie den Zugriff auf Ubuntu20.04 konfigurieren
SSHund RDPfür diese müssen Sie die entsprechenden Dienste mit dem Befehl installieren:
sudo apt install ssh xrdp -y
Hinweis: Um den Kennwortzugriff per Software zu ermöglichen, müssen
SSHSie die Datei bearbeiten /etc/ssh/sshd_config, dh der Parameter PasswordAuthentication nomuss auf value gesetzt sein PasswordAuthentication yes, die Änderungen speichern und Ubuntu20.04 neu starten.
Jedes Mal, wenn Sie Ubuntu20.04 starten, ändert sich die interne IP-Adresse. Bevor Sie den Remotezugriff konfigurieren, müssen Sie die aktuelle IP-Adresse mit dem folgenden Befehl angeben
ip a:

Dementsprechend wird die IP-Adresse im Sitzungsaufbau
SSHund RDPvor dem Start benötigt.
So sieht der Remote-
SSHSoftwarezugriff mit MobaXterm aus:

Und so sieht Fernzugriff aus
RDP:

Verwenden des vcxsrv X-Servers anstelle von x410
Starten und konfigurieren
vcxsrvSie die entsprechenden Kontrollkästchen sorgfältig:




Wir speichern die konfigurierte Konfiguration in einem Verzeichnis
\wsl\vcxsrvmit einem Standardnamen config.xlaunch.
Wir bearbeiten Fledermausdateien
Start-Ubuntu-20.04-plasma-desktop.batund Start-Ubuntu-20.04-terminal.batgemäß den darin enthaltenen Anweisungen.
Wir starten die Verknüpfung
Plasma-desktopund erhalten Folgendes:

Der KDE Plasma-Desktop schließt den Windows-Desktop vollständig. Um zwischen Windows- und Windows-Windows-Anwendungen zu wechseln, verwenden wir eine bekannte Tastenkombination
Alt+Tab, die nicht sehr praktisch ist.
Darüber hinaus wurde eine unangenehme Funktion des X-Servers entdeckt
vcxsrv- er stürzt beim Starten einiger Anwendungen ab, insbesondere des gleichen GIMP oder LibreOffice Writer. Vielleicht sollten Sie warten, bis die Entwickler die festgestellten "Fehler" beseitigt haben, aber das ist nicht sicher ... Um akzeptable Ergebnisse zu erzielen, ist es besser, Microsoft X Server x410 zu verwenden.
Fazit
Trotzdem müssen wir Microsoft Tribut zollen, das WSL2-Produkt hat sich als recht funktionierend erwiesen und ist meiner Meinung nach sehr erfolgreich. Und soweit ich weiß, arbeiten die Entwickler weiterhin hart daran, es zu "beenden", und vielleicht wird dieses Subsystem in ein oder zwei Jahren in seiner gesamten funktionalen Vollständigkeit erscheinen.