
Ngagunakeun mesin virtual dina Linux dina Hyper-V out of the box mangrupikeun pangalaman anu rada kirang nyaman tibatan sareng tamu Windows-машинами. Причиной тому является то, что Hyper-V все же изначально не предназначался для десктопного пользования; нельзя просто взять, поставить пакет гостевых дополнений и получить работоспособное графическое ускорение, буфер обмена, общие директории и другие радости жизни, как это происходит в VirtualBox.
Hyper-V sorangan nyadiakeun - janten, sémah tiasa nganggo jasa salinan bayangan host (VSS), sémah tiasa ngirim sinyal shutdown, sémah tiasa nyinkronkeun waktos sistem sareng host virtualisasi, file tiasa disilihtukeurkeun tina host sareng mesin virtual (Copy-VMFile в PowerShell). Для некоторых гостевых операционных систем, в числе которых, конечно, находится и Windows, в приложении Virtual Machine Connection (vmconnect.exe) Mode Sidang Enhanced sayogi, tiasa dianggo nganggo protokol RDP sareng ngamungkinkeun anjeun nransfer alat disk sareng panyitak kana mesin virtual, ogé nganggo clipboard anu dibagikeun.
Enhanced Session Mode из коробки работает в Windows в Hyper-V сразу после установки. С гостями на Linux нужно устанавливать RDP-сервер, поддерживающий vsock (специальное виртуальное сетевое адресное пространство в Linux, предназначенное для коммуникации с гипервизором). Если для Ubuntu в приложении VMCreate, идущим с Hyper-V на настольных редакциях Windows, есть специальный подготовленный шаблон виртуальной машины, в котором работающий с vsock RDP-сервер tos dipasang sateuacana, teras sareng distribusi sanésna kirang jelas - contona, panulis получилось включить ESM в Fedora. Здесь же мы активируем Enhanced Session Mode для виртуальной машины с Arch Linux.
Masang jasa integrasi
Sagalana langkung atanapi kirang saderhana di dieu, urang ngan ukur kedah pasang pakét hyperv ti gudang komunitas:
% sudo pacman -S hypervHayu urang aktipkeun VSS sareng jasa bursa sareng file:
% for i in {vss,fcopy,kvp}; do sudo systemctl enable hv_${i}_daemon.service; doneMasang 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/archDina waktos nyerat tulisan ieu, sékrési panganyarna tina XRDP, anu dipasang ku naskah makepkg.shanu disarankeun dina gudang nyaéta 0.9.11, vsock://-alamatna, janten anjeun kedah masang XRDP ti Git sareng supir Xorg pikeun éta tina AUR sacara manual. XRDP patch ditawarkeun dina AUR oge rada ketinggalan jaman, jadi Anjeun kudu ngédit PKGBUILD na patch sacara manual.
Hayu urang clone repositories sareng PKGBUILDs ti AUR (biasana prosedur ieu, sareng ngawangun, otomatis ku program sapertos , tapi panulis ngalakukeun sakabeh prosedur ieu dina sistem bersih):
% git clone https://aur.archlinux.org/xrdp-devel-git.git
% git clone https://aur.archlinux.org/xorgxrdp-devel-git.gitHayu urang masang XRDP sorangan heula. Hayu urang muka file PKGBUILD pangropéa téksu naon waé.
Hayu urang ngédit parameter ngawangun. PKGBUILD pikeun ngawangun XRDP ti Git henteu kalebet dukungan vsock nalika ngawangun, janten hayu urang aktipkeun nyalira:
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
}Dina patch arch-config.diff, правящем юниты и скрипты запуска XRDP под пути к файлам, используемым в Arch Linux, содержится в том числе патч к скрипту instfiles/xrdp.sh, nu dina waktu nulis tina distribusi XRDP, janten patch kedah diédit sacara 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 -0600Hayu urang kompilasi sareng pasang pakét nganggo paréntah % makepkg --skipchecksums -si (konci --skipchecksums diperlukeun pikeun nganonaktipkeun verifikasi checksum tina file sumber, sabab urang diédit sacara manual).
Hayu urang buka diréktori xorgxrdp-devel-git, Sanggeus éta urang ngan saukur ngumpul pakét jeung paréntah % makepkg -si.
Hayu urang buka diréktori linux-vm-tools/arch jeung ngajalankeun naskah install-config.sh, anu nyetél XRDP, PolicyKit sareng setélan PAM:
% sudo ./install-config.shSkrip masang setelan warisan use_vsock, nu geus teu dipaliré saprak versi 0.9.11, jadi hayu urang ngédit file konfigurasi /etc/xrdp/xrdp.ini sacara 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_nodelayTambahkeun ka file ~/.xinitrc ngaluncurkeun manajer jandela / lingkungan desktop anu anjeun pikaresep, anu bakal dieksekusi nalika server X dimimitian:
% echo "exec i3" > ~/.xinitrcHayu urang mareuman mesin virtual. Urang ngaktipkeun angkutan vsock pikeun mesin virtual ku ngajalankeun paréntah di handap ieu dina PowerShell salaku administrator:
PS Admin > Set-VM -VMName НАЗВАНИЕ_МАШИНЫ -EnhancedSessionTransportType HvSocketHayu urang ngahurungkeun mesin virtual deui.
Подключение
Pas jasa XRDP dimimitian saatos sistem dimimitian, aplikasi vmconnect bakal ngadeteksi ieu sareng itemna bakal sayogi dina ménu. View -> Sesi ditingkatkeun. Nalika milih item ieu, urang bakal dipenta pikeun nyetél resolusi layar, sareng dina tab Sumberdaya Lokal Dina dialog anu muka, anjeun tiasa milih alat pikeun diteruskeun kana sési RDP.


Hayu urang sambungkeun. Urang bakal ningali jandela login XRDP:

Asupkeun ngaran pamaké sarta sandi anjeun.
pamakean
Kauntungan tina manipulasi ieu katingali: sési RDP jalanna langkung responsif tibatan nalika damel sareng tampilan virtual tanpa Sesi Enhanced. Disk turun di jero VM via RDP sayogi dina diréktori ${HOME}/shared-drives:

Clipboard tiasa dianggo saé. Anjeun teu tiasa neraskeun printer di jero; ieu sanés ngan ukur dirojong, tapi ogé . Sora ogé henteu jalan, tapi panulis henteu peryogi ieu. Pikeun nyandak potong kompas keyboard sapertos Alt + Tab, anjeun kedah ngagedekeun vmconnect ka layar pinuh.
Если по каким-либо причинам есть желание использовать вместо приложения vmconnect встроенный в Windows RDP-клиент или, например, подключаться к этой машине из другой машины, то нужно будет поменять в файле /etc/xrdp/xrdp.ini port dina tcp://:3389. Upami mesin virtual disambungkeun ka Default Switch sareng nampi setélan jaringan via DHCP, teras anjeun tiasa nyambung ka éta tina host di название_машины.mshome.net. Anjeun ngan bisa asup kana TTY tina aplikasi vmconnect ku mareuman Mode Enhanced.
Sumber dipaké:
- Laporan bug dina GitHub: ,
sumber: www.habr.com
