Introducere
Acest articol este destinat atenției administratorilor de sistem care pregătesc locuri de muncă tipice pe computere care rulează Windows 10, inclusiv dezvoltatorii de software.
De menționat că există o anumită problemă asociată cu imposibilitatea integrării software-ului obținut din magazinul online Microsoft Store pentru utilizare într-o imagine personalizată Windows 10. Fără a intra în detalii, voi clarifica că această problemă este legată de faptul că programele instalate din Magazinul Microsoft comunică cu contul de serviciu Administrator și când crearea imaginii personalizate este finalizată de utilitar sysprep
apar erori din această împrejurare.
Metoda discutată în acest articol evită această problemă atunci când se pregătește o imagine de sistem de operare Windows 10 cu un subsistem WSL2 preconfigurat, precum și o imagine de sistem de operare Ubuntu 20.04 pre-preparată și configurată cu o interfață grafică KDE Plasma, care la rândul său poate avea propria sa set de software personalizat.
Există o mulțime de exemple și tutoriale pe Internet pentru configurarea subsistemelor WSL (adică WSL1 și relativ noua WSL2), cu configurarea unei interfețe GUI pentru sistemele OS bazate pe Linux de la Ubuntu 16.04 la Ubuntu 20.04, dar aceasta se referea în principal la desktop-uri bazate pe pe așa-numitul. xfce4 „ușor”, care are limitări ușor de înțeles în setările utilizatorului. Dar în ceea ce privește GUI-ul KDE Plasma pentru Ubuntu 20.04, nu există multe informații găsite pe net. Dar această opțiune este cea care oferă utilizatorului final un set aproape nelimitat de setări atât pentru aspectul sistemului, cât și pentru setările hardware, desigur, ținând cont de capacitățile actuale de integrare ale sistemelor Linux implementate în subsistemul WSL2.
Instalarea setului de software necesar și configurarea WSL2
Verificăm versiunea actuală de Windows, pentru aceasta, în bara de căutare Windows, introduceți comanda winver
și obținem ceva de genul:
Este important ca versiunea sistemului de operare să fie 1903 sau 1909 (versiunile specificate ale sistemului de operare trebuie să fie cu actualizarea cumulativă KB4566116 instalată) sau 2004 (număr de compilare nu mai puțin de 19041), restul informațiilor nu contează. Dacă numărul versiunii este mai mic, se recomandă să faceți upgrade la cea mai recentă versiune de Windows pentru a reproduce corect rezultatele din acest articol.
Pentru comoditatea acțiunilor ulterioare, instalați gratuit Terminalul Windows folosind Magazinul Microsoft (există și posibilitatea de a descărca din alte surse):
Instalăm X Server X410 prin același Microsoft Store, acest software este plătit, dar există o perioadă gratuită de 15 zile, care este suficientă pentru diverse teste.
Ca alternativă gratuită la X410
În orice loc convenabil de pe disc, creăm un director în care ne vom stoca fișierele. De exemplu, să creăm un director C:wsl
.
Ubuntu_2004.2020.424.0_x64
în ceva mai acceptabil, cum ar fi Ubuntu-20.04
și copiați-l în director C:wsl
(în continuare pur și simplu wsl
).
wsl
server de sunet multiplatform PulseAudio v.1.1., facem, de asemenea, corecții la fișierele sale de configurare.
În dosar wslpulseaudio-1.1etcpulsedefault.pa
În capitol Load audio drivers statically
editați linia:
load-module module-waveout sink_name=output source_name=input record=0
iar in sectiunea Network access
editați linia:
load-module module-native-protocol-tcp auth-ip-acl=127.0.0.1 auth-anonymous=1
În dosar wslpulseaudio-1.1etcpulsedaemon.conf
decomentează și schimbă linia
exit-idle-time = -1
Configuram subsistemul WSL2 în conformitate cu
Daca este necesar
Lansăm Windows Terminal și selectăm modul Command Prompt apăsând tastele Ctrl+Shift+2
.
În primul rând, setăm modul de funcționare WSL2, pentru aceasta introducem comanda:
wsl --set-default-version 2
Schimbați-vă în directorul de bootloader autonom Ubuntu 20.04, în cazul meu, acesta este wslUbuntu-20.04
și rulați fișierul ubuntu2004.exe
. Când vi se solicită un nume de utilizator, introduceți numele de utilizator engineer
(puteți introduce orice alt nume), introduceți parola și confirmați parola introdusă pentru contul specificat:
Apare un prompt de terminal, kernel-ul Ubuntu 20.04 este instalat. Să verificăm corectitudinea setărilor modului WSL2, pentru aceasta, în Terminalul Windows, selectați fila Windows PowerShell și introduceți comanda:
wsl -l -v
rezultatul execuției ar trebui să fie astfel:
Configuram paravanul de protecție Microsoft Defender, de ex. dezactivați-l pentru rețeaua publică:
Configurarea Ubuntu 20.04
În terminalul Windows, selectați din nou fila Prompt de comandă și instalați actualizări pentru Ubuntu 20.04. Pentru a face acest lucru, pe linia de comandă, introduceți:
sudo apt update && sudo apt upgrade –y
Instalați desktopul KDE Plasma:
sudo apt install kubuntu-desktop -y
instalarea durează până la 30 de minute, în funcție de performanța computerului și de lățimea de bandă a canalului de acces la Internet, la solicitarea instalatorului, confirmăm OK
.
Instalați localizarea și dicționarele rusești Ubuntu 20.04. Pentru a face acest lucru, pe linia de comandă, introduceți:
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
Adăugați cea mai recentă versiune a desktop-ului KDE Plasma:
sudo add-apt-repository ppa:kubuntu-ppa/backports
sudo apt update && sudo apt full-upgrade -y
Adăugăm propriul nostru set de aplicații pentru consolă, de exemplu mc
и neofetch
:
sudo apt install mc neofetch -y
Verificăm ce s-a întâmplat, intrăm în linia de comandă neofetch
, vezi captura de ecran:
Editarea fișierului de configurare WSL /etc/wsl.conf
:
sudo nano /etc/wsl.conf
copiați textul în fereastra goală a editorului de text care se deschide:
[automount]
enabled = true
root = /mnt
options = «metadata,umask=22,fmask=11»
mountFsTab = true
[network]
generateHosts = true
generateResolvConf = true
[interop]
enabled = true
appendWindowsPath = true
salvează modificările (Ctrl+O
), confirmați operația și părăsiți editorul de text (Ctrl+X
).
Exportăm imaginea personalizată Ubuntu-20.04 în directorul creat de noi wsl
. Pentru a face acest lucru, în Terminalul Windows, selectați din nou fila Windows PowerShell și introduceți comanda:
wsl --export Ubuntu-20.04 c:wslUbuntu-plasma-desktop
imaginea creată ne va ajuta să automatizăm operațiunile de lansare/reinstalare Ubuntu 20.04 configurat, dacă este necesar, ne va permite să-l transferăm cu ușurință pe alt computer.
Pregătirea fișierelor bat și a comenzilor rapide către desktopul Windows
Folosind editorul Notepad ++, creați fișiere bat (necesar în codificarea OEM-866 pentru ieșirea corectă a caracterelor chirilice):
fișier Install-Ubuntu-20.04-plasma-desktop.bat
- conceput pentru a automatiza instalarea inițială a imaginii create de Ubuntu 20.04 pe un computer cu un subsistem WSL2 deja configurat și un server X. Dacă numele de utilizator și parola diferă de cele specificate în exemplu, atunci trebuie să faceți modificările corespunzătoare în acest fișier bat:
@echo off
wsl --set-default-version 2
cls
echo Ожидайте окончания установки дистрибутива Ubuntu-20.04...
wsl --import Ubuntu-20.04 c:wsl c:wslUbuntu-plasma-desktop
wsl -s Ubuntu-20.04
cls
echo Дистрибутив Ubuntu-20.04 успешно установлен!
echo Не забудьте сменить учетную запись по умолчанию «root» на существующую учетную запись пользователя,
echo либо используйте предустановленную учетную запись «engineer», пароль: «password».
pause
fișier Reinstall-Ubuntu-20.04-plasma-desktop.bat
- conceput pentru a reinstala imaginea pregătită a Ubuntu 20.04 pe 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:wslUbuntu-plasma-desktop
wsl -s Ubuntu-20.04
cls
echo Дистрибутив Ubuntu-20.04 успешно переустановлен!
pause
fișier Set-default-user.bat
- pentru a seta utilizatorul implicit.
@echo off
set /p answer=Введите существующую учетную запись в Ubuntu (engineer):
c:wslUbuntu-20.04ubuntu2004.exe config --default-user %answer%
cls
echo Учетная запись пользователя %answer% в Ubuntu-20.04 установлена по умолчанию!
pause
fișier Start-Ubuntu-20.04-plasma-desktop.bat
- lansarea efectivă a desktop-ului KDE Plasma.
@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: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
fișier Start-Ubuntu-20.04-terminal.bat
- lansarea unui terminal grafic fără desktop-ul KDE Plasma.
@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: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
De asemenea, pentru ușurința în utilizare în catalog wsl
pregătim comenzi rapide care indică către fișierele bat corespunzătoare. Apoi conținutul directorului wsl
este după cum urmează:
Lansarea KDE Plasma Desktop
Verificăm dacă toți pașii pregătitori au fost finalizați, încercăm să lansăm scurtătura Plasma-desktop
. Apare o cerere de parolă, introduceți parola pentru cont și... se închide fereastra. E în regulă prima dată. Încercăm din nou - și vedem bara de activități familiară KDE Plasma. Personalizăm aspectul barei de activități, în exemplu, pentru ușurință în utilizare, panoul este mutat în partea dreaptă a ecranului și centrat. Verificăm setările de localizare, dacă este necesar, adăugăm limba rusă:
Dacă este necesar, aducem comenzi rapide pentru aplicațiile Linux instalate în bara de activități KDE Plasma.
Dacă Ubuntu 20.04 vă solicită să vă deconectați din contul dvs. de utilizator pentru a aplica modificări la setări sau trebuie să reporniți sistemul de operare, pentru a face acest lucru, în Windows Terminal, introduceți comanda:
wsl -d Ubuntu20.04 --shutdown
Cu o scurtătură Plasma-desktop
sau Konsole
puteți rula interfața grafică KDE Plasma Ubuntu 20.04. De exemplu, instalați cu Konsole
Editor grafic GIMP:
După finalizarea instalării, rulați de la Konsole
Editor grafic GIMP:
GIMP funcționează, ceea ce am vrut să verific.
Și iată cum funcționează diverse aplicații Linux în KDE Plasma în WSL2:
bara de activități KDE Plasma personalizată se află în partea dreaptă a ecranului. iar videoclipul din fereastra Firefox se redă cu sunet.
Dacă este necesar, puteți configura accesul la Ubuntu20.04 prin SSH
и RDP
, pentru aceasta trebuie să instalați serviciile corespunzătoare cu comanda:
sudo apt install ssh xrdp -y
notă: pentru a activa accesul prin parolă prin SSH
trebuie să editați fișierul /etc/ssh/sshd_config
, și anume parametrul PasswordAuthentication no
trebuie setat la PasswordAuthentication yes
, salvați modificările și reporniți Ubuntu20.04.
De fiecare dată când porniți Ubuntu20.04, adresa IP internă se schimbă, înainte de a configura accesul la distanță, trebuie să verificați adresa IP curentă folosind comanda ip a
:
În consecință, această adresă ip trebuie introdusă în setările sesiunii SSH
и RDP
înainte de a începe.
Așa arată accesul la distanță SSH
folosind MobaXterm:
Și așa arată accesul la distanță RDP
:
Folosind x server vcxsrv în loc de x410
Lansare și configurare vcxsrv
, setați cu atenție casetele de selectare corespunzătoare:
Salvarea configurației configurate în director wslvcxsrv
cu nume standard config.xlaunch
.
Editarea fișierelor liliac Start-Ubuntu-20.04-plasma-desktop.bat
и Start-Ubuntu-20.04-terminal.bat
conform instructiunilor lor.
Lansarea comenzii rapide Plasma-desktop
, și asta este ceea ce obținem:
Desktop-ul KDE Plasma închide complet desktopul Windows, pentru a comuta între aplicațiile Windows din Linux și Windows, folosim binecunoscuta combinație de taste Alt+Tab
, ceea ce nu este foarte convenabil.
În plus, a fost dezvăluită o caracteristică neplăcută a serverului X vcxsrv
- se blochează la lansarea unor aplicații, în special același GIMP sau LibreOffice Writer. Poate că ar trebui să așteptăm până când dezvoltatorii elimină „bug-urile” observate, dar acest lucru nu este sigur... Deci, pentru a obține rezultate acceptabile, este mai bine să folosiți X Server Microsoft x410.
Concluzie
Totuși, trebuie să aducem un omagiu lui Microsoft, produsul WSL2 s-a dovedit a fi destul de funcțional și, după părerea mea neexperimentată, foarte reușit. Și, din câte știu, dezvoltatorii continuă să-l „termine” intens și poate - într-un an sau doi, acest subsistem va apărea în toată completitudinea sa funcțională.
Sursa: www.habr.com