
Itilizasyon machin vityèl sou Linux Nan Hyper-V, lè w pare pou itilize l, se yon eksperyans yon ti jan mwens konfòtab pase ak yon envite. Windows-машинами. Причиной тому является то, что Hyper-V все же изначально не предназначался для десктопного пользования; нельзя просто взять, поставить пакет гостевых дополнений и получить работоспособное графическое ускорение, буфер обмена, общие директории и другие радости жизни, как это происходит в VirtualBox.
Hyper-V tèt li bay - Se konsa, envite yo ka itilize sèvis kopi lonbraj lame a (VSS), envite yo ka voye yon siyal are, envite yo ka senkronize tan sistèm lan ak lame a Virtualization, dosye yo ka fè echanj soti nan lame a ak machin nan vityèl (Copy-VMFile в PowerShell). Для некоторых гостевых операционных систем, в числе которых, конечно, находится и Windows, в приложении Virtual Machine Connection (vmconnect.exe) Mòd Sesyon Enhanced ki disponib, k ap travay atravè pwotokòl RDP epi ki pèmèt ou transfere aparèy ki gen kapasite ak enprimant nan machin vityèl la, epi tou sèvi ak yon clipboard pataje.
Enhanced Session Mode из коробки работает в Windows в Hyper-V сразу после установки. С гостями на Linux нужно устанавливать RDP-сервер, поддерживающий vsock (специальное виртуальное сетевое адресное пространство в Linux, предназначенное для коммуникации с гипервизором). Если для Ubuntu в приложении VMCreate, идущим с Hyper-V на настольных редакциях Windows, есть специальный подготовленный шаблон виртуальной машины, в котором работающий с vsock RDP-сервер deja pre-enstale, Lè sa a, ak lòt distribisyon li se pi piti ak mwens klè - pou egzanp, otè a получилось включить ESM в Fedora. Здесь же мы активируем Enhanced Session Mode для виртуальной машины с Arch Linux.
Enstale sèvis entegrasyon
Tout bagay se plis oswa mwens senp isit la, nou jis bezwen enstale pake a hyperv soti nan depo kominote a:
% sudo pacman -S hypervAnn pèmèt sèvis VSS ak echanj ak dosye:
% for i in {vss,fcopy,kvp}; do sudo systemctl enable hv_${i}_daemon.service; doneEnstale 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/archNan moman ekri atik sa a, dènye lage XRDP, ki enstale pa script la makepkg.shyoun nan sijere nan repozitwa a se 0.9.11, vsock://-addresses, kidonk w ap oblije enstale XRDP soti nan Git ak chofè Xorg pou li soti nan AUR manyèlman. Patch XRDP yo ofri nan AUR la tou yon ti kras demode, kidonk w ap oblije modifye PKGBUILD ak patch la manyèlman.
Ann klonaj repozitwa ak PKGBUILD soti nan AUR (anjeneral pwosedi sa a, ansanm ak bati a, se otomatize pa pwogram tankou , men otè a te fè tout pwosedi sa a sou yon sistèm pwòp):
% git clone https://aur.archlinux.org/xrdp-devel-git.git
% git clone https://aur.archlinux.org/xorgxrdp-devel-git.gitAnn enstale XRDP tèt li an premye. Ann louvri dosye a PKGBUILD nenpòt editè tèks.
Ann edite paramèt konstriksyon yo. PKGBUILD pou bati XRDP soti nan Git pa enkli sipò vsock lè w ap bati, kidonk ann pèmèt li tèt nou:
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
}Nan patch la arch-config.diff, правящем юниты и скрипты запуска XRDP под пути к файлам, используемым в Arch Linux, содержится в том числе патч к скрипту instfiles/xrdp.sh, ki nan moman ekri a soti nan distribisyon XRDP, kidonk patch la pral oblije modifye manyèlman:
[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 -0600Ann konpile epi enstale pake a ak lòd la % makepkg --skipchecksums -si (kle --skipchecksums bezwen enfim verifikasyon checksum nan fichye sous, paske nou te modifye yo manyèlman).
Ann ale nan anyè a xorgxrdp-devel-git, apre sa nou tou senpleman rasanble pake a ak lòd la % makepkg -si.
Ann ale nan anyè a linux-vm-tools/arch epi kouri script la install-config.sh, ki mete paramèt XRDP, PolicyKit ak PAM:
% sudo ./install-config.shScript enstale anviwònman eritaj use_vsock, ki te inyore depi vèsyon 0.9.11, kidonk ann edite fichye konfigirasyon an /etc/xrdp/xrdp.ini manyèlman:
; 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_nodelayAjoute nan dosye ~/.xinitrc lanse anviwònman manadjè fenèt / biwo pi pito ou a, ki pral egzekite lè sèvè X la kòmanse:
% echo "exec i3" > ~/.xinitrcAnn fèmen machin vityèl la. Nou aktive transpò vsock pou machin vityèl la lè nou kouri lòd sa a nan PowerShell kòm yon administratè:
PS Admin > Set-VM -VMName НАЗВАНИЕ_МАШИНЫ -EnhancedSessionTransportType HvSocketAnn vire sou machin vityèl la ankò.
Подключение
Le pli vit ke sèvis XRDP la kòmanse apre sistèm lan kòmanse, aplikasyon vmconnect la pral detekte sa a epi atik la ap vin disponib nan meni an. Gade -> Sesyon Amelyore. Lè w ap chwazi atik sa a, nou pral mande pou nou mete rezolisyon ekran an, epi sou tab la Resous lokal yo Nan dyalòg ki ouvè a, ou ka chwazi aparèy yo dwe voye nan sesyon RDP la.


Ann konekte. Nou pral wè fenèt la konekte XRDP:

Antre non itilizatè ou an ak modpas ou.
Sèvi ak
Benefis ki genyen nan manipilasyon sa yo se aparan: sesyon RDP a travay pi plis repons pase lè w ap travay ak yon ekspozisyon vityèl san sesyon Enhanced. Disk tonbe andedan VM a atravè RDP yo disponib nan anyè a ${HOME}/shared-drives:

Clipboard la travay byen. Ou pa ka voye enprimant andedan; sa a pa sèlman pa sipòte, men tou . Son an tou pa travay, men otè a pa t 'bezwen sa a. Yo nan lòd yo pran rakoursi klavye tankou Alt + Tab, ou bezwen elaji vmconnect sou ekran konplè.
Если по каким-либо причинам есть желание использовать вместо приложения vmconnect встроенный в Windows RDP-клиент или, например, подключаться к этой машине из другой машины, то нужно будет поменять в файле /etc/xrdp/xrdp.ini port sou tcp://:3389. Si machin vityèl la konekte ak Default Switch epi li resevwa paramèt rezo atravè DHCP, Lè sa a, ou ka konekte ak li nan men lame a nan название_машины.mshome.net. Ou kapab sèlman konekte nan TTY apati aplikasyon vmconnect la lè w fèmen Mode Enhanced.
Sous yo itilize:
- Rapò ensèk sou GitHub: ,
Sous: www.habr.com
