การแนะนำ
บทความนี้มีไว้สำหรับความสนใจของผู้ดูแลระบบที่เตรียมสถานที่ทำงานทั่วไปบนคอมพิวเตอร์ที่ใช้ Windows 10 รวมถึงนักพัฒนาซอฟต์แวร์
ควรสังเกตว่ามีปัญหาบางอย่างที่เกี่ยวข้องกับความเป็นไปไม่ได้ในการรวมซอฟต์แวร์ที่ได้รับจากร้านค้าออนไลน์ของ Microsoft Store เพื่อใช้ในอิมเมจ Windows 10 ที่กำหนดเอง ฉันจะชี้แจงว่าปัญหานี้เกี่ยวข้องกับข้อเท็จจริงที่ว่า โปรแกรมที่ติดตั้งจาก Microsoft Store จะสื่อสารกับบัญชีบริการของผู้ดูแลระบบ และเมื่อยูทิลิตีสร้างอิมเมจแบบกำหนดเองเสร็จสิ้น sysprep
ข้อผิดพลาดเกิดขึ้นเนื่องจากกรณีนี้
วิธีการที่กล่าวถึงในบทความนี้จะช่วยหลีกเลี่ยงปัญหานี้เมื่อเตรียมอิมเมจระบบปฏิบัติการ Windows 10 ด้วยระบบย่อย WSL2 ที่กำหนดค่าไว้ล่วงหน้า รวมถึงอิมเมจ Ubuntu 20.04 OS ที่เตรียมและกำหนดค่าไว้ล่วงหน้าด้วย KDE Plasma GUI ซึ่งสามารถมีได้เอง ชุดซอฟต์แวร์แบบกำหนดเอง
มีตัวอย่างและแบบฝึกหัดมากมายบนอินเทอร์เน็ตสำหรับการตั้งค่าระบบย่อย WSL (เช่น WSL1 และ WSL2 ที่ค่อนข้างใหม่) ด้วยการตั้งค่าอินเทอร์เฟซ GUI สำหรับระบบปฏิบัติการที่ใช้ linux จาก 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 Terminal ฟรีโดยใช้ 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 และเลือกโหมดพรอมต์คำสั่งโดยกดปุ่ม Ctrl+Shift+2
.
ก่อนอื่นเราตั้งค่าโหมดการทำงาน WSL2 สำหรับสิ่งนี้เราป้อนคำสั่ง:
wsl --set-default-version 2
เปลี่ยนเป็นไดเร็กทอรี bootloader แบบสแตนด์อโลนของ Ubuntu 20.04 ในกรณีของฉันคือ wslUbuntu-20.04
และเรียกใช้ไฟล์ ubuntu2004.exe
. เมื่อได้รับแจ้งให้ใส่ชื่อผู้ใช้ ให้ป้อนชื่อผู้ใช้ engineer
(คุณสามารถป้อนชื่ออื่นก็ได้) ป้อนรหัสผ่านและยืนยันรหัสผ่านที่ป้อนสำหรับบัญชีที่ระบุ:
ข้อความแจ้งเทอร์มินัลปรากฏขึ้น ติดตั้งเคอร์เนล Ubuntu 20.04 แล้ว ตรวจสอบความถูกต้องของการตั้งค่าโหมด WSL2 สำหรับสิ่งนี้ใน Windows Terminal เลือกแท็บ Windows PowerShell แล้วป้อนคำสั่ง:
wsl -l -v
ผลลัพธ์ของการดำเนินการควรเป็นดังนี้:
เรากำหนดค่าไฟร์วอลล์ Microsoft Defender เช่น ปิดการใช้งานสำหรับเครือข่ายสาธารณะ:
การตั้งค่า Ubuntu 20.04
ใน Windows Terminal ให้เลือกแท็บ 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 Terminal ให้เลือกแท็บ Windows PowerShell อีกครั้งแล้วป้อนคำสั่ง:
wsl --export Ubuntu-20.04 c:wslUbuntu-plasma-desktop
อิมเมจที่สร้างขึ้นจะช่วยให้เราเปิดใช้งาน / ติดตั้ง Ubuntu 20.04 ที่กำหนดค่าใหม่โดยอัตโนมัติหากจำเป็นจะช่วยให้เราสามารถถ่ายโอนไปยังคอมพิวเตอร์เครื่องอื่นได้อย่างง่ายดาย
กำลังเตรียมไฟล์ค้างคาวและทางลัดไปยังเดสก์ท็อป Windows
ใช้ตัวแก้ไข Notepad ++ สร้างไฟล์ค้างคาว (จำเป็นในการเข้ารหัส 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
เราเตรียมทางลัดที่ชี้ไปยังไฟล์ค้างคาวที่เกี่ยวข้อง จากนั้นเนื้อหาของไดเร็กทอรี wsl
มีลักษณะเช่นนี้:
เรียกใช้ KDE Plasma Desktop
เราตรวจสอบว่าขั้นตอนการเตรียมการทั้งหมดเสร็จสิ้นแล้ว เราพยายามเปิดใช้ทางลัด Plasma-desktop
. คำขอรหัสผ่านปรากฏขึ้น ป้อนรหัสผ่านสำหรับบัญชีและ ... หน้าต่างจะปิดลง ไม่เป็นไรในครั้งแรก เราลองอีกครั้ง - และเราเห็นแถบงาน KDE Plasma ที่คุ้นเคย เราปรับแต่งลักษณะที่ปรากฏของแถบงาน ในตัวอย่าง เพื่อความสะดวกในการใช้งาน แผงจะถูกย้ายไปที่ด้านขวาของหน้าจอและอยู่กึ่งกลาง เราตรวจสอบการตั้งค่าการแปล หากจำเป็น ให้เพิ่มภาษารัสเซีย:
หากจำเป็น เราจะนำทางลัดสำหรับแอปพลิเคชันลินุกซ์ที่ติดตั้งไปที่แถบงาน KDE Plasma
หาก Ubuntu 20.04 กำหนดให้คุณต้องออกจากระบบบัญชีผู้ใช้ของคุณเพื่อใช้การเปลี่ยนแปลงการตั้งค่า หรือคุณต้องรีสตาร์ทระบบปฏิบัติการ ใน Windows Terminal ให้ป้อนคำสั่ง:
wsl -d Ubuntu20.04 --shutdown
พร้อมป้าย Plasma-desktop
หรือ Konsole
คุณสามารถเรียกใช้ KDE Plasma Ubuntu 20.04 GUI เช่น ติดตั้งกับ Konsole
โปรแกรมแก้ไขกราฟิก GIMP:
หลังจากติดตั้งเสร็จแล้วให้เรียกใช้จาก Konsole
โปรแกรมแก้ไขกราฟิก GIMP:
GIMP ใช้งานได้ซึ่งเป็นสิ่งที่ฉันต้องการตรวจสอบ
และนี่คือวิธีการทำงานของแอปพลิเคชันลินุกซ์ต่างๆ ใน 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
.
การแก้ไขไฟล์ค้างคาว 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 นั้นใช้งานได้ดีและในความเห็นที่ไม่มีประสบการณ์ของฉันก็ประสบความสำเร็จอย่างมาก และเท่าที่ฉันทราบนักพัฒนายังคง "เสร็จสิ้น" อย่างเข้มข้นและบางที - ในหนึ่งปีหรือสองปีระบบย่อยนี้จะปรากฏในความสมบูรณ์ของการทำงานทั้งหมด
ที่มา: will.com