
वर्चुअल मशीनों का उपयोग करना Linux हाइपर-वी में डिफ़ॉल्ट रूप से उपयोग करने पर गेस्ट मोड की तुलना में थोड़ा कम आरामदायक अनुभव मिलता है। Windows-машинами. Причиной тому является то, что Hyper-V все же изначально не предназначался для десктопного пользования; нельзя просто взять, поставить пакет гостевых дополнений и получить работоспособное графическое ускорение, буфер обмена, общие директории и другие радости жизни, как это происходит в VirtualBox.
हाइपर-V स्वयं प्रदान करता है - इसलिए, मेहमान होस्ट की छाया प्रतिलिपि सेवा (वीएसएस) का उपयोग कर सकते हैं, मेहमान शटडाउन सिग्नल भेज सकते हैं, मेहमान वर्चुअलाइजेशन होस्ट के साथ सिस्टम समय को सिंक्रनाइज़ कर सकते हैं, होस्ट से वर्चुअल मशीन के साथ फाइलों का आदान-प्रदान किया जा सकता है (Copy-VMFile в PowerShell). Для некоторых гостевых операционных систем, в числе которых, конечно, находится и Windows, в приложении Virtual Machine Connection (vmconnect.exe) उन्नत सत्र मोड उपलब्ध है, जो आरडीपी प्रोटोकॉल के माध्यम से काम करता है और आपको डिस्क डिवाइस और प्रिंटर को वर्चुअल मशीन में स्थानांतरित करने के साथ-साथ एक साझा क्लिपबोर्ड का उपयोग करने की अनुमति देता है।
Enhanced Session Mode из коробки работает в Windows в Hyper-V сразу после установки. С гостями на Linux нужно устанавливать RDP-сервер, поддерживающий vsock (специальное виртуальное сетевое адресное пространство в Linux, предназначенное для коммуникации с гипервизором). Если для Ubuntu в приложении VMCreate, идущим с Hyper-V на настольных редакциях Windows, есть специальный подготовленный шаблон виртуальной машины, в котором работающий с vsock RDP-сервер पहले से ही स्थापित, फिर अन्य वितरणों के साथ यह कम और कम स्पष्ट है - उदाहरण के लिए, लेखक получилось включить ESM в Fedora. Здесь же мы активируем Enhanced Session Mode для виртуальной машины с Arch Linux.
एकीकरण सेवाएँ स्थापित करना
यहां सब कुछ कमोबेश सरल है, हमें बस पैकेज इंस्टॉल करने की जरूरत है hyperv सामुदायिक भंडार से:
% sudo pacman -S hypervआइए वीएसएस और एक्सचेंज सेवाओं को सक्षम करें और फ़ाइलें:
% for i in {vss,fcopy,kvp}; do sudo systemctl enable hv_${i}_daemon.service; doneएक्सआरडीपी स्थापित करना
कोष на 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://-पते, इसलिए आपको Git से 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आइए पहले XRDP स्वयं स्थापित करें। चलिए फाइल खोलते हैं 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
}एक पैच में 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, पॉलिसीकिट और 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 अपना पसंदीदा विंडो मैनेजर/डेस्कटॉप वातावरण लॉन्च करना, जिसे एक्स सर्वर शुरू होने पर निष्पादित किया जाएगा:
% echo "exec i3" > ~/.xinitrcआइए वर्चुअल मशीन को बंद करें। हम व्यवस्थापक के रूप में PowerShell में निम्नलिखित कमांड चलाकर वर्चुअल मशीन के लिए vsock ट्रांसपोर्ट को सक्रिय करते हैं:
PS Admin > Set-VM -VMName НАЗВАНИЕ_МАШИНЫ -EnhancedSessionTransportType HvSocketआइए वर्चुअल मशीन को फिर से चालू करें।
Подключение
सिस्टम शुरू होने के बाद जैसे ही एक्सआरडीपी सेवा शुरू होगी, वीएमकनेक्ट एप्लिकेशन इसका पता लगा लेगा और आइटम मेनू में उपलब्ध हो जाएगा। देखें -> उन्नत सत्र. इस आइटम का चयन करते समय, हमें स्क्रीन रिज़ॉल्यूशन और टैब पर सेट करने के लिए कहा जाएगा स्थानीय संसाधन खुलने वाले संवाद में, आप आरडीपी सत्र में अग्रेषित किए जाने वाले उपकरणों का चयन कर सकते हैं।


आइए जुड़ें. हम XRDP लॉगिन विंडो देखेंगे:

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

क्लिपबोर्ड ठीक काम करता है. आप प्रिंटर को अंदर अग्रेषित नहीं कर सकते; यह न केवल समर्थित नहीं है, बल्कि यह भी है . ध्वनि भी काम नहीं करती, लेकिन लेखक को इसकी आवश्यकता नहीं थी। Alt+Tab जैसे कीबोर्ड शॉर्टकट कैप्चर करने के लिए, आपको vmconnect को पूर्ण स्क्रीन तक विस्तारित करने की आवश्यकता है।
Если по каким-либо причинам есть желание использовать вместо приложения vmconnect встроенный в Windows RDP-клиент или, например, подключаться к этой машине из другой машины, то нужно будет поменять в файле /etc/xrdp/xrdp.ini port पर tcp://:3389. यदि वर्चुअल मशीन डिफॉल्ट स्विच से जुड़ी है और डीएचसीपी के माध्यम से नेटवर्क सेटिंग्स प्राप्त करती है, तो आप इसे होस्ट से कनेक्ट कर सकते हैं название_машины.mshome.net. आप उन्नत मोड को बंद करके केवल vmconnect एप्लिकेशन से TTY में लॉग इन कर सकते हैं।
सूत्रों का उपयोग किया:
- GitHub पर बग रिपोर्ट: ,
स्रोत: www.habr.com
