въведение
Тази статия е предназначена за вниманието на системните администратори, които подготвят типични работни места на компютри, работещи под Windows 10, включително разработчици на софтуер.
Трябва да се отбележи, че има известен проблем, свързан с невъзможността за интегриране на софтуер, получен от онлайн магазина на Microsoft Store, за използване в потребителско изображение на Windows 10. Без да навлизам в подробности, ще поясня, че този проблем е свързан с факта, че програмите, инсталирани от Microsoft Store, комуникират с акаунта на услугата Administrator и когато създаването на персонализирано изображение е завършено от помощната програма sysprep
възникват грешки поради това обстоятелство.
Методът, обсъден в тази статия, избягва този проблем при подготовката на образ на Windows 10 OS с предварително конфигурирана WSL2 подсистема, както и предварително подготвен и конфигуриран образ на Ubuntu 20.04 OS с KDE Plasma GUI, който от своя страна може да има собствен набор от персонализиран софтуер.
Има много примери и уроци в интернет за настройка на WSL подсистеми (т.е. WSL1 и сравнително новия WSL2), с настройка на GUI интерфейс за базирани на Linux OS системи от Ubuntu 16.04 до Ubuntu 20.04, но това се отнася главно за настолни компютри на т.нар. "олекотен" xfce4, който има разбираеми ограничения в потребителските настройки. Но що се отнася до KDE Plasma GUI за Ubuntu 20.04, в мрежата няма много информация. Но именно тази опция предоставя на крайния потребител почти неограничен набор от настройки както за външния вид на системата, така и за хардуерните настройки, разбира се, като се вземат предвид текущите възможности за интеграция на Linux системите, внедрени в подсистемата WSL2.
Инсталиране на необходимия набор от софтуер и конфигуриране на WSL2
Проверяваме текущата версия на Windows, за това в лентата за търсене на Windows въведете командата winver
и получаваме нещо подобно:
Важно е версията на ОС да е 1903 или 1909 (посочените версии на ОС трябва да са с инсталирана кумулативна актуализация KB4566116) или 2004 (номер на компилация не по-малък от 19041), останалата информация няма значение. Ако номерът на версията е по-малък от този, се препоръчва да надстроите до най-новата версия на Windows, за да възпроизведете правилно резултатите в тази статия.
За удобство на по-нататъшни действия инсталирайте безплатния терминал на Windows с помощта на Microsoft Store (съществува и възможност за изтегляне от други източници):
Ние инсталираме X Server X410 през същия Microsoft Store, този софтуер е платен, но има безплатен период от 15 дни, което е достатъчно за различни тестове.
Като безплатна алтернатива на X410
На всяко удобно място на диска създаваме директория, в която ще съхраняваме нашите файлове. Като пример, нека създадем директория C:wsl
.
Ubuntu_2004.2020.424.0_x64
в нещо по-приемливо, като Ubuntu-20.04
и го копирайте в директорията C:wsl
(по-нататък просто wsl
).
wsl
крос-платформен звуков сървър PulseAudio v.1.1., ние също правим корекции в конфигурационните му файлове.
Във файла wslpulseaudio-1.1etcpulsedefault.pa
раздел Load audio drivers statically
редактирайте реда:
load-module module-waveout sink_name=output source_name=input record=0
и в секцията Network access
редактирайте реда:
load-module module-native-protocol-tcp auth-ip-acl=127.0.0.1 auth-anonymous=1
Във файла wslpulseaudio-1.1etcpulsedaemon.conf
разкоментирайте и променете реда
exit-idle-time = -1
Ние конфигурираме подсистемата WSL2 в съответствие с
Ако е необходимо
Стартираме Windows Terminal и избираме режима Command Prompt, като натискаме клавишите Ctrl+Shift+2
.
На първо място, задаваме режима на работа WSL2, за това въвеждаме командата:
wsl --set-default-version 2
Променете към самостоятелната директория за зареждане на Ubuntu 20.04, в моя случай това е wslUbuntu-20.04
и стартирайте файла ubuntu2004.exe
. Когато бъдете подканени за потребителско име, въведете го engineer
(можете да въведете всяко друго име), въведете вашата парола и потвърдете въведената парола за посочения акаунт:
Появява се терминална подкана, ядрото на Ubuntu 20.04 е инсталирано. Нека проверим правилността на настройките на режима WSL2, за това в терминала на Windows изберете раздела Windows PowerShell и въведете командата:
wsl -l -v
резултатът от изпълнението трябва да бъде така:
Ние конфигурираме защитната стена на Microsoft Defender, т.е. деактивирайте го за обществената мрежа:
Настройка на Ubuntu 20.04
В терминала на Windows изберете отново раздела Command Prompt и инсталирайте актуализации за Ubuntu 20.04. За да направите това, в командния ред въведете:
sudo apt update && sudo apt upgrade –y
Инсталирайте работния плот на KDE Plasma:
sudo apt install kubuntu-desktop -y
инсталацията отнема до 30 минути, в зависимост от производителността на компютъра и честотната лента на канала за достъп до интернет, когато бъдете подканени от инсталатора, ние потвърждаваме OK
.
Инсталирайте руска локализация и речници Ubuntu 20.04. За да направите това, в командния ред въведете:
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
Добавете най-новата версия на работния плот на KDE Plasma:
sudo add-apt-repository ppa:kubuntu-ppa/backports
sudo apt update && sudo apt full-upgrade -y
Добавяме например собствен набор от конзолни приложения mc
и neofetch
:
sudo apt install mc neofetch -y
Проверяваме какво се е случило, влизаме в командния ред neofetch
, вижте екранна снимка:
Редактиране на WSL конфигурационния файл /etc/wsl.conf
:
sudo nano /etc/wsl.conf
копирайте текста в празния прозорец на текстовия редактор, който се отваря:
[automount]
enabled = true
root = /mnt
options = «metadata,umask=22,fmask=11»
mountFsTab = true
[network]
generateHosts = true
generateResolvConf = true
[interop]
enabled = true
appendWindowsPath = true
запазите промените (Ctrl+O
), потвърдете операцията и излезте от текстовия редактор (Ctrl+X
).
Експортиране на персонализираното изображение на Ubuntu-20.04 в директорията, която създадохме wsl
. За да направите това, в терминала на Windows изберете отново раздела Windows PowerShell и въведете командата:
wsl --export Ubuntu-20.04 c:wslUbuntu-plasma-desktop
създаденото изображение ще ни помогне да автоматизираме операциите по стартиране / преинсталиране на конфигурирания Ubuntu 20.04, ако е необходимо, ще ни позволи лесно да го прехвърлим на друг компютър.
Подготовка на bat файлове и преки пътища към работния плот на Windows
С помощта на редактора Notepad ++ създайте bat файлове (необходими в кодирането OEM-866 за правилния изход на кирилица):
досие Install-Ubuntu-20.04-plasma-desktop.bat
- предназначен за автоматизиране на първоначалната инсталация на създадения образ на Ubuntu 20.04 на компютър с вече конфигурирана подсистема WSL2 и X сървър. Ако потребителското име и паролата се различават от посочените в примера, тогава трябва да направите съответните промени в този 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
досие Reinstall-Ubuntu-20.04-plasma-desktop.bat
- предназначен за преинсталиране на подготвения образ на Ubuntu 20.04 на компютъра.
@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
досие Set-default-user.bat
- за задаване на потребител по подразбиране.
@echo off
set /p answer=Введите существующую учетную запись в Ubuntu (engineer):
c:wslUbuntu-20.04ubuntu2004.exe config --default-user %answer%
cls
echo Учетная запись пользователя %answer% в Ubuntu-20.04 установлена по умолчанию!
pause
досие Start-Ubuntu-20.04-plasma-desktop.bat
- действителното стартиране на работния плот на 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
досие Start-Ubuntu-20.04-terminal.bat
- стартиране на графичен терминал без работния плот на 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
Също така за лесна употреба в каталога wsl
ние подготвяме преки пътища, сочещи към съответните bat-файлове. След това съдържанието на директорията wsl
изглежда така:
Стартиране на KDE Plasma Desktop
Проверяваме дали всички подготвителни стъпки са изпълнени, опитваме се да стартираме прекия път Plasma-desktop
. Появява се искане за парола, въведете паролата за акаунта и ... прозорецът се затваря. Всичко е наред първия път. Опитваме отново - и виждаме познатата лента на задачите на KDE Plasma. Ние персонализираме външния вид на лентата на задачите, в примера за по-лесно използване панелът се премества в дясната страна на екрана и се центрира. Проверяваме настройките за локализация, ако е необходимо, добавяме руски език:
Ако е необходимо, пренасяме преки пътища за инсталирани Linux приложения в лентата на задачите на KDE Plasma.
Ако Ubuntu 20.04 изисква да излезете от потребителския си акаунт, за да приложите промените в настройките, или трябва да рестартирате операционната система, за да направите това, в терминала на Windows въведете командата:
wsl -d Ubuntu20.04 --shutdown
С пряк път Plasma-desktop
или Konsole
можете да стартирате KDE Plasma Ubuntu 20.04 GUI. Например, инсталирайте с Konsole
Графичен редактор GIMP:
След като инсталацията приключи, стартирайте от Konsole
Графичен редактор GIMP:
GIMP работи, което исках да проверя.
И ето как работят различните Linux приложения в KDE Plasma в WSL2:
персонализираната лента на задачите на KDE Plasma е от дясната страна на екрана. и видеото в прозореца на Firefox се възпроизвежда със звук.
Ако е необходимо, можете да конфигурирате достъпа до Ubuntu20.04 от SSH
и RDP
, за това трябва да инсталирате съответните услуги с командата:
sudo apt install ssh xrdp -y
забележка: за да разрешите достъп с парола от SSH
трябва да редактирате файла /etc/ssh/sshd_config
, а именно параметъра PasswordAuthentication no
трябва да се настрои на PasswordAuthentication yes
, запазете промените и рестартирайте Ubuntu20.04.
Всеки път, когато стартирате Ubuntu20.04, вътрешният ip адрес се променя, преди да настроите отдалечен достъп, трябва да проверите текущия ip адрес с помощта на командата ip a
:
Съответно този ip-адрес трябва да бъде въведен в настройките на сесията SSH
и RDP
преди да започнете.
Ето как изглежда отдалеченият достъп SSH
използвайки MobaXterm:
Ето как изглежда отдалеченият достъп RDP
:
Използване на x сървър vcxsrv вместо x410
Стартиране и настройка vcxsrv
, внимателно поставете съответните квадратчета за отметка:
Запазване на конфигурираната конфигурация в директорията wslvcxsrv
със стандартно име config.xlaunch
.
Редактиране на bat файлове Start-Ubuntu-20.04-plasma-desktop.bat
и Start-Ubuntu-20.04-terminal.bat
според техните инструкции.
Стартиране на прекия път Plasma-desktop
и ето какво получаваме:
Работният плот на KDE Plasma напълно затваря работния плот на Windows, за да превключвате между windows на linux и windows приложения, използваме добре познатата клавишна комбинация Alt+Tab
, което не е много удобно.
Освен това беше разкрита неприятна функция на X сървъра vcxsrv
- се срива при стартиране на някои приложения, по-специално същия GIMP или LibreOffice Writer. Може би трябва да изчакаме, докато разработчиците премахнат забелязаните "бъгове", но това не е сигурно ... Така че, за да получите приемливи резултати, е по-добре да използвате X Server Microsoft x410.
Заключение
Все пак трябва да отдадем почит на Microsoft, продуктът WSL2 се оказа доста работещ и по мое неопитно мнение много успешен. И доколкото ми е известно, разработчиците продължават интензивно да го "довършват" и може би - след година-две тази подсистема ще се появи в цялата си функционална пълнота.
Източник: www.habr.com