हाइपर- V में आर्क लिनक्स मेहमान के लिए एन्हांस्ड सत्र मोड सक्षम करें

KDPV


हाइपर-वी में लिनक्स वर्चुअल मशीनों का उपयोग करना, अतिथि विंडोज मशीनों की तुलना में थोड़ा कम आरामदायक अनुभव है। इसका कारण यह है कि हाइपर-वी अभी भी मूल रूप से डेस्कटॉप उपयोग के लिए अभिप्रेत नहीं था; वर्चुअलबॉक्स में ऐसा होने पर आप अतिथि ऐड-ऑन का एक पैकेज ले और स्थापित नहीं कर सकते और एक व्यावहारिक ग्राफिक त्वरण, क्लिपबोर्ड, साझा निर्देशिका और जीवन के अन्य सुख प्राप्त कर सकते हैं।


हाइपर-वी स्वयं कई एकीकरण सेवाएं प्रदान करता है - उदाहरण के लिए, मेहमान होस्ट की छाया प्रतिलिपि सेवा (वीएसएस) का उपयोग कर सकते हैं, मेहमानों को शटडाउन सिग्नल भेजा जा सकता है, मेहमान वर्चुअलाइजेशन होस्ट के साथ सिस्टम समय को सिंक्रनाइज़ कर सकते हैं, मेजबान ( Copy-VMFile से वर्चुअल मशीन से फाइलों का आदान-प्रदान किया जा सकता है। PowerShell)। विंडोज, वर्चुअल मशीन कनेक्शन एप्लीकेशन ( vmconnect.exe ) सहित, कुछ अतिथि ऑपरेटिंग सिस्टम के लिए, एन्हांस्ड सत्र मोड vmconnect.exe , जो RDP प्रोटोकॉल के माध्यम से काम करता है और आपको डिस्क मशीन और प्रिंटर को वर्चुअल मशीन को अग्रेषित करने की अनुमति देता है, साथ ही साथ आम का उपयोग करता है। क्लिपबोर्ड।


इंस्टॉलेशन के तुरंत बाद हाइपर-वी में विंडोज पर वर्धित सेशन मोड बॉक्स से बाहर हो जाता है। लिनक्स पर मेहमानों के साथ, आपको एक आरडीपी सर्वर स्थापित करने की आवश्यकता है जो vsock (लिनक्स में एक विशेष आभासी नेटवर्क पता स्थान को हाइपरविजर के साथ संचार करने के लिए डिज़ाइन किया गया है) का समर्थन करता है। यदि विंडोज के डेस्कटॉप संस्करणों पर हाइपर- V के साथ आने वाले VMCreate एप्लिकेशन में उबंटू के लिए, एक विशेष रूप से तैयार वर्चुअल मशीन टेम्पलेट है जिसमें vsck के साथ काम करने वाला XRDP RDP सर्वर पहले से ही प्रीइंस्टॉल्ड है, तो अन्य वितरण के साथ सब कुछ कम और स्पष्ट है - इसलिए, इस पोस्ट के लेखक यह फेडोरा में ईएसएम को शामिल करने के लिए निकला। यहां हम आर्क लिनक्स के साथ एक आभासी मशीन के लिए एन्हांस्ड सत्र मोड को सक्रिय करते हैं।


एकीकरण सेवाओं को स्थापित करें


यहाँ पर सब कुछ कमोबेश सरल है, हमारे लिए सामुदायिक रिपॉजिटरी से hyperv पैकेज को स्थापित करना पर्याप्त है:


 % sudo pacman -S hyperv 

VSS, मेटाडेटा और फ़ाइल साझाकरण सेवाओं को चालू करें:


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

XRDP स्थापित करें


GitHub पर लिनक्स-वीएम-टूल रिपॉजिटरी स्क्रिप्ट प्रदान करता है जो आर्क लिनक्स और उबंटू के लिए एक्सआरडीपी की स्थापना और कॉन्फ़िगरेशन को स्वचालित करता है। 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:// की पार्सिंग vsock:// पते टूटे हुए हैं, इसलिए आपको GUR से XRDP और AUR से इसे Xorg ड्राइवर स्थापित करना होगा। हाथ से। AUR में पेश किया गया XRDP पैच भी थोड़ा पुराना है, इसलिए आपको PKGBUILD और मैन्युअल रूप से पैच को संपादित करना होगा।


हम AUR से PKGBUILDs के साथ रिपॉजिटरी को क्लोन करते हैं (आमतौर पर असेंबली के साथ यह प्रक्रिया याय जैसे कार्यक्रमों द्वारा स्वचालित होती है, लेकिन लेखक ने यह पूरी प्रक्रिया एक स्वच्छ प्रणाली पर की)


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

सबसे पहले एक्सआरडीपी स्थापित करें। किसी भी टेक्स्ट एडिटर के साथ PKGBUILD फाइल खोलें।


विधानसभा मापदंडों को संपादित करें। Git से XRDP के निर्माण के लिए PKGBUILD में निर्माण के दौरान 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 } 

पैच आर्क-config.diff, जो आर्क लिनक्स में उपयोग की जाने वाली फ़ाइलों के पथ के तहत XRDP को चलाने के लिए इकाइयों और लिपियों arch-config.diff , में 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 में हमारे पसंदीदा विंडो मैनेजर / डेस्कटॉप वातावरण ~/.xinitrc प्रक्षेपण को दर्ज करें, जिसे एक्स सर्वर के लागू होने पर निष्पादित किया जाएगा:


 % echo "exec i3" > ~/.xinitrc 

वर्चुअल मशीन बंद करें। हम एक व्यवस्थापक के रूप में PowerShell में निम्न कमांड चलाकर वर्चुअल मशीन के लिए vsock परिवहन को सक्रिय करते हैं:


 PS Admin > Set-VM -VMName _ -EnhancedSessionTransportType HvSocket 

वर्चुअल मशीन को फिर से चालू करें।


संबंध


जैसे ही सिस्टम शुरू होने के बाद XRDP सेवा शुरू होती है, vmconnect एप्लिकेशन इसे निर्धारित करता है और मेनू आइटम दृश्य -> एन्हांस्ड सत्र उपलब्ध हो जाता है। इस आइटम को चुनते समय, हमें स्क्रीन रिज़ॉल्यूशन सेट करने के लिए कहा जाएगा, और खुलने वाले संवाद के स्थानीय संसाधन टैब पर, आरडीपी सत्र के अंदर आने वाले उपकरणों का चयन करना संभव होगा।


स्क्रीन रिज़ॉल्यूशन डायलॉग
स्थानीय संसाधन चयन संवाद


कनेक्ट। XRDP लॉगिन विंडो देखें:


XRDP लॉगिन विंडो


अपना उपयोगकर्ता नाम और पासवर्ड दर्ज करें।


के उपयोग


इन जोड़तोड़ों से लाभ ध्यान देने योग्य है: आरडीपी सत्र एक उन्नत सत्र के बिना आभासी प्रदर्शन के साथ काम करने की तुलना में बहुत अधिक उत्तरदायी है। RDP के माध्यम से फेंके गए VM ${HOME}/shared-drives निर्देशिका में उपलब्ध हैं:


VM के अंदर फेंके गए C ड्राइव की सामग्री


क्लिपबोर्ड ठीक काम कर रहा है। आप अंदर प्रिंटर को अग्रेषित नहीं कर सकते, यह न केवल समर्थित है, बल्कि यह डिस्क अग्रेषण को भी तोड़ता है । ध्वनि भी काम नहीं करती है, लेकिन लेखक को इसकी आवश्यकता नहीं थी। Alt + Tab जैसे कीबोर्ड शॉर्टकट कैप्चर करने के लिए, आपको पूर्ण स्क्रीन में vmconnect तैनात करने की आवश्यकता है।


यदि किसी कारण से vmconnect एप्लिकेशन के बजाय विंडोज में निर्मित RDP क्लाइंट का उपयोग करने की इच्छा है, या, उदाहरण के लिए, इस मशीन को किसी अन्य मशीन से कनेक्ट करें, तो आपको tcp://:3389 /etc/xrdp/xrdp.ini tcp://:3389 /etc/xrdp/xrdp.ini tcp://:3389 /etc/xrdp/xrdp.ini port फ़ाइल को tcp://:3389 बदलना होगा। tcp://:3389 । यदि वर्चुअल मशीन डिफ़ॉल्ट स्विच से जुड़ा है और डीएचसीपी के माध्यम से नेटवर्क सेटिंग्स प्राप्त करता है, तो आप इसे मशीन से होस्ट से कनेक्ट कर सकते _.mshome.net । आप केवल उन्नत मोड को बंद करके vmconnect एप्लिकेशन से TTY दर्ज कर सकते हैं।


उपयोग किए गए स्रोत :


  1. हाइपर-वी - आर्क विकी
  2. गिटहब पर बैगरेपोर्ट: 1 , 2

Source: https://habr.com/ru/post/hi482372/


All Articles