قم بتمكين وضع الجلسة المحسّن لضيوف Arch Linux في Hyper-V

قم بتمكين وضع الجلسة المحسّن لضيوف Arch Linux في Hyper-V

يعد استخدام أجهزة Linux الافتراضية في Hyper-V خارج الصندوق أقل راحة إلى حد ما من أجهزة Windows الضيفة. والسبب في ذلك هو أن Hyper-V لم يكن مخصصًا للاستخدام المكتبي في الأصل ؛ لا يمكنك المضي قدمًا وتثبيت حزمة إضافات الضيف والحصول على تسريع رسومات عملي ، والحافظة ، والأدلة المشتركة وغيرها من مباهج الحياة ، كما يحدث في VirtualBox.

يوفر Hyper-V نفسه خدمات تكامل متعددة - لذلك ، يمكن للضيوف استخدام خدمة النسخ الاحتياطي (VSS) للمضيف ، ويمكن للضيوف إرسال إشارة إيقاف التشغيل ، ويمكن للضيوف مزامنة وقت النظام مع مضيف المحاكاة الافتراضية ، ويمكن تبادل الملفات مع الجهاز الظاهري من المضيف (Copy-VMFile في بوويرشيل). بالنسبة لبعض أنظمة تشغيل الضيف ، بما في ذلك ، بالطبع ، Windows ، في تطبيق Virtual Machine Connection (vmconnect.exe) يتوفر وضع الجلسة المحسن ، والذي يعمل عبر بروتوكول RDP ويسمح لك بإعادة توجيه أجهزة القرص والطابعات إلى الجهاز الظاهري ، وكذلك استخدام الحافظة المشتركة.

يعمل وضع الجلسة المحسن خارج الصندوق على Windows في Hyper-V مباشرة بعد التثبيت. مع الضيوف على Linux ، تحتاج إلى تثبيت خادم RDP يدعم vsock (مساحة عنوان شبكة افتراضية خاصة في Linux مصممة للتواصل مع برنامج Hypervisor). إذا كان بالنسبة إلى Ubuntu ، فإن تطبيق VMCreate الذي يأتي مع Hyper-V على إصدارات سطح المكتب من Windows يحتوي على قالب جهاز ظاهري مُجهز خاص يعمل فيه خادم RDP مع vsock XRDP مثبتة مسبقًا ، ثم مع التوزيعات الأخرى يصبح الأمر أقل وضوحًا - على سبيل المثال ، المؤلف هذا المشنور اتضح أنه لتمكين ESM في فيدورا. هنا نقوم أيضًا بتمكين وضع الجلسة المحسّن للجهاز الظاهري لـ Arch Linux.

تركيب خدمات التكامل

كل شيء هنا بسيط إلى حد ما ، نحتاج فقط إلى تثبيت الحزمة hyperv من مستودع المجتمع:

% sudo pacman -S hyperv

تمكين تبادل خدمات VSS البيانات الوصفية والملفات:

% for i in {vss,fcopy,kvp}; do sudo systemctl enable hv_${i}_daemon.service; done

تثبيت XRDP

مخزن أدوات لينكس- vm يوفر on GitHub نصوصًا تعمل على أتمتة عملية تثبيت وتكوين XRDP لنظامي Arch Linux و Ubuntu. قم بتثبيت Git ، إذا لم يكن مثبتًا بالفعل ، جنبًا إلى جنب مع المترجم والبرامج الأخرى للبنى اليدوية ، ثم استنساخ المستودع:

% sudo pacman -S git base-devel
% git clone https://github.com/microsoft/linux-vm-tools.git
% cd linux-vm-tools/arch

في وقت كتابة هذا التقرير ، كان أحدث إصدار من XRDP ، والذي تم تثبيته بواسطة البرنامج النصي makepkg.shالمقترح في المستودع هو 0.9.11 ، فيه كسر الاعراب vsock://-العناوين ، لذلك عليك تثبيت XRDP من Git وبرنامج تشغيل Xorg له من AUR يدويًا. التصحيح الخاص بـ XRDP المقدم في AUR قديم أيضًا ، لذا سيتعين عليك تحرير PKGBUILD والتصحيح يدويًا.

نقوم باستنساخ المستودعات باستخدام PKGBUILDs من AUR (عادةً ما يتم أتمتة هذا الإجراء ، جنبًا إلى جنب مع التجميع ، بواسطة برامج مثل ياي، لكن المؤلف قام بهذا الإجراء بأكمله على نظام نظيف):

% git clone https://aur.archlinux.org/xrdp-devel-git.git
% git clone https://aur.archlinux.org/xorgxrdp-devel-git.git

لنقم بتثبيت XRDP نفسه أولاً. لنفتح الملف PKGBUILD أي محرر نصوص.

دعنا نعدل معلمات البناء. لا يتضمن PKGBUILD لبناء XRDP من Git دعم vsock في البناء ، لذلك دعونا نقوم بتمكينه بأنفسنا:

 build() {
   cd $pkgname
   ./configure --prefix=/usr 
               --sysconfdir=/etc 
               --localstatedir=/var 
               --sbindir=/usr/bin 
               --with-systemdsystemdunitdir=/usr/lib/systemd/system 
               --enable-jpeg 
               --enable-tjpeg 
               --enable-fuse 
               --enable-opus 
               --enable-rfxcodec 
               --enable-mp3lame 
-              --enable-pixman
+              --enable-pixman 
+              --enable-vsock
   make V=0
 }

في التصحيح arch-config.diff، الذي يعدل الوحدات والبرامج النصية لبدء تشغيل XRDP أسفل المسارات إلى الملفات المستخدمة في Arch Linux ، يحتوي ، من بين أشياء أخرى ، على تصحيح للبرنامج النصي instfiles/xrdp.shالتي في وقت كتابة هذا التقرير تمت إزالته من توزيع XRDP ، لذلك يجب تحرير التصحيح يدويًا:

  [Install]
  WantedBy=multi-user.target
