
Úvod
Tento článok je určený pre systémových administrátorov, ktorí pripravujú typické pracovné miesta na počítačoch s OS Windows 10, vrátane vývojárov softvéru.
Je dôležité poznamenať, že existuje určité obmedzenie týkajúce sa nemožnosti integrácie softvéru zakúpeného v obchode Microsoft Store na použitie v používateľskej image Windows 10. Bez zbytočných podrobností uvádzam, že tento problém súvisí s tým, že programy nainštalované z Microsoft Store sa viažu na administrátorsky účet, a pri dokončení vytvárania používateľskej image pomocou nástroja sysprep nastať problémy vyplývajúce z tejto situácie.
Spôsob uvedený v tomto článku umožní vyhnúť sa tomuto problému pri príprave image OS Windows 10 s prednastavenou podsystemou WSL2 a s už pripravenou a nastavenou image OS Ubuntu 20.04 s GUI KDE Plasma, ktorá môže mať svoj vlastný súbor používateľského softvéru.
Na internete existuje množstvo príkladov a návodov na nastavenie subsystému WSL (t.j. WSL1 a relatívne nový WSL2), s nastavením GUI rozhrania pre linuxové systémy založené na OS od verzie Ubuntu 16.04 po Ubuntu 20.04, ale väčšinou sa to týkalo desktopov založených na tzv. „ľahkom“ xfce4, ktorý má určité obmedzenia v používateľských nastaveniach. Čo sa týka GUI KDE Plasma pre Ubuntu 20.04, na internete sa nenašli žiadne podstatné informácie. Tento variant však používateľovi poskytuje prakticky neobmedzené možnosti nastavení vzhľadu systému a nastavení hardvéru, samozrejme s ohľadom na aktuálne možnosti integrácie linuxových systémov realizovaných v subsystéme WSL2.
Inštalácia potrebného súboru softvéru a nastavenie WSL2
Skontrolujeme aktuálnu verziu Windows, na tento účel do vyhľadávacieho políčka Windows zadáme príkaz winver a dostaneme približne toto:
Je dôležité, aby mal OS verziu 1903 alebo 1909 (uvedené verzie OS by mali byť so nainštalovaným kumulatívnym aktualizáciou KB4566116), alebo 2004 (číslo zostavy minimálne 19041), zvyšok informácií nie je podstatný. Ak je číslo verzie nižšie, odporúča sa aktualizovať na najnovšiu verziu Windows pre správne zopakovanie výsledkov uvedených v tomto článku.
Pre pohodlie ďalších krokov si nainštalujeme bezplatný Windows Terminal pomocou Microsoft Store (existuje tiež možnosť stiahnuť ho z iných zdrojov):
Nainštalujeme X Server X410 prostredníctvom toho istého Microsoft Store, tento softvér je platený, ale má bezplatné obdobie 15 dní, čo je úplne dostatočné na rôzne testy.
Ako bezplatnú alternatívu k X410 a nainštalujeme X-server VcXsrv.
Na disku vytvoríme adresár, kde budeme uchovávať naše súbory. Ako príklad vytvoríme adresár C:wsl.
a nainštalujeme samostatného inštalátora Ubuntu 20.04, rozbalíme získaný súbor pomocou rozbalovača (napríklad 7-zip). Premenúvame rozbalený adresár s dlhým názvom Ubuntu_2004.2020.424.0_x64 na niečo prijateľnejšie, napríklad Ubuntu-20.04 a kopírujeme ho do adresára C:wsl (ďalej v texte jednoducho wsl).
a rozbalíme do adresára wsl krosplatformný zvukový server PulseAudio v.1.1., tiež opravujeme jeho konfiguračné súbory.
V súbore wslpulseaudio-1.1etcpulsedefault.pa v sekcii Načítaj zvukové ovládače staticky upravené riadky:
load-module module-waveout sink_name=output source_name=input record=0
a v sekcii Prístup k sieti upravené riadky:
load-module module-native-protocol-tcp auth-ip-acl=127.0.0.1 auth-anonymous=1
V súbore wslpulseaudio-1.1etcpulsedaemon.conf odkomentujeme a zmeníme riadok
exit-idle-time = -1
Nastavujeme subsystém WSL2 podľa Microsoft. Jediná poznámka — distribúciu Ubuntu sme už stiahli a budeme ju inštalovať v nasledujúcom kroku. V zásade sa nastavenie týka zapnutia dodatočných komponentov „Subsystem for Windows for Linux“ a „Platforma virtuálnych strojov“, a následného reštartu na aplikovanie zmien v nastaveniach počítača:
Ak je to potrebné a nainštalujeme balík aktualizácií pre jadro Linuxu v WSL2.
Spustíme Windows Terminal a vyberieme režim Command Prompt stlačením klávesov Ctrl+Shift+2.
Najprv nastavíme režim WSL2, na to zadáme príkaz:
wsl --set-default-version 2
Prejdeme do adresára s offline inštalačným programom Ubuntu 20.04, v mojom prípade je to wslUbuntu-20.04 a spustíme súbor ubuntu2004.exe. Pri zadaní mena používateľa uvádzam meno engineer (môžete zadať akékoľvek iné meno), zadajte svoje heslo a potvrďte zadané heslo pre zvolený účet:
Zobrazila sa výzva terminálu, jadro Ubuntu 20.04 je nainštalované. Skontrolujeme správnosť nastavenia režimu WSL2, na to v okne Windows Terminal vyberieme kartu Windows PowerShell a zadáme príkaz:
wsl -l -v
výsledok vykonania by mal byť takýto:
Nastavujeme bránu firewall Microsoft Defender, t.j. vypíname ho pre verejnú sieť:
Nastavenie Ubuntu 20.04
V okne Windows Terminal znova vyberáme kartu Command Prompt a inštalujeme aktualizácie pre Ubuntu 20.04. Na to v príkazovom riadku zadáme:
sudo apt update && sudo apt upgrade -y
Inštalujeme pracovnú plochu KDE Plasma:
sudo apt install kubuntu-desktop -y
inštalácia trvá až 30 minút v závislosti od výkonu počítača a rýchlosti pripojenia na Internet, pri zobrazení výzvy inštalátora potvrdíme OK.
Inštalujeme ruskú lokalizáciu a slovníky pre Ubuntu 20.04. Na to v príkazovom riadku zadáme:
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 # poznámka: vyberáme ru_RU.UTF-8 UTF-8, pozri obrazovky nižšie.
sudo apt-get install --reinstall locales
Pridávame poslednú verziu pracovnej plochy KDE Plasma:
sudo add-apt-repository ppa:kubuntu-ppa/backports
sudo apt update && sudo apt full-upgrade -y
Pridávame svoj súbor konzolových aplikácií, napríklad mc a neofetch:
sudo apt install mc neofetch -y
Skontrolujeme, čo sa podarilo, zadáme do príkazového riadku neofetch, pozri obrazovku:
Upravujeme konfiguračný súbor WSL /etc/wsl.conf:
sudo nano /etc/wsl.conf
do otvoreného prázdneho okna textového editora skopírujeme text:
[automount]
enabled = true
root = /mnt
options = "metadata,umask=22,fmask=11"
mountFsTab = true
[network]
generateHosts = true
generateResolvConf = true
[interop]
enabled = true
appendWindowsPath = true
uložíme zmeny (Ctrl+O), potvrdíme operáciu a vyjdeme z textového editora (Ctrl+X).
Exportujeme nastavený obraz Ubuntu-20.04 do vytvoreného adresára wsl. Na to v okne Windows Terminal znova vyberieme kartu Windows PowerShell a zadáme príkaz:
wsl --export Ubuntu-20.04 c:wslUbuntu-plasma-desktop
vytvorený obraz nám pomôže automatizovať operácie spustenia/preenštalácie nastaveného Ubuntu 20.04, v prípade potreby umožní jednoduchý prenos na iný počítač.
Príprava bat-súborov a skratkov na pracovnej ploche Windows
S pomocou editora Notepad++ vytvárame bat-súbory (povinne v kódovaní OEM-866 pre správne zobrazenie znakov cyrilice):
Súbor Install-Ubuntu-20.04-plasma-desktop.bat — je určený na automatizáciu počiatočnej inštalácie vytvoreného obrazu Ubuntu 20.04 na počítači s už nastaveným WSL2 a X serverom. Ak sa používateľské meno a heslo líši od uvedených v príklade, je potrebné vykonať zodpovedajúce úpravy v tomto bat súbore:
@echo off
wsl --set-default-version 2
cls
echo Prosím, počkajte, kým sa dokončí inštalácia distribúcie Ubuntu-20.04...
wsl --import Ubuntu-20.04 c:wsl c:wslUbuntu-plasma-desktop
wsl -s Ubuntu-20.04
cls
echo Distribúcia Ubuntu-20.04 bola úspešne nainštalovaná!
echo Nezabudnite zmeniť predvolený účet „root“ na existujúci používateľský účet,
echo alebo používajte predinštalovaný účet „engineer“, heslo: „password“.
pause
Súbor Reinstall-Ubuntu-20.04-plasma-desktop.bat — je určený na opätovnú inštaláciu pripravenej distribúcie Ubuntu 20.04 na počítači.
@echo off
wsl --unregister Ubuntu-20.04
wsl --set-default-version 2
cls
echo Prosím, počkajte, kým sa dokončí opätovná inštalácia distribúcie Ubuntu-20.04...
wsl --import Ubuntu-20.04 c:wsl c:wslUbuntu-plasma-desktop
wsl -s Ubuntu-20.04
cls
echo Distribúcia Ubuntu-20.04 bola úspešne opätovne nainštalovaná!
pause
Súbor Set-default-user.bat — na nastavenie používateľa „predvolené“.
@echo off
set /p answer=Zadajte existujúci účet v Ubuntu (engineer):
c:wslUbuntu-20.04ubuntu2004.exe config --default-user %answer%
cls
echo Používateľský účet %answer% v Ubuntu-20.04 bol nastavený ako predvolený!
pause
Súbor Start-Ubuntu-20.04-plasma-desktop.bat — vlastne spustenie pracovnej plochy KDE Plasma.
@echo off
echo ===================================== Pozor! ============================================
echo Pre správnu funkciu GUI Ubuntu 20.04 vo WSL2 je potrebné použiť X Server.
echo Poznámka: V prípade používania VcXsrv Windows X Server je potrebné odkomentovať
echo riadky v súbore Start-Ubuntu-20.04-plasma-desktop.bat, ktoré obsahujú "config.xlaunch" a
echo "vcxsrv.exe", a zakomentovať všetky riadky, ktoré obsahujú "x410".
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
Súbor Start-Ubuntu-20.04-terminal.bat — spustenie grafického terminálu bez pracovnej plochy KDE Plasma.
@echo off
echo ===================================== Pozor! ============================================
echo Pre správnu funkciu GUI Ubuntu 20.04 vo WSL2 je potrebné použiť X Server.
echo Poznámka: pri použití VcXsrv Windows X Server je potrebné odkomentovať
echo riadky v súbore Start-Ubuntu-20.04-plasma-desktop.bat, ktoré obsahujú "config.xlaunch" a
echo "vcxsrv.exe", a zakomentovať všetky riadky, ktoré obsahujú "x410".
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
Rovnako pre pohodlné používanie v adresári wsl pripravíme skratky, ktoré odkazujú na príslušné bat súbory. Po tom sa obsah adresára wsl vyzerá nasledovne:
Spustenie pracovnej plochy KDE Plasma
Skontrolujeme, či sú všetky prípravné kroky dokončené, skúsime spustiť skratku Plasma-desktop. Objaví sa výzva na heslo, zadáme heslo pre účet a… okno sa zatvorí. Po prvýkrát je to normálne. Skúsime znova — a vidíme známu panel úloh KDE Plasma. Nastavíme požadovaný vzhľad panela úloh, na príklade pre pohodlné používanie sa panel presunie na pravú stranu obrazovky a centrovaný. Skontrolujeme nastavenia lokalizácie, v prípade potreby pridáme ruský jazyk:
V prípade potreby umiestnime skratky pre nainštalované linuxové aplikácie na panel úloh KDE Plasma.
Ak Ubuntu 20.04 vyžaduje odhlásenie užívateľa na vykonanie zmien v nastaveniach, alebo ak potrebujete reštartovať OS, pre to v Windows Termináli zadajte príkaz:
wsl -d Ubuntu20.04 --shutdown
Pomocou skratky Plasma-desktop alebo Konsole môžete spustiť GUI KDE Plasma Ubuntu 20.04. Napríklad, nainštalujeme pomocou Konsole grafický editor GIMP:
Po dokončení inštalácie spustíme z Konsole grafický editor GIMP:
GIMP funguje, čo sa malo overiť.
A to, ako fungujú rôzne linuxové aplikácie v KDE Plasma vo WSL2:
nastavený panel úloh KDE Plasma je na pravej strane obrazovky a video vo Firefoxi sa prehráva so zvukom.
V prípade potreby je možné nastaviť prístup k Ubuntu20.04 podľa SSH a RDP, na tento účel je potrebné nainštalovať príslušné služby príkazom:
sudo apt install ssh xrdp -y
poznámka: na povolenie prístup s heslom je SSH potrebné upraviť súbor /etc/ssh/sshd_config, a to konkrétne parameter PasswordAuthentication no je potrebné nastaviť na hodnotu PasswordAuthentication yes, uložiť zmeny a reštartovať Ubuntu20.04.
Pri každom spustení Ubuntu20.04 sa mení vnútorná ip-adresa, pred nastavením vzdialeného prístupu je potrebné overiť aktuálnu ip-adresu príkazom ip a:
Túto ip-adresu je potrebné zadať do nastavení relácií SSH a RDP pred spustením.
Takto vyzerá vzdialený prístup cez SSH s pomocou MobaXterm:
A takto vyzerá vzdialený prístup cez RDP:
Použitie X-servera vcxsrv namiesto x410
Spúšťame a nastavujeme vcxsrv, starostlivo nastavte príslušné zaškrtávacie políčka:




