
Iji igwe mebere eme ihe na Linux na Hyper-V n'èzí igbe bụ ahụmịhe dịtụ obere mma karịa na onye ọbịa Windows-машинами. Причиной тому является то, что Hyper-V все же изначально не предназначался для десктопного пользования; нельзя просто взять, поставить пакет гостевых дополнений и получить работоспособное графическое ускорение, буфер обмена, общие директории и другие радости жизни, как это происходит в VirtualBox.
Hyper-V n'onwe ya na-enye - yabụ, ndị ọbịa nwere ike iji ọrụ nnomi nke onye ọbịa (VSS), ndị ọbịa nwere ike izipu akara mmechi, ndị ọbịa nwere ike mekọrịta oge sistemụ na onye nnabata virtualization, faịlụ nwere ike gbanwere site na onye ọbịa na igwe mebere (Copy-VMFile в PowerShell). Для некоторых гостевых операционных систем, в числе которых, конечно, находится и Windows, в приложении Virtual Machine Connection (vmconnect.exe) Ọnọdụ nnọkọ dịwanye mma, na-arụ ọrụ site na usoro RDP ma na-enye gị ohere ịnyefe ngwaọrụ diski na ndị na-ebi akwụkwọ na igwe mebere, yana iji bọọdụ kekọrịtara.
Enhanced Session Mode из коробки работает в Windows в Hyper-V сразу после установки. С гостями на Linux нужно устанавливать RDP-сервер, поддерживающий vsock (специальное виртуальное сетевое адресное пространство в Linux, предназначенное для коммуникации с гипервизором). Если для Ubuntu в приложении VMCreate, идущим с Hyper-V на настольных редакциях Windows, есть специальный подготовленный шаблон виртуальной машины, в котором работающий с vsock RDP-сервер etinyelarịrịrị ya, mgbe ahụ na nkesa ndị ọzọ ọ na-adị ntakịrị ma doo anya - dịka ọmụmaatụ, onye edemede получилось включить ESM в Fedora. Здесь же мы активируем Enhanced Session Mode для виртуальной машины с Arch Linux.
Ịwụnye ọrụ ntinye
Ihe niile dị mfe ma ọ bụ dị mfe ebe a, naanị anyị kwesịrị ịwụnye ngwugwu ahụ hyperv site na ebe nchekwa obodo:
% sudo pacman -S hypervKa anyị mee ka VSS na ọrụ mgbanwe na faịlụ:
% for i in {vss,fcopy,kvp}; do sudo systemctl enable hv_${i}_daemon.service; doneỊwụnye XRDP
ebe nchekwa на 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/archN'oge edere akụkọ a, ntọhapụ ọhụrụ nke XRDP, nke etinyere na edemede ahụ makepkg.shnke a tụrụ aro na ebe nchekwa ahụ bụ 0.9.11, vsock://-adreesị, yabụ ị ga-etinye XRDP site na Git na onye ọkwọ ụgbọ ala Xorg maka ya site na AUR. Ngwunye XRDP enyere na AUR adịkwaghị agwụla, yabụ ị ga-eji aka dezie PKGBUILD na patch.
Ka anyị jiri PKGBUILD si na AUR mechie ebe nchekwa (na-emekarị usoro a, yana ihe owuwu ahụ, na-arụ ọrụ site na mmemme dị ka , ma odee mere usoro a dum na usoro dị ọcha):
% git clone https://aur.archlinux.org/xrdp-devel-git.git
% git clone https://aur.archlinux.org/xorgxrdp-devel-git.gitKa anyị buru ụzọ wụnye XRDP n'onwe ya. Ka anyị mepee faịlụ ahụ PKGBUILD editọ ederede ọ bụla.
Ka anyị dezie ihe nrụpụta. PKGBUILD maka iwulite XRDP site na Git anaghị agụnye nkwado vsock mgbe a na-ewu ụlọ, yabụ ka anyị mee ya n'onwe anyị:
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
}N'ime patch arch-config.diff, правящем юниты и скрипты запуска XRDP под пути к файлам, используемым в Arch Linux, содержится в том числе патч к скрипту instfiles/xrdp.sh, nke n'oge ederede site na nkesa XRDP, yabụ a ga-eji aka dezie patch ahụ:
[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 anyị chịkọta ma wụnye ngwugwu na iwu ahụ % makepkg --skipchecksums -si ( igodo --skipchecksums achọrọ iji gbanyụọ nkwenye checksum nke faịlụ isi mmalite, ebe anyị ji aka dezie ha).
Ka anyị gaa na ndekọ xorgxrdp-devel-git, mgbe nke ahụ gasịrị, anyị na-ejikọta ngwugwu ahụ na iwu ahụ % makepkg -si.
Ka anyị gaa na ndekọ linux-vm-tools/arch ma gbaa edemede ahụ install-config.sh, nke na-edozi ntọala XRDP, PolicyKit na PAM:
% sudo ./install-config.shEdemede na-etinye ntọala ntọala use_vsock, nke leghaara anya kemgbe ụdị 0.9.11, yabụ ka anyị dezie faịlụ nhazi /etc/xrdp/xrdp.ini aka:
; 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_nodelayTinye na faịlụ ~/.xinitrc ibido njikwa windo/desktọpụ masịrị gị, nke a ga-egbu mgbe ihe nkesa X malitere:
% echo "exec i3" > ~/.xinitrcKa anyị gbanyụọ igwe mebere. Anyị na-arụ ọrụ ụgbọ njem vsock maka igwe mebere site na iji iwu a na PowerShell dị ka onye nchịkwa:
PS Admin > Set-VM -VMName НАЗВАНИЕ_МАШИНЫ -EnhancedSessionTransportType HvSocketKa anyị gbanye igwe mebere ọzọ.
Akwụsị
Ozugbo ọrụ XRDP malitere mgbe sistemụ ahụ malitechara, ngwa vmconnect ga-achọpụta nke a na ihe ahụ ga-adị na menu. View -> Oge emelitere. Mgbe ị na-ahọrọ ihe a, a ga-akpali anyị ịtọ mkpebi ihuenyo, yana na taabụ Ngwa mpaghara Na mkparịta ụka na-emepe, ị ga-enwe ike ịhọrọ ngwaọrụ ndị a ga-ebuga na nnọkọ RDP.


Ka anyị jikọọ. Anyị ga-ahụ windo nbanye XRDP:

Tinye aha njirimara na paswọọdụ gị.
Jiri
A na-ahụta uru sitere na nhụsianya ndị a: nnọkọ RDP na-arụ ọrụ nke ọma karịa mgbe ị na-arụ ọrụ na ngosipụta mebere na-enweghị Mmekọahụ Oge. Diski ndị etinyere n'ime VM site na RDP dị na ndekọ ${HOME}/shared-drives:

Klipbọọdụ ahụ na-arụ ọrụ nke ọma. Ị nweghị ike ibugharị ndị nbipute n'ime; nke a abụghị naanị akwadoro, kamakwa . Ụda ahụ anaghịkwa arụ ọrụ, mana onye edemede ahụ achọghị nke a. Iji weghara ụzọ mkpirisi ahụigodo dị ka Alt+Tab, ịkwesịrị ịgbasa vmconnect na ihuenyo zuru oke.
Если по каким-либо причинам есть желание использовать вместо приложения vmconnect встроенный в Windows RDP-клиент или, например, подключаться к этой машине из другой машины, то нужно будет поменять в файле /etc/xrdp/xrdp.ini port on tcp://:3389. Ọ bụrụ na ejikọrọ igwe mebere ya na Default Switch wee nweta ntọala netwọkụ site na DHCP, mgbe ahụ ị nwere ike jikọọ na ya site na onye ọbịa. название_машины.mshome.net. Ị nwere ike ịbanye na TTY site na ngwa vmconnect site na gbanyụọ ọnọdụ emelitere.
Isi mmalite ejiri:
- Bug na-akọ na GitHub: ,
isi: www.habr.com
