
Uvod
Ovaj članak je namijenjen sistemskim administratorima koji pripremaju standardizovana radna mesta na računarima sa operativnim sistemom Windows 10, uključujući i za razvojne programere.
Treba napomenuti da postoji određeni problem koji se odnosi na nemogućnost integracije softvera preuzetog u online prodavnici Microsoft Store za korišćenje u korisničkom imidžu Windows 10. Ne ulazeći u detalje, mogu reći da je ovaj problem povezan sa tim da se programi instalirani iz Microsoft Store-a povezuju sa servisnim korisničkim nalogom Administrator, i prilikom završetka kreiranja korisničkog imidža pomoću alata sysprep javljuju se greške uzrokovane ovom situacijom.
Način razmatran u ovom članku omogućava da se izbegne takav problem prilikom pripreme imidža operativnog sistema Windows 10 sa unapred podešenom WSL2 podsistemom, kao i sa unapred pripremljenim i podešenim imidžom operativnog sistema Ubuntu 20.04 sa GUI KDE Plasma, koji takođe može imati svoj set korisničkog softvera.
Na internetu postoji mnogo primera i vodiča za podešavanje WSL podsistema (tj. WSL1 i relativno noviji WSL2), sa podešavanjem GUI interfejsa za linux sisteme zasnovane na operativnim sistemima od verzije Ubuntu 16.04 do Ubuntu 20.04, ali se uglavnom odnosilo na radne površine zasnovane na takozvanom „laganom” xfce4, koji ima jasno objašnjene ograničenja u korisničkim podešavanjima. Kada su u pitanju GUI KDE Plasma za Ubuntu 20.04, na internetu se nije našlo značajnih informacija. Međutim, ova opcija krajnjem korisniku pruža gotovo neograničen set podešavanja kako izgleda sistema, tako i podešavanja opreme, naravno uzimajući u obzir trenutne mogućnosti integracije linux sistema implementiranih u WSL2 podsistemu.
Instalacija potrebnog skupa softvera i podešavanje WSL2
Proveravamo trenutnu verziju Windows-a, za to u pretrazi Windows-a unosimo komandu winver i dobijamo otprilike sledeće:
Važno je da operativni sistem ima verziju 1903 ili 1909 (navedene verzije operativnog sistema treba da budu sa instaliranim kumulativnim ažuriranjem KB4566116), ili 2004 (broj gradnje najmanje 19041), ostale informacije nisu bitne. Ako je broj verzije manji, preporučuje se nadogradnja na najnoviju verziju Windows-a za ispravno ponavljanje rezultata izloženih u ovom članku.
Za udobnost daljnjih koraka instaliramo besplatni Windows Terminal koristeći Microsoft Store (također postoji mogućnost preuzimanja iz drugih izvora):
Instaliramo X Server X410 putem istog Microsoft Storea, ovaj softver je naplatan, ali postoji besplatni period od 15 dana, što je sasvim dovoljno za izvođenje raznih testova.
Kao besplatnu alternativu X410 i instaliramo X-server VcXsrv.
Na bilo kojem prikladnom mjestu na disku kreiramo direktorij u kojem ćemo pohranjivati naše datoteke. Kao primjer, kreirat ćemo direktorij C:wsl.
i instaliramo autonomni installer Ubuntu 20.04, raspakiramo dobivenu datoteku pomoću arhivatora (na primjer 7-zip). Preimenujemo raspakirani direktorij s dužim imenom Ubuntu_2004.2020.424.0_x64 u nešto prihvatljivije, na primjer Ubuntu-20.04 i kopiramo ga u direktorij C:wsl (dalje u tekstu jednostavno wsl).
i raspakiramo u direktorij wsl kros-platformski audio server PulseAudio v.1.1., također unosimo ispravke u njegove konfiguracijske datoteke.
U datoteci wslpulseaudio-1.1etcpulsedefault.pa u odjeljku Load audio drivers statically uređujemo redak:
load-module module-waveout sink_name=output source_name=input record=0
a u odjeljku Network access uređujemo redak:
load-module module-native-protocol-tcp auth-ip-acl=127.0.0.1 auth-anonymous=1
U datoteci wslpulseaudio-1.1etcpulsedaemon.conf otpornimo i mijenjamo redak
exit-idle-time = -1
Podesimo WSL2 supsustav u skladu s Microsoftom. Jedina napomena — distribuciju Ubuntu smo već preuzeli, a instalirat ćemo je u sljedećem koraku. Uglavnom, podešavanje se svodi na omogućavanje dodatnih komponenti 'Windows Subsystem for Linux' i 'Platforma za virtualizaciju', te ponovnu uspostavu da bi se primjene promjene u postavkama računala:
Po potrebi i instaliramo paket ažuriranja za Linux jezgru u WSL2.
Pokrećemo Windows Terminal i biramo način rada Command Prompt pritiskom tipki Ctrl+Shift+2.
Prvo postavljamo način rada WSL2, za to unosimo naredbu:
wsl --set-default-version 2
Prelazimo u direktorij s autonomnim bootloaderom Ubuntu 20.04, u mom slučaju to je wslUbuntu-20.04 i pokrećemo datoteku ubuntu2004.exe. Kada se pojavi zahtjev za korisničkim imenom, navodim ime engineer (možete unijeti bilo koje drugo ime), unesite svoju lozinku i potvrdite unesenu lozinku za navedeni korisnički račun:
Pojavila se linija poziva terminala, Ubuntu 20.04 je instaliran. Provjerit ćemo ispravnost postavki WSL2, za to u Windows Terminalu biramo karticu Windows PowerShell i unosimo naredbu:
wsl -l -v
rezultat izvršenja trebao bi biti sljedeći:
Postavljamo Microsoft Defender vatrozid, tj. onemogućujemo ga za javnu mrežu:
Postavka Ubuntu 20.04
U Windows Terminalu opet biramo karticu Command Prompt i instaliramo ažuriranja za Ubuntu 20.04. Za to u komandnoj liniji unosimo:
sudo apt update && sudo apt upgrade -y
Instaliramo KDE Plasma radnu površinu:
sudo apt install kubuntu-desktop -y
instalacija traje do 30 minuta, ovisno o performansama računala i propusnosti internetske veze, a prilikom pojavljivanja upita instalatera potvrdite. OK.
Instaliramo rusku lokalizaciju i rječnike za Ubuntu 20.04. Za to u komandnoj liniji unosimo:
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 # napomena: odaberite ru_RU.UTF-8 UTF-8, pogledajte snimke ekrana u nastavku.
sudo apt-get install --reinstall locales
Dodajemo najnoviju verziju KDE Plasma radne površine:
sudo add-apt-repository ppa:kubuntu-ppa/backports
sudo apt update && sudo apt full-upgrade -y
Dodajemo svoj set konzolnih aplikacija, na primjer mc i neofetch:
sudo apt install mc neofetch -y
Provjeravamo što smo dobili, unosimo u komandnu liniju neofetch, pogledajte snimku ekrana:
Uređujemo konfiguracijski fajl WSL /etc/wsl.conf:
sudo nano /etc/wsl.conf
u otvorenom praznom prozoru uređivača teksta kopiramo tekst:
[automount]
enabled = true
root = /mnt
options = "metadata,umask=22,fmask=11"
mountFsTab = true
[network]
generateHosts = true
generateResolvConf = true
[interop]
enabled = true
appendWindowsPath = true
spremamo izmjene (Ctrl+O), potvrđujemo operaciju i izlazimo iz uređivača teksta (Ctrl+X).
Eksportiramo podešeni imidž Ubuntu-20.04 u direktorij koji smo kreirali wsl. Za to u Windows Terminalu opet biramo karticu Windows PowerShell i unosimo naredbu:
wsl --export Ubuntu-20.04 c:wslUbuntu-plasma-desktop
stvoreni imidž će nam pomoći da automatiziramo operacije pokretanja/ponovne instalacije podešene Ubuntu 20.04, a po potrebi će omogućiti jednostavan prijenos na drugo računalo.
Priprema bat-datoteka i prečaca na radnoj površini Windowsa
Pomoću uređivača Notepad++ kreiramo bat-datoteke (obavezno u kodiranju OEM-866 za ispravno prikazivanje ćiriličnih znakova):
Datoteka Install-Ubuntu-20.04-plasma-desktop.bat — namijenjen automatizaciji prvotne instalacije kreirane slike Ubuntu 20.04 na računalu sa već konfiguriranom WSL2 podsustavom i X-serverom. Ako se korisničko ime i lozinka razlikuju od onih u primjeru, potrebno je unijeti odgovarajuće promjene u ovu bat-datoteku:
@echo off
wsl --set-default-version 2
cls
echo Molimo pričekajte završetak instalacije distribucije Ubuntu-20.04...
wsl --import Ubuntu-20.04 c:wsl c:wslUbuntu-plasma-desktop
wsl -s Ubuntu-20.04
cls
echo Distribucija Ubuntu-20.04 uspješno je instalirana!
echo Ne zaboravite promijeniti zadani račun „root” na postojeći korisnički račun,
echo ili koristite unaprijed instalirani račun „inženjer”, lozinka: „password”.
pause
Datoteka Reinstall-Ubuntu-20.04-plasma-desktop.bat — namijenjen ponovnoj instalaciji pripremljene slike Ubuntu 20.04 na računalu.
@echo off
wsl --unregister Ubuntu-20.04
wsl --set-default-version 2
cls
echo Molimo pričekajte završetak ponovne instalacije distribucije Ubuntu-20.04...
wsl --import Ubuntu-20.04 c:wsl c:wslUbuntu-plasma-desktop
wsl -s Ubuntu-20.04
cls
echo Distribucija Ubuntu-20.04 uspješno je ponovno instalirana!
pause
Datoteka Set-default-user.bat — za postavljanje korisnika „po defaultu”.
@echo off
set /p answer=Unesite postojeći korisnički račun u Ubuntu (inženjer):
c:wslUbuntu-20.04ubuntu2004.exe config --default-user %answer%
cls
echo Korisnički račun %answer% u Ubuntu-20.04 postavljen kao zadani!
pause
Datoteka Start-Ubuntu-20.04-plasma-desktop.bat — pokretanje radne površine KDE Plasma.
@echo off
echo ===================================== Upozorenje! ============================================
echo Za ispravan rad GUI-a Ubuntu 20.04 u WSL2 potrebno je koristiti X Server.
echo Napomena: U slučaju korištenja VcXsrv Windows X Servera potrebno je odkomentirati
echo redove u datoteci Start-Ubuntu-20.04-plasma-desktop.bat koji sadrže "config.xlaunch" i
echo "vcxsrv.exe", te komentirati sve redove koji sadrže "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,hr -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
Datoteka Start-Ubuntu-20.04-terminal.bat — pokretanje grafičkog terminala bez radne površine KDE Plasma.
@echo off
echo ===================================== Pozor! ============================================
echo Za ispravan rad GUI Ubuntu 20.04 u WSL2 potrebno je koristiti X Server.
echo Napomena: u slučaju korištenja VcXsrv Windows X Server potrebno je odkomentirati
echo redove u datoteci Start-Ubuntu-20.04-plasma-desktop.bat koji sadrže "config.xlaunch" i
echo "vcxsrv.exe", te zakomentirati sve redove koji sadrže "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
Također, radi lakše upotrebe u direktoriju wsl pripremamo prečace koji ukazuju na odgovarajuće bat-datoteke. Nakon toga sadržaj direktorija wsl izgleda ovako:
Pokretanje radne površine KDE Plasma
Provjeravamo jesu li svi pripremni koraci završeni, pokušavamo pokrenuti prečac Plasma-desktop. Pojavljuje se prozor za unos lozinke, unosimo lozinku za račun i… prozor se zatvara. To je normalno prvi put. Pokušavamo ponovno — i vidimo poznatu traku zadataka KDE Plasma. Postavljamo željeni izgled trake zadataka, na primjer, za lakše korištenje traka se premješta na desnu stranu ekrana i centrirana je. Provjeravamo postavke lokalizacije, po potrebi dodajemo ruski jezik:
Ako je potrebno, prečace za instalirane linux-aplikacije postavljamo na traku zadataka KDE Plasma.
Ako Ubuntu 20.04 traži da se odjavite iz korisničkog računa radi primjene promjena u postavkama, ili trebate ponovo pokrenuti OS, za to u Windows Terminal upišite naredbu:
wsl -d Ubuntu20.04 --shutdown
Pomoću prečaca Plasma-desktop ili Konsole možete pokrenuti GUI KDE Plasma Ubuntu 20.04. Na primjer, instalirajmo s pomoću Konsole grafički uređivač GIMP:
Nakon završetka instalacije pokrećemo iz Konsole grafički uređivač GIMP:
GIMP radi, što je i bila potreba za provjerom.
A evo kako rade razne linux-aplikacije u KDE Plasma u WSL2:
konfigurirana traka zadataka KDE Plasma se nalazi na desnoj strani ekrana, a video u prozoru Firefox reprodukuje se sa zvukom.
Ako je potrebno, može se postaviti pristup Ubuntu20.04 prema SSH i RDP, za to je potrebno instalirati odgovarajuće usluge komandnom:
sudo apt install ssh xrdp -y
napomena: za omogućavanje pristupa putem lozinke SSH potrebno je urediti datoteku /etc/ssh/sshd_config, odnosno parametar PasswordAuthentication no morate postaviti na vrijednost PasswordAuthentication yes, spremite izmjene i restartajte Ubuntu 20.04.
Pri svakom pokretanju Ubuntu 20.04 mijenja se unutarnja ip-adresa, prije postavljanja udaljenog pristupa potrebno je provjeriti trenutnu ip-adresu pomoću naredbe ip a:
Prema tome, ovu ip-adresu treba unijeti u postavke sesija SSH i RDP prije pokretanja.
Ovako izgleda udaljeni pristup putem SSH MobaXterm-a:
A ovako izgleda udaljeni pristup putem RDP:
Korištenje X-servera vcxsrv umjesto x410
Pokrećemo i postavljamo vcxsrv, pažljivo postavljajući odgovarajuće opcije:




Spremite konfiguraciju u mapu wslvcxsrv sa standardnim imenom config.xlaunch.
Uredite bat-datoteke Start-Ubuntu-20.04-plasma-desktop.bat i Start-Ubuntu-20.04-terminal.bat prema uputama koje sadrže.
Pokrećemo prečac Plasma-desktop, i evo što dobijemo:
Radna površina KDE Plasma potpuno prekriva radnu površinu Windows-a, za prebacivanje između prozora linux- i windows-aplikacija koristimo poznatu kombinaciju tipki Alt+Tab, što nije baš zgodno.
Osim toga, otkrivena je neugodna osobina X-servera vcxsrv – ruši se prilikom pokretanja nekih aplikacija, osobito GIMP-a ili LibreOffice Writera. Možda bi trebalo pričekati da programeri isprave primijećene 'bagove', ali to nije sigurno... Stoga je za postizanje prihvatljivih rezultata bolje koristiti Microsoft X Server x410.
Zaključak
Ipak, treba priznati kompaniji Microsoft, proizvod WSL2 je veoma funkcionalan, i s mog neiskusnog stajališta — prilično uspješan. A koliko mi je poznato, programeri i dalje marljivo rade na njegovom 'dovršavanju', pa će možda za godinu ili dvije, ova podsustava biti predstavljena u punoj funkcionalnosti.
Izvor: habr.com