Uložíme nastavenú konfiguráciu do adresára wslvcxsrv so štandardným názvom config.xlaunch.
Upravíme bat-súbory Start-Ubuntu-20.04-plasma-desktop.bat a Start-Ubuntu-20.04-terminal.bat v súlade s pokynmi v nich.
Spúšťame skratku Plasma-desktop, a toto je výsledok:
Pracovná plocha KDE Plasma úplne zakrýva pracovnú plochu Windows, na prepínanie medzi oknami aplikácií linux a windows používame známe kombinácie klávesov Alt+Tab, čo nie je veľmi pohodlné.
Okrem toho sa objavila nepríjemná vlastnosť X-servera vcxsrv – padá pri spustení niektorých aplikácií, konkrétne toho istého GIMP alebo LibreOffice Writer. Možno treba počkať, kým vývojári odstránia zistené „bugy“, ale nie je to isté... Takže pre dosiahnutie prijateľných výsledkov je lepšie používať X Server Microsoft x410.
Záver
Napriek tomu je potrebné uznať spoločnosť Microsoft, produkt WSL2 je celkom funkčný a podľa môjho laického názoru – veľmi úspešný. A ako viem, vývojári na ňom naďalej usilovne pracujú, a možno – o rok alebo dva, sa táto subsystéma predstaví v celej svojej funkčnej plnosti.
Zdroj: habr.com
