介紹
本文旨在引起在運行 Windows 10 的計算機上準備典型工作場所的系統管理員(包括軟件開發人員)的注意。
應該注意的是,存在與無法集成從 Microsoft Store 在線商店獲得的軟件以用於自定義 Windows 10 映像相關的特定問題。無需詳細說明,我將澄清此問題與以下事實相關:從 Microsoft Store 安裝的程序與管理員服務帳戶通信,以及自定義圖像創建由實用程序完成時 sysprep
由於這種情況而發生錯誤。
本文中討論的方法在準備帶有預配置 WSL10 子系統的 Windows 2 操作系統映像以及帶有 KDE Plasma GUI 的預先準備和配置的 Ubuntu 20.04 操作系統映像時避免了這個問題,後者又可以有自己的一套定制軟件。
Internet 上有很多用於設置 WSL 子系統(即 WSL1 和相對較新的 WSL2)的示例和教程,以及為從 Ubuntu 16.04 到 Ubuntu 20.04 的基於 linux 的操作系統設置 GUI 界面,但這主要涉及基於桌面的在所謂的。 “輕量級”xfce4,在用戶設置方面有可以理解的限制。 但就 Ubuntu 20.04 的 KDE Plasma GUI 而言,網上找不到太多信息。 但正是這個選項為最終用戶提供了幾乎無限的系統外觀和硬件設置設置,當然,考慮到當前在 WSL2 子系統中實現的 linux 系統的集成能力。
安裝所需的軟件集並配置 WSL2
我們檢查當前的 Windows 版本,為此,在 Windows 搜索欄中輸入命令 winver
我們得到這樣的東西:
重要的是操作系統版本是1903或1909(指定操作系統版本必須安裝累積更新KB4566116),或2004(內部版本號不小於19041),其餘信息並不重要。 如果版本號小於此值,建議您升級到最新版本的 Windows,以正確重現本文中的結果。
為了便於進一步操作,請使用 Microsoft Store 安裝免費的 Windows 終端(也可以從其他來源下載):
我們通過同一個Microsoft Store安裝X Server X410,這個軟件是付費的,但是有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 終端並通過按鍵選擇命令提示符模式 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 終端中,再次選擇命令提示符選項卡並安裝 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
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
,見截圖:
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 的操作,如有必要,它將使我們能夠輕鬆地將其傳輸到另一台計算機。
準備Windows桌面的bat文件和快捷方式
使用 Notepad ++ 編輯器創建 bat 文件(必須採用 OEM-866 編碼才能正確輸出西里爾字符):
文件 Install-Ubuntu-20.04-plasma-desktop.bat
- 設計用於在已配置 WSL20.04 子系統和 X 服務器的計算機上自動初始安裝 Ubuntu 2 創建的映像。 如果用戶名和密碼與示例中指定的不同,那麼您需要對此 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 桌面
我們檢查所有的準備步驟是否已經完成,我們嘗試啟動快捷方式 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 圖形編輯器:
GIMP 可以工作,這正是我想檢查的。
以下是各種 Linux 應用程序在 WSL2 中的 KDE Plasma 中的工作方式:
自定義的 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:
使用 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 桌面,我們使用眾所周知的組合鍵在 linux 窗口和 windows 應用程序之間切換 Alt+Tab
,這不是很方便。
此外,還揭示了 X 服務器的一個令人不快的功能 vcxsrv
- 啟動某些應用程序時崩潰,尤其是相同的 GIMP 或 LibreOffice Writer。 也許我們應該等到開發人員刪除注意到的“錯誤”,但這並不確定......因此,為了獲得可接受的結果,最好使用 X Server Microsoft x410。
結論
儘管如此,我們還是要向微軟致敬,WSL2 產品結果證明非常有效,並且在我沒有經驗的情況下,非常成功。 據我所知,開發人員繼續集中“完成”它,也許 - 在一兩年內,這個子系統將顯示其所有功能完整性。
來源: www.habr.com