-diff -up src/xrdp-devel-git/instfiles/xrdp.sh.orig src/xrdp-devel-git/instfiles/xrdp.sh
---- src/xrdp-devel-git/instfiles/xrdp.sh.orig  2017-08-30 00:27:28.000000000 -0600
-+++ src/xrdp-devel-git/instfiles/xrdp.sh   2017-08-30 00:28:00.000000000 -0600
-@@ -17,7 +17,7 @@
- # Description: starts xrdp
- ### END INIT INFO
- 
--SBINDIR=/usr/local/sbin
-+SBINDIR=/usr/bin
- LOG=/dev/null
- CFGDIR=/etc/xrdp
- 
 diff -up src/xrdp-devel-git/sesman/startwm.sh.orig src/xrdp-devel-git/sesman/startwm.sh
 --- src/xrdp-devel-git/sesman/startwm.sh.orig  2017-08-30 00:27:30.000000000 -0600

قم بإنشاء الحزمة وتثبيتها باستخدام الأمر % makepkg --skipchecksums -si (مفتاح --skipchecksums مطلوب لتعطيل التحقق من المجموع الاختباري لملفات المصدر ، نظرًا لأننا قمنا بتحريرها يدويًا).

دعنا نذهب إلى الدليل xorgxrdp-devel-git، وبعد ذلك نقوم ببناء الحزمة بالأمر % makepkg -si.

دعنا نذهب إلى الدليل linux-vm-tools/arch وتشغيل البرنامج النصي install-config.sh، والذي يضبط إعدادات XRDP و PolicyKit و PAM:

% sudo ./install-config.sh

يقوم البرنامج النصي بتثبيت الإعداد القديم use_vsock، والذي تم تجاهله منذ الإصدار 0.9.11 ، فلنعدّل ملف التكوين /etc/xrdp/xrdp.ini يدويا:

 ;   port=vsock://<cid>:<port>
-port=3389
+port=vsock://-1:3389

 ; 'port' above should be connected to with vsock instead of tcp
 ; use this only with number alone in port above
 ; prefer use vsock://<cid>:<port> above
-use_vsock=true
+;use_vsock=true

 ; regulate if the listening socket use socket option tcp_nodelay

أضف إلى ملف ~/.xinitrc بدء تشغيل مدير النوافذ المفضل / بيئة سطح المكتب ، والتي سيتم تنفيذها عند بدء تشغيل خادم X:

% echo "exec i3" > ~/.xinitrc

لنوقف تشغيل الآلة الافتراضية. قم بتمكين نقل vsock للجهاز الظاهري عن طريق تشغيل الأمر التالي في PowerShell كمسؤول:

PS Admin > Set-VM -VMName НАЗВАНИЕ_МАШИНЫ -EnhancedSessionTransportType HvSocket

دعنا نشغل الآلة الافتراضية مرة أخرى.

Подключение

بمجرد بدء خدمة XRDP بعد بدء تشغيل النظام ، سيحدد تطبيق vmconnect ذلك وسيصبح عنصر القائمة متاحًا. المزيد -> جلسة محسّنة. عند تحديد هذا العنصر ، سيُطلب منا ضبط دقة الشاشة ، وفي علامة التبويب الموارد المحلية في مربع الحوار الذي يفتح ، يمكنك تحديد الأجهزة المعاد توجيهها داخل جلسة RDP.

قم بتمكين وضع الجلسة المحسّن لضيوف Arch Linux في Hyper-V
قم بتمكين وضع الجلسة المحسّن لضيوف Arch Linux في Hyper-V

دعنا نتواصل. سنرى نافذة تسجيل الدخول إلى XRDP:

قم بتمكين وضع الجلسة المحسّن لضيوف Arch Linux في Hyper-V

أدخل اسم المستخدم وكلمة المرور الخاصة بك.

استخدام

الربح من هذه التلاعبات ملحوظ: تعمل جلسة RDP بشكل أكثر استجابة من العمل مع شاشة افتراضية بدون جلسة محسّنة. تتوفر الأقراص المعاد توجيهها داخل الجهاز الظاهري عبر RDP في الدليل ${HOME}/shared-drives:

قم بتمكين وضع الجلسة المحسّن لضيوف Arch Linux في Hyper-V

الحافظة تعمل بشكل جيد. لا يمكنك رمي الطابعات بالداخل ، فهذا ليس مدعومًا فحسب ، بل أيضًا يكسر توجيه القرص. الصوت أيضا لا يعمل ولكن المؤلف لم يكن بحاجة إليه. من أجل التقاط اختصارات لوحة المفاتيح مثل Alt + Tab ، تحتاج إلى توسيع vmconnect إلى وضع ملء الشاشة.

إذا كانت هناك رغبة لسبب ما في استخدام عميل RDP المدمج في Windows بدلاً من تطبيق vmconnect أو ، على سبيل المثال ، الاتصال بهذا الجهاز من جهاز آخر ، فستحتاج إلى تغيير الملف /etc/xrdp/xrdp.ini port في tcp://:3389. إذا كان الجهاز الظاهري متصلاً بالمحول الافتراضي ويتلقى إعدادات الشبكة عبر DHCP ، فيمكنك الاتصال به من المضيف على название_машины.mshome.net. يمكنك فقط تسجيل الدخول إلى TTY من تطبيق vmconnect بإيقاف تشغيل الوضع المحسن.

المصادر المستخدمة:

  1. Hyper-V Arch Wiki
  2. تقارير الشوائب على جيثب: 1, 2

المصدر: www.habr.com

إضافة تعليق