Wprowadzenie
Ten artykuł jest przeznaczony dla administratorów systemów, którzy przygotowują typowe stanowiska pracy na komputerach z systemem Windows 10, w tym programistów.
Należy zauważyć, że istnieje pewien problem związany z niemożnością zintegrowania oprogramowania uzyskanego ze sklepu internetowego Microsoft Store do użycia w niestandardowym obrazie systemu Windows 10. Nie wchodząc w szczegóły wyjaśnię, że problem ten jest związany z faktem, że programy instalowane ze sklepu Microsoft Store komunikują się z kontem usługi Administratora, a tworzenie niestandardowego obrazu jest zakończone przez narzędzie sysprep
wystąpią błędy z powodu tej okoliczności.
Metoda omówiona w tym artykule pozwala uniknąć tego problemu podczas przygotowywania obrazu systemu operacyjnego Windows 10 ze wstępnie skonfigurowanym podsystemem WSL2, a także wstępnie przygotowanego i skonfigurowanego obrazu systemu operacyjnego Ubuntu 20.04 z graficznym interfejsem użytkownika KDE Plasma, który z kolei może mieć własny zestaw niestandardowego oprogramowania.
W Internecie jest wiele przykładów i samouczków dotyczących konfigurowania podsystemów WSL (tj. WSL1 i stosunkowo nowego WSL2), z konfiguracją interfejsu GUI dla systemów operacyjnych opartych na systemie Linux od Ubuntu 16.04 do Ubuntu 20.04, ale dotyczyło to głównie komputerów stacjonarnych opartych na tzw. „lekki” xfce4, który ma zrozumiałe ograniczenia w ustawieniach użytkownika. Ale jeśli chodzi o GUI KDE Plasma dla Ubuntu 20.04, w sieci nie ma zbyt wielu informacji. Ale to właśnie ta opcja zapewnia użytkownikowi końcowemu niemal nieograniczony zestaw ustawień zarówno wyglądu systemu, jak i ustawień sprzętowych, oczywiście z uwzględnieniem aktualnych możliwości integracyjnych systemów linux zaimplementowanych w podsystemie WSL2.
Instalacja wymaganego zestawu oprogramowania i konfiguracja WSL2
Sprawdzamy aktualną wersję systemu Windows, w tym celu w pasku wyszukiwania systemu Windows wprowadź polecenie winver
i otrzymujemy coś takiego:
Ważne jest, aby wersja systemu operacyjnego to 1903 lub 1909 (określone wersje systemu operacyjnego muszą być z zainstalowaną aktualizacją zbiorczą KB4566116) lub 2004 (numer kompilacji nie mniejszy niż 19041), reszta informacji nie ma znaczenia. Jeśli numer wersji jest niższy, zaleca się uaktualnienie do najnowszej wersji systemu Windows, aby poprawnie odtworzyć wyniki z tego artykułu.
Dla wygody dalszych działań zainstaluj bezpłatny Windows Terminal za pomocą Microsoft Store (istnieje również możliwość pobrania z innych źródeł):
Instalujemy X Server X410 za pośrednictwem tego samego sklepu Microsoft Store, to oprogramowanie jest płatne, ale jest bezpłatny okres 15 dni, który wystarcza na różne testy.
Jako bezpłatna alternatywa dla X410
W dowolnym dogodnym miejscu na dysku tworzymy katalog, w którym będziemy przechowywać nasze pliki. Jako przykład utwórzmy katalog C:wsl
.
Ubuntu_2004.2020.424.0_x64
w coś bardziej akceptowalnego, np Ubuntu-20.04
i skopiuj go do katalogu C:wsl
(dalej po prostu wsl
).
wsl
wieloplatformowy serwer dźwięku PulseAudio v.1.1., dokonujemy również poprawek w jego plikach konfiguracyjnych.
W pliku wslpulseaudio-1.1etcpulsedefault.pa
sekcja Load audio drivers statically
edytuj linię:
load-module module-waveout sink_name=output source_name=input record=0
i w sekcji Network access
edytuj linię:
load-module module-native-protocol-tcp auth-ip-acl=127.0.0.1 auth-anonymous=1
W pliku wslpulseaudio-1.1etcpulsedaemon.conf
odkomentuj i zmień linię
exit-idle-time = -1
Konfigurujemy podsystem WSL2 zgodnie z
Jeśli jest to konieczne,
Uruchamiamy Windows Terminal i wybieramy tryb wiersza polecenia, naciskając klawisze Ctrl+Shift+2
.
Przede wszystkim ustawiamy tryb działania WSL2, w tym celu wpisujemy polecenie:
wsl --set-default-version 2
Przejdź do samodzielnego katalogu programu ładującego Ubuntu 20.04, w moim przypadku tak jest wslUbuntu-20.04
i uruchom plik ubuntu2004.exe
. Po wyświetleniu monitu o podanie nazwy użytkownika wprowadź nazwę użytkownika engineer
(możesz wpisać dowolną inną nazwę), wprowadź swoje hasło i zatwierdź wprowadzone hasło do wskazanego konta:
Pojawi się monit terminala, jądro Ubuntu 20.04 jest zainstalowane. Sprawdźmy poprawność ustawień trybu WSL2, w tym celu w Windows Terminal wybieramy zakładkę Windows PowerShell i wpisujemy komendę:
wsl -l -v
wynik wykonania powinien być taki:
Konfigurujemy zaporę sieciową Microsoft Defender, tj. wyłącz go dla sieci publicznej:
Konfigurowanie Ubuntu 20.04
W terminalu Windows wybierz ponownie kartę Wiersz polecenia i zainstaluj aktualizacje dla Ubuntu 20.04. Aby to zrobić, w wierszu poleceń wpisz:
sudo apt update && sudo apt upgrade –y
Zainstaluj pulpit KDE Plasma:
sudo apt install kubuntu-desktop -y
instalacja trwa do 30 minut, w zależności od wydajności komputera i przepustowości kanału dostępu do internetu, na żądanie instalatora potwierdzamy OK
.
Zainstaluj rosyjską lokalizację i słowniki Ubuntu 20.04. Aby to zrobić, w wierszu poleceń wpisz:
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
Dodaj najnowszą wersję pulpitu KDE Plasma:
sudo add-apt-repository ppa:kubuntu-ppa/backports
sudo apt update && sudo apt full-upgrade -y
Dodajemy własny zestaw aplikacji konsolowych np mc
и neofetch
:
sudo apt install mc neofetch -y
Sprawdzamy, co się stało, wchodzimy do wiersza poleceń neofetch
, zobacz zrzut ekranu:
Edycja pliku konfiguracyjnego WSL /etc/wsl.conf
:
sudo nano /etc/wsl.conf
skopiuj tekst do pustego okna edytora tekstu, które zostanie otwarte:
[automount]
enabled = true
root = /mnt
options = «metadata,umask=22,fmask=11»
mountFsTab = true
[network]
generateHosts = true
generateResolvConf = true
[interop]
enabled = true
appendWindowsPath = true
Zapisz zmiany (Ctrl+O
), potwierdź operację i zamknij edytor tekstu (Ctrl+X
).
Eksportowanie dostosowanego obrazu Ubuntu-20.04 do utworzonego przez nas katalogu wsl
. Aby to zrobić, w terminalu Windows ponownie wybierz kartę Windows PowerShell i wprowadź polecenie:
wsl --export Ubuntu-20.04 c:wslUbuntu-plasma-desktop
utworzony obraz pomoże nam zautomatyzować operacje uruchamiania/reinstalacji skonfigurowanego Ubuntu 20.04, w razie potrzeby pozwoli nam w łatwy sposób przenieść go na inny komputer.
Przygotowanie plików bat i skrótów do pulpitu Windows
Za pomocą edytora Notepad ++ utwórz pliki bat (wymagane w kodowaniu OEM-866 do poprawnego wyjścia znaków cyrylicy):
plik Install-Ubuntu-20.04-plasma-desktop.bat
- przeznaczony do automatyzacji wstępnej instalacji utworzonego obrazu Ubuntu 20.04 na komputerze z już skonfigurowanym podsystemem WSL2 i serwerem X. Jeśli nazwa użytkownika i hasło różnią się od podanych w przykładzie, musisz dokonać odpowiednich zmian w tym pliku 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
plik Reinstall-Ubuntu-20.04-plasma-desktop.bat
- przeznaczony do ponownej instalacji przygotowanego obrazu Ubuntu 20.04 na komputerze.
@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
plik Set-default-user.bat
- aby ustawić domyślnego użytkownika.
@echo off
set /p answer=Введите существующую учетную запись в Ubuntu (engineer):
c:wslUbuntu-20.04ubuntu2004.exe config --default-user %answer%
cls
echo Учетная запись пользователя %answer% в Ubuntu-20.04 установлена по умолчанию!
pause
plik Start-Ubuntu-20.04-plasma-desktop.bat
- faktyczne uruchomienie pulpitu 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
plik Start-Ubuntu-20.04-terminal.bat
- uruchomienie terminala graficznego bez pulpitu 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
Również dla ułatwienia korzystania z katalogu wsl
przygotowujemy skróty wskazujące na odpowiednie pliki bat. Następnie zawartość katalogu wsl
wygląda tak:
Uruchamianie pulpitu plazmowego KDE
Sprawdzamy, czy wszystkie czynności przygotowawcze zostały zakończone, próbujemy uruchomić skrót Plasma-desktop
. Pojawia się prośba o hasło, wprowadź hasło do konta i… okno się zamknie. Za pierwszym razem jest ok. Próbujemy ponownie - i widzimy znajomy pasek zadań Plazmy KDE. Dostosowujemy wygląd paska zadań, w przykładzie dla ułatwienia obsługi panel został przesunięty na prawą stronę ekranu i wyśrodkowany. Sprawdzamy ustawienia lokalizacji, w razie potrzeby dodajemy język rosyjski:
W razie potrzeby wprowadzamy skróty do zainstalowanych aplikacji linuksowych na pasku zadań KDE Plasma.
Jeśli Ubuntu 20.04 wymaga wylogowania się z konta użytkownika w celu zastosowania zmian w ustawieniach lub musisz ponownie uruchomić system operacyjny, w tym celu w terminalu Windows wpisz polecenie:
wsl -d Ubuntu20.04 --shutdown
Z etykietą Plasma-desktop
lub Konsole
możesz uruchomić GUI KDE Plasma Ubuntu 20.04. Na przykład zainstaluj za pomocą Konsole
Edytor grafiki GIMP:
Po zakończeniu instalacji uruchom z Konsole
Edytor grafiki GIMP:
GIMP działa, co chciałem sprawdzić.
A oto jak działają różne aplikacje linuksowe w KDE Plasma w WSL2:
dostosowany pasek zadań Plazmy KDE znajduje się po prawej stronie ekranu. a wideo w oknie Firefoksa jest odtwarzane z dźwiękiem.
W razie potrzeby możesz skonfigurować dostęp do Ubuntu20.04 przez SSH
и RDP
, w tym celu należy zainstalować odpowiednie usługi za pomocą polecenia:
sudo apt install ssh xrdp -y
uwaga: aby włączyć dostęp za pomocą hasła SSH
musisz edytować plik /etc/ssh/sshd_config
, a mianowicie parametr PasswordAuthentication no
musi być ustawiony na PasswordAuthentication yes
, zapisz zmiany i uruchom ponownie Ubuntu20.04.
Za każdym razem, gdy uruchamiasz Ubuntu20.04, zmienia się wewnętrzny adres IP, przed skonfigurowaniem zdalnego dostępu musisz sprawdzić aktualny adres IP za pomocą polecenia ip a
:
W związku z tym ten adres IP należy wprowadzić w ustawieniach sesji SSH
и RDP
przed rozpoczęciem.
Tak wygląda zdalny dostęp SSH
za pomocą MobaXterm:
A tak wygląda zdalny dostęp RDP
:
Używanie serwera x vcxsrv zamiast x410
Uruchomienie i konfiguracja vcxsrv
, ostrożnie zaznacz odpowiednie pola wyboru:
Zapisanie skonfigurowanej konfiguracji w katalogu wslvcxsrv
ze standardową nazwą config.xlaunch
.
Edycja plików bat Start-Ubuntu-20.04-plasma-desktop.bat
и Start-Ubuntu-20.04-terminal.bat
zgodnie z ich instrukcjami.
Uruchamianie skrótu Plasma-desktop
, i oto co otrzymujemy:
Pulpit KDE Plasma całkowicie zamyka pulpit Windows, aby przełączać się między oknami aplikacji Linux i Windows używamy dobrze znanej kombinacji klawiszy Alt+Tab
, co nie jest zbyt wygodne.
Ponadto ujawniono nieprzyjemną funkcję serwera X vcxsrv
- zawiesza się podczas uruchamiania niektórych aplikacji, w szczególności tego samego GIMP lub LibreOffice Writer. Być może powinniśmy poczekać, aż deweloperzy usuną zauważone „błędy”, ale to nie jest pewne… Aby więc uzyskać akceptowalne wyniki, lepiej skorzystać z X Serwera Microsoft x410.
wniosek
Mimo to musimy oddać hołd Microsoftowi, produkt WSL2 okazał się całkiem sprawny i moim niedoświadczonym zdaniem bardzo udany. I o ile mi wiadomo, twórcy nadal intensywnie go „dokańczają” i być może – za rok lub dwa podsystem ten pojawi się w całej swojej funkcjonalnej kompletności.
Źródło: www.habr.com