
भर्चुअल मेसिनहरू प्रयोग गर्दै Linux हाइपर-V मा आउट अफ द बक्स अतिथि अनुभवको तुलनामा अलि कम आरामदायी अनुभव हो। Windows-машинами. Причиной тому является то, что Hyper-V все же изначально не предназначался для десктопного пользования; нельзя просто взять, поставить пакет гостевых дополнений и получить работоспособное графическое ускорение, буфер обмена, общие директории и другие радости жизни, как это происходит в VirtualBox.
हाइपर-V आफैले प्रदान गर्दछ - त्यसोभए, अतिथिहरूले होस्टको छाया प्रतिलिपि सेवा (VSS) प्रयोग गर्न सक्छन्, अतिथिहरूले बन्द संकेत पठाउन सक्छन्, अतिथिहरूले भर्चुअलाइजेशन होस्टसँग प्रणाली समय सिङ्क्रोनाइज गर्न सक्छन्, फाइलहरू होस्टबाट भर्चुअल मेसिनको साथ आदानप्रदान गर्न सकिन्छ (Copy-VMFile в PowerShell). Для некоторых гостевых операционных систем, в числе которых, конечно, находится и Windows, в приложении Virtual Machine Connection (vmconnect.exe) परिष्कृत सत्र मोड उपलब्ध छ, RDP प्रोटोकल मार्फत काम गर्दै र तपाईंलाई डिस्क उपकरणहरू र प्रिन्टरहरू भर्चुअल मेसिनमा स्थानान्तरण गर्न, साथै साझा क्लिपबोर्ड प्रयोग गर्न अनुमति दिन्छ।
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 hypervVSS र विनिमय सेवाहरू सक्षम गरौं र फाइलहरू:
% for i in {vss,fcopy,kvp}; do sudo systemctl enable hv_${i}_daemon.service; doneXRDP स्थापना गर्दै
भण्डार на 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रिपोजिटरीमा सुझाव गरिएको ०.९.११ हो, vsock://-ठेगानाहरू, त्यसैले तपाईंले Git बाट XRDP र यसको लागि Xorg ड्राइभर AUR बाट म्यानुअल रूपमा स्थापना गर्नुपर्नेछ। 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, PolicyKit र PAM सेटिङहरू सेट गर्छ:
% sudo ./install-config.shस्क्रिप्ट लेगेसी सेटिङ स्थापना गर्दछ use_vsock, जुन संस्करण ०.९.११ देखि बेवास्ता गरिएको छ, त्यसैले कन्फिगरेसन फाइल सम्पादन गरौं /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भर्चुअल मेसिन बन्द गरौं। हामी प्रशासकको रूपमा PowerShell मा निम्न आदेश चलाएर भर्चुअल मेसिनको लागि vsock यातायात सक्रिय गर्छौं:
PS Admin > Set-VM -VMName НАЗВАНИЕ_МАШИНЫ -EnhancedSessionTransportType HvSocketभर्चुअल मेसिनलाई फेरि अन गरौं।
Подключение
प्रणाली सुरु भएपछि XRDP सेवा सुरु हुने बित्तिकै, vmconnect अनुप्रयोगले यो पत्ता लगाउनेछ र वस्तु मेनुमा उपलब्ध हुनेछ। हेर्नुहोस् -> परिष्कृत सत्र। यो वस्तु चयन गर्दा, हामीलाई स्क्रिन रिजोल्युसन र ट्याबमा सेट गर्न प्रेरित गरिनेछ स्थानीय स्रोतहरू खुल्ने संवादमा, तपाईंले RDP सत्रमा फर्वार्ड गर्नका लागि यन्त्रहरू चयन गर्न सक्नुहुन्छ।


जडान गरौं। हामी XRDP लगइन विन्डो देख्नेछौं:

आफ्नो प्रयोगकर्ता नाम र पासवर्ड प्रविष्ट गर्नुहोस्।
प्रयोग गर्नुहोस्
यी हेरफेरहरूबाट लाभ उल्लेखनीय छ: RDP सत्रले परिष्कृत सत्र बिना भर्चुअल प्रदर्शनसँग काम गर्दा भन्दा धेरै उत्तरदायी रूपमा काम गर्दछ। RDP मार्फत VM भित्र छोडिएका डिस्कहरू डाइरेक्टरीमा उपलब्ध छन् ${HOME}/shared-drives:

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