المقدمة
هذه المقالة مخصصة للفت انتباه مسؤولي النظام الذين يقومون بإعداد أماكن عمل نموذجية على أجهزة الكمبيوتر التي تعمل بنظام التشغيل Windows 10 ، بما في ذلك مطورو البرامج.
تجدر الإشارة إلى أن هناك مشكلة معينة تتعلق بعدم القدرة على دمج البرامج التي تم الحصول عليها من متجر Microsoft عبر الإنترنت لاستخدامها في صورة مخصصة لنظام التشغيل Windows 10. دون الخوض في التفاصيل ، سأوضح أن هذه المشكلة ترجع إلى حقيقة أن البرامج المثبتة من متجر Microsoft مرتبطة مع حساب خدمة المسؤول ، وعندما تكمل الأداة المساعدة إنشاء صورة مخصصة
sysprep، تحدث أخطاء بسبب هذا الظرف.
الطريقة التي تمت مناقشتها في هذه المقالة لتجنب مثل هذه المشكلة عند إعداد صورة لنظام التشغيل Windows 10 مع نظام فرعي WSL2 تم تكوينه مسبقًا ، وكذلك مع صورة مُعدة مسبقًا ومكوّنة لـ Ubuntu 20.04 مع واجهة المستخدم الرسومية KDE Plasma ، والتي بدورها قد يكون لها مجموعة خاصة بها من البرامج المخصصة.
هناك عدد كبير من الأمثلة والأدلة على الإنترنت لتكوين أنظمة WSL الفرعية (مثل WSL1 و WSL2 الجديد نسبيًا) ، مع تكوين واجهة المستخدم الرسومية لأنظمة Linux على أساس نظام التشغيل بدءًا من Ubuntu 16.04 وتنتهي بـ Ubuntu 20.04 ، ولكن في الغالب يتعلق الأمر سطح المكتب على أساس ما يسمى ب. "خفيف الوزن" xfce4 ، الذي له قيود مفهومة في إعدادات المستخدم. ولكن فيما يتعلق بواجهة المستخدم الرسومية KDE Plasma لـ Ubuntu 20.04 ، لم تكن هناك معلومات جوهرية على الشبكة. لكن هذا هو الخيار الذي يوفر للمستخدم النهائي مجموعة غير محدودة تقريبًا من الإعدادات لكل من مظهر النظام وإعدادات الأجهزة ، بالطبع ، مع الأخذ في الاعتبار إمكانات التكامل الحالية لأنظمة لينكس المطبقة في النظام الفرعي WSL2.
تثبيت مجموعة البرامج المطلوبة وتكوين WSL2
نتحقق من الإصدار الحالي من Windows ، لذلك ، أدخل الأمر في شريط بحث Windows
winverواحصل على شيء مثل ما يلي:

من المهم أن يحتوي نظام التشغيل على الإصدار 1903 أو 1909 (يجب أن تكون إصدارات نظام التشغيل المحددة مع التحديث التراكمي KB4566116 مثبتًا) ، أو 2004 (رقم البنية لا يقل عن 19041) ، وبقية المعلومات لا تهم. إذا كان رقم الإصدار أقل ، فمن المستحسن أن تقوم بالترقية إلى أحدث إصدار من Windows لتكرار النتائج المعروضة في هذه المقالة بشكل صحيح.
لتسهيل الإجراءات الإضافية ، قم بتثبيت Windows Terminal المجاني باستخدام Microsoft Store (هناك أيضًا إمكانية التنزيل من مصادر أخرى):

نقوم بتثبيت X Server X410 من خلال نفس متجر Microsoft ، يتم دفع هذا البرنامج ، ولكن هناك فترة مجانية مدتها 15 يومًا ، وهو ما يكفي تمامًا للاختبارات المختلفة.

كبديل مجاني لـ X410 ، قم بتنزيل وتثبيت خادم VcXsrv X.
في أي مكان مناسب على القرص ، أنشئ دليلاً سنخزن فيه ملفاتنا. لنقم بإنشاء دليل كمثال
C:\wsl.
قم بتنزيل وتثبيت برنامج تثبيت Ubuntu 20.04 غير المتصل ، وفك ضغط الملف الناتج باستخدام أرشيفي (على سبيل المثال 7-zip). أعد تسمية الدليل الذي تم فك حزمه باسم طويل
Ubuntu_2004.2020.424.0_x64إلى شيء مقبول أكثر ، على سبيل المثال ، Ubuntu-20.04وانسخه إلى دليل C:\wsl(يشار إليه فيما يلي ببساطة \wsl).
قم بتنزيل وفك
\wslضغط خادم الصوت PulseAudio v.1.1 عبر الأنظمة الأساسية في الدليل ، وقم أيضًا بإجراء تصحيحات لملفات التكوين الخاصة به.
في الملف
\wsl\pulseaudio-1.1\etc\pulse\default.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
في الملف ، قم
\wsl\pulseaudio-1.1\etc\pulse\daemon.confبإلغاء التعليق وتغيير الخط
exit-idle-time = -1
نقوم بتكوين النظام الفرعي WSL2 وفقًا لوثائق Microsoft. الملاحظة الوحيدة هي أننا قمنا بالفعل بتنزيل توزيعة Ubuntu ، وسنقوم بتثبيتها في الخطوة التالية. يتلخص التكوين بشكل أساسي في تمكين المكونات الإضافية "نظام Windows الفرعي لنظام Linux" و "Virtual Machine Platform" ، ثم إعادة التشغيل لتطبيق التغييرات على إعدادات الكمبيوتر:

إذا لزم الأمر ، قم بتنزيل وتثبيت حزمة التحديث لـ Linux kernel في WSL2.
قم بتشغيل Windows Terminal وحدد وضع موجه الأوامر بالضغط على المفاتيح
Ctrl+Shift+2.
بادئ ذي بدء ، قمنا بتعيين وضع التشغيل WSL2 ، لهذا أدخل الأمر:
wsl --set-default-version 2
انتقل إلى الدليل باستخدام أداة تحميل التشغيل Ubuntu 20.04 غير المتصلة بالإنترنت ، في حالتي ، هذا هو
\wsl\Ubuntu-20.04وقم بتشغيل الملف ubuntu2004.exe. عندما يُطلب منك اسم مستخدم ، أحدد اسمًا engineer(يمكنك إدخال أي اسم آخر) ، وأدخل كلمة المرور الخاصة بك وقم بتأكيد كلمة المرور التي تم إدخالها للحساب المحدد:

تظهر مطالبة طرفية ، تم تثبيت Ubuntu 20.04 kernel. دعنا نتحقق من صحة إعداد وضع 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
تثبيت سطح مكتب كيدي بلازما:
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، انظر الصورة:

تحرير ملف تكوين 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:\wsl\Ubuntu-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:\wsl\Ubuntu-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:\wsl\Ubuntu-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:\wsl\Ubuntu-20.04\ubuntu2004.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:\wsl\vcxsrv\config.xlaunch" > nul
start "" /B x410.exe /wm /public > nul
start "" /B "c:\wsl\pulseaudio-1.1\bin\pulseaudio.exe" --use-pid-file=false -D > nul
c:\wsl\Ubuntu-20.04\Ubuntu2004.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- يقوم بتشغيل محطة رسومية بدون سطح مكتب كيدي بلازما.
@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:\wsl\vcxsrv\config.xlaunch" > nul
start "" /B x410.exe /wm /public > nul
start "" /B "c:\wsl\pulseaudio-1.1\bin\pulseaudio.exe" --use-pid-file=false -D > nul
c:\wsl\Ubuntu-20.04\Ubuntu2004.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تبدو محتويات الدليل كما يلي:

إطلاق كيدي بلازما سطح المكتب
نتحقق من اكتمال جميع الإجراءات التحضيرية ، ونحاول تشغيل الاختصار
Plasma-desktop. يظهر طلب كلمة مرور ، أدخل كلمة المرور للحساب و ... تُغلق النافذة. لا بأس في المرة الأولى. حاول مرة أخرى ، نرى شريط مهام KDE Plasma المألوف. نقوم بتهيئة المظهر المطلوب لشريط المهام ، على سبيل المثال ، لسهولة الاستخدام ، يتم نقل اللوحة إلى الجانب الأيمن من الشاشة وتوسيطها. نتحقق من إعدادات الترجمة ، إذا لزم الأمر ، أضف اللغة الروسية:

إذا لزم الأمر ، ضع اختصارات لتطبيقات Linux المثبتة على شريط مهام 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 ، وهو ما تريد التحقق منه.
وإليك كيفية عمل تطبيقات 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:

استخدام خادم vcxsrv X بدلاً من x410
الإطلاق والتهيئة
vcxsrv، حدد المربعات المناسبة بعناية:




نحفظ التكوين الذي تم تكوينه في دليل
\wsl\vcxsrvباسم قياسي config.xlaunch.
نحن تحرير ملفات الخفافيش
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. ربما يجب أن ننتظر حتى يقوم المطورون بإزالة "الأخطاء" الملحوظة ، لكن هذا غير مؤكد ... لذلك ، للحصول على نتائج مقبولة ، من الأفضل استخدام Microsoft X Server x410.
خاتمة
ومع ذلك ، يجب أن نشيد بشركة Microsoft ، فقد تبين أن منتج WSL2 يعمل بشكل جيد ، وفي رأيي البسيط ، كان ناجحًا للغاية. وبقدر ما أعرف ، يواصل المطورون العمل بجد "لإنهائه" ، وربما - في غضون عام أو عامين ، سيظهر هذا النظام الفرعي بكامل وظائفه.