
Nggunakake mesin virtual ing Linux ing Hyper-V sing wis disiyapake langsung saka kothak iki minangka pengalaman sing rada kurang nyaman tinimbang karo tamu Windows-машинами. Причиной тому является то, что Hyper-V все же изначально не предназначался для десктопного пользования; нельзя просто взять, поставить пакет гостевых дополнений и получить работоспособное графическое ускорение, буфер обмена, общие директории и другие радости жизни, как это происходит в VirtualBox.
Hyper-V dhewe nyedhiyakake - Dadi, tamu bisa nggunakake layanan salinan bayangan host (VSS), tamu bisa ngirim sinyal mati, tamu bisa nyinkronake wektu sistem karo host virtualisasi, file bisa diijolke saka inang karo mesin virtual (Copy-VMFile в PowerShell). Для некоторых гостевых операционных систем, в числе которых, конечно, находится и Windows, в приложении Virtual Machine Connection (vmconnect.exe) Mode Sesi Enhanced kasedhiya, bisa digunakake liwat protokol RDP lan ngidini sampeyan nransfer piranti disk lan printer menyang mesin virtual, uga nggunakake clipboard sing dienggo bareng.
Enhanced Session Mode из коробки работает в Windows в Hyper-V сразу после установки. С гостями на Linux нужно устанавливать RDP-сервер, поддерживающий vsock (специальное виртуальное сетевое адресное пространство в Linux, предназначенное для коммуникации с гипервизором). Если для Ubuntu в приложении VMCreate, идущим с Hyper-V на настольных редакциях Windows, есть специальный подготовленный шаблон виртуальной машины, в котором работающий с vsock RDP-сервер wis diinstal, banjur karo distribusi liyane kurang lan kurang cetha - contone, penulis получилось включить ESM в Fedora. Здесь же мы активируем Enhanced Session Mode для виртуальной машины с Arch Linux.
Nginstal layanan integrasi
Kabeh luwih utawa kurang prasaja ing kene, kita mung kudu nginstal paket kasebut hyperv saka gudang komunitas:
% sudo pacman -S hypervAyo ngaktifake layanan VSS lan ijol-ijolan lan file:
% for i in {vss,fcopy,kvp}; do sudo systemctl enable hv_${i}_daemon.service; doneNginstal XRDP
gudang на 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/archIng wektu nulis artikel iki, release paling anyar saka XRDP, kang diinstal dening script makepkg.shsing disaranake ing repositori yaiku 0.9.11, vsock://-alamat, supaya sampeyan kudu nginstal XRDP saka Git lan driver Xorg kanggo saka AUR kanthi manual. Patch XRDP sing ditawakake ing AUR uga rada ketinggalan jaman, mula sampeyan kudu ngowahi PKGBUILD lan tembelan kanthi manual.
Ayo clone repositori karo PKGBUILDs saka AUR (biasane prosedur iki, bebarengan karo mbangun, otomatis dening program kaya , nanging penulis nindakake kabeh prosedur iki ing sistem sing resik):
% git clone https://aur.archlinux.org/xrdp-devel-git.git
% git clone https://aur.archlinux.org/xorgxrdp-devel-git.gitAyo nginstal XRDP dhewe dhisik. Ayo mbukak file kasebut PKGBUILD sembarang editor teks.
Ayo ngowahi paramèter mbangun. PKGBUILD kanggo mbangun XRDP saka Git ora kalebu dhukungan vsock nalika mbangun, mula ayo aktifake dhewe:
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
}Ing tembelan arch-config.diff, правящем юниты и скрипты запуска XRDP под пути к файлам, используемым в Arch Linux, содержится в том числе патч к скрипту instfiles/xrdp.sh, sing nalika nulis saka distribusi XRDP, dadi tembelan kudu diowahi kanthi manual:
[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 -0600Ayo ngumpulake lan nginstal paket kanthi printah % makepkg --skipchecksums -si (kunci --skipchecksums dibutuhake kanggo mateni verifikasi checksum file sumber, amarga kita nyunting kanthi manual).
Ayo menyang direktori xorgxrdp-devel-git, sawise iku kita mung ngumpul paket karo printah % makepkg -si.
Ayo menyang direktori linux-vm-tools/arch lan mbukak script install-config.sh, sing nyetel setelan XRDP, PolicyKit lan PAM:
% sudo ./install-config.shScript nginstal setelan warisan use_vsock, sing ora digatekake wiwit versi 0.9.11, mula ayo ngowahi file konfigurasi /etc/xrdp/xrdp.ini kanthi manual:
; 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_nodelayTambah menyang file ~/.xinitrc ngluncurake manajer jendhela / lingkungan desktop sing disenengi, sing bakal dieksekusi nalika server X diwiwiti:
% echo "exec i3" > ~/.xinitrcAyo mateni mesin virtual. Kita ngaktifake transportasi vsock kanggo mesin virtual kanthi nglakokake printah ing ngisor iki ing PowerShell minangka administrator:
PS Admin > Set-VM -VMName НАЗВАНИЕ_МАШИНЫ -EnhancedSessionTransportType HvSocketAyo nguripake mesin virtual maneh.
Sambungan
Sanalika layanan XRDP diwiwiti sawise sistem diwiwiti, aplikasi vmconnect bakal ndeteksi iki lan item kasebut bakal kasedhiya ing menu. View -> Sesi Ditingkatake. Nalika milih item iki, kita bakal dijaluk nyetel resolusi layar, lan ing tab Sumber Daya Lokal Ing dialog sing mbukak, sampeyan bisa milih piranti sing arep diterusake menyang sesi RDP.


Ayo nyambung. Kita bakal weruh jendhela login XRDP:

Ketik jeneng pangguna lan sandhi.
Gunakake
Keuntungan saka manipulasi kasebut katon: sesi RDP luwih responsif tinimbang nalika nggarap tampilan virtual tanpa Sesi Enhanced. Disk dropped ing VM liwat RDP kasedhiya ing direktori ${HOME}/shared-drives:

Papan klip dianggo kanthi becik. Sampeyan ora bisa nerusake printer ing njero; iki ora mung didhukung, nanging uga . Swara uga ora bisa, nanging penulis ora perlu iki. Kanggo njupuk trabasan keyboard kaya Alt + Tab, sampeyan kudu nggedhekake vmconnect menyang layar wutuh.
Если по каким-либо причинам есть желание использовать вместо приложения vmconnect встроенный в Windows RDP-клиент или, например, подключаться к этой машине из другой машины, то нужно будет поменять в файле /etc/xrdp/xrdp.ini port ing tcp://:3389. Yen mesin virtual disambungake menyang Ngalih Default lan nampa setelan jaringan liwat DHCP, sampeyan bisa nyambung menyang saka host ing название_машины.mshome.net. Sampeyan mung bisa mlebu menyang TTY saka aplikasi vmconnect kanthi mateni Mode Enhanced.
Sumber sing digunakake:
- Laporan bug ing GitHub: ,
Source: www.habr.com
