
Bikaranîna makîneyên virtual li ser Linux di Hyper-V de ji qutîkê ve ezmûnek hinekî kêmtir rehet e ji ya bi mêvan re Windows-машинами. Причиной тому является то, что Hyper-V все же изначально не предназначался для десктопного пользования; нельзя просто взять, поставить пакет гостевых дополнений и получить работоспособное графическое ускорение, буфер обмена, общие директории и другие радости жизни, как это происходит в VirtualBox.
Hyper-V bixwe peyda dike - Ji ber vê yekê, mêvan dikarin karûbarê kopîkirina siya mêvandar (VSS) bikar bînin, mêvan dikarin îşaretek girtîbûnê bişînin, mêvan dikarin dema pergalê bi mêvandarê virtualbûnê re hevdeng bikin, pelan dikarin ji mêvandarê bi makîneya virtual re werin guheztin (Copy-VMFile в PowerShell). Для некоторых гостевых операционных систем, в числе которых, конечно, находится и Windows, в приложении Virtual Machine Connection (vmconnect.exe) Moda Danişînê ya Pêşkeftî heye, ku bi protokola RDP-yê dixebite û dihêle hûn cîhazên dîskê û çaperan li makîneya virtual veguhezînin, û her weha clipboardek hevpar bikar bînin.
Enhanced Session Mode из коробки работает в Windows в Hyper-V сразу после установки. С гостями на Linux нужно устанавливать RDP-сервер, поддерживающий vsock (специальное виртуальное сетевое адресное пространство в Linux, предназначенное для коммуникации с гипервизором). Если для Ubuntu в приложении VMCreate, идущим с Hyper-V на настольных редакциях Windows, есть специальный подготовленный шаблон виртуальной машины, в котором работающий с vsock RDP-сервер jixwe pêş-sazkirî ye, wê hingê bi belavkirinên din re ew kêmtir û kêmtir zelal e - mînakî, nivîskar получилось включить ESM в Fedora. Здесь же мы активируем Enhanced Session Mode для виртуальной машины с Arch Linux.
Sazkirina xizmetên entegrasyonê
Li vir her tişt kêm-zêde hêsan e, em tenê hewce ne ku pakêtê saz bikin hyperv ji depoya civakê:
% sudo pacman -S hypervWerin em karûbarên VSS û danûstendinê çalak bikin û pelan:
% for i in {vss,fcopy,kvp}; do sudo systemctl enable hv_${i}_daemon.service; doneSazkirina XRDP
depo на 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/archDi dema nivîsandina vê gotarê de, serbestberdana herî dawî ya XRDP, ku ji hêla skrîptê ve hatî saz kirin makepkg.shya ku di depoyê de tê pêşniyar kirin 0.9.11 e, vsock://-navnîşan, ji ber vê yekê hûn neçar in ku XRDP ji Git û ajokarê Xorg ji bo wê ji AUR bi destan saz bikin. Patcha XRDP ya ku di AUR-ê de tê pêşkêş kirin jî hinekî kevnar e, ji ber vê yekê hûn neçar in ku PKGBUILD-ê biguherînin û bi destan patch bikin.
Werin em depoyên bi PKGBUILD-ên ji AUR-ê klon bikin (bi gelemperî ev prosedur, ligel çêkirinê, ji hêla bernameyên mîna , lê nivîskar ev prosedur tev li ser pergalek paqij kir):
% git clone https://aur.archlinux.org/xrdp-devel-git.git
% git clone https://aur.archlinux.org/xorgxrdp-devel-git.gitWerin em pêşî XRDP bixwe saz bikin. Ka em pelê vekin PKGBUILD her edîtorê nivîsê.
Ka em parametreyên avakirinê biguherînin. PKGBUILD ji bo avakirina XRDP ji Git di dema çêkirinê de piştgiriya vsock nake, ji ber vê yekê em bi xwe wê çalak bikin:
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
}Di paçê de arch-config.diff, правящем юниты и скрипты запуска XRDP под пути к файлам, используемым в Arch Linux, содержится в том числе патч к скрипту instfiles/xrdp.sh, ku di dema nivîsandinê de ji belavkirina XRDP, ji ber vê yekê pêdivî ye ku patch bi destan were guherandin:
[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 -0600Ka em pakêtê bi fermanê berhev bikin û saz bikin % makepkg --skipchecksums -si (qûfle --skipchecksums pêdivî ye ku verastkirina kontrolê ya pelên çavkaniyê neçalak bike, ji ber ku me wan bi destan guhert).
Ka em biçin pelrêça xorgxrdp-devel-git, piştî ku em bi tenê bi fermanê pakêtê kom dikin % makepkg -si.
Ka em biçin pelrêça linux-vm-tools/arch û senaryoyê bimeşînin install-config.sh, ku mîhengên XRDP, PolicyKit û PAM-ê destnîşan dike:
% sudo ./install-config.shSkrîpt mîhenga mîras saz dike use_vsock, ya ku ji guhertoya 0.9.11 ve hatî paşguh kirin, ji ber vê yekê em pelê veavakirinê biguherînin /etc/xrdp/xrdp.ini bi destan:
; 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_nodelayLi pelê zêde bike ~/.xinitrc destpêkirina rêveberê pencereya xweya bijare / hawîrdora sermaseyê, ya ku dê gava ku servera X dest pê dike were darve kirin:
% echo "exec i3" > ~/.xinitrcWerin em makîneya virtual vemirînin. Em veguheztina vsock ji bo makîneya virtual bi xebitandina fermana jêrîn li PowerShell-ê wekî rêveber çalak dikin:
PS Admin > Set-VM -VMName НАЗВАНИЕ_МАШИНЫ -EnhancedSessionTransportType HvSocketKa em dîsa makîneya virtual vekin.
Подключение
Hema ku karûbarê XRDP dest pê dike piştî ku pergalê dest pê dike, serîlêdana vmconnect dê vê yekê tespît bike û tişt dê di menuyê de peyda bibe. Dîtinî -> Danişîna Enhanced. Dema ku vê babetê hilbijêrin, dê ji me were xwestin ku çareseriya ekranê, û li ser tabê saz bikin Avkaniyên herêmî Di diyaloga ku vedibe, hûn dikarin cîhazên ku di danişîna RDP de werin şandin hilbijêrin.


Werin em girêdan. Em ê pencereya têketina XRDP bibînin:

Navê bikarhêner û şîfreya xwe binivîse.
Bikar bînin
Feydeya van manîpulasyonan diyar e: danişîna RDP ji dema ku bi dîmenderek virtual re bêyî Danişîna Pêşkeftî dixebitin pirtir bersivdar dixebite. Dîskên ku di hundurê VM-ê de bi navgîniya RDP ve hatine avêtin di pelrêçê de hene ${HOME}/shared-drives:

Clipboard baş dixebite. Hûn nekarin çapkeran li hundur bişînin; ev ne tenê nayê piştgirî kirin, lê di heman demê de jî . Deng jî naxebite, lê nivîskar hewcedarê vê yekê nebû. Ji bo ku hûn kurtebirên klavyeyê yên mîna Alt+Tab bigirin, hûn hewce ne ku vmconnect li ser ekrana tevahî berfireh bikin.
Если по каким-либо причинам есть желание использовать вместо приложения vmconnect встроенный в Windows RDP-клиент или, например, подключаться к этой машине из другой машины, то нужно будет поменять в файле /etc/xrdp/xrdp.ini port li ser tcp://:3389. Ger makîneya virtual bi Guhestina Default ve girêdayî ye û mîhengên torê bi DHCP-ê distîne, wê hingê hûn dikarin ji mêvandarê pê ve girêdayî bin. название_машины.mshome.net. Hûn dikarin tenê ji serîlêdana vmconnect bi vegirtina Moda Pêşkeftî têkevin TTY.
Çavkaniyên bikaranîn:
- Raporên çewtiyê li ser GitHub: ,
Source: www.habr.com
