
Gebruik virtuele masjiene op Linux in Hyper-V is dit uit die boks 'n effens minder gemaklike ervaring as met gas Windows-машинами. Причиной тому является то, что Hyper-V все же изначально не предназначался для десктопного пользования; нельзя просто взять, поставить пакет гостевых дополнений и получить работоспособное графическое ускорение, буфер обмена, общие директории и другие радости жизни, как это происходит в VirtualBox.
Hyper-V self verskaf - dus, gaste kan die gasheer se skadukopiediens (VSS) gebruik, gaste kan 'n afskakelsein stuur, gaste kan die stelseltyd met die virtualisasiegasheer sinchroniseer, lêers kan van die gasheer met die virtuele masjien uitgeruil word (Copy-VMFile в PowerShell). Для некоторых гостевых операционных систем, в числе которых, конечно, находится и Windows, в приложении Virtual Machine Connection (vmconnect.exe) Verbeterde Sessiemodus is beskikbaar, werk via die RDP-protokol en stel jou in staat om skyftoestelle en drukkers na die virtuele masjien oor te dra, asook om 'n gedeelde knipbord te gebruik.
Enhanced Session Mode из коробки работает в Windows в Hyper-V сразу после установки. С гостями на Linux нужно устанавливать RDP-сервер, поддерживающий vsock (специальное виртуальное сетевое адресное пространство в Linux, предназначенное для коммуникации с гипервизором). Если для Ubuntu в приложении VMCreate, идущим с Hyper-V на настольных редакциях Windows, есть специальный подготовленный шаблон виртуальной машины, в котором работающий с vsock RDP-сервер reeds vooraf geïnstalleer, dan is dit met ander verspreidings al hoe minder duidelik - byvoorbeeld die skrywer получилось включить ESM в Fedora. Здесь же мы активируем Enhanced Session Mode для виртуальной машины с Arch Linux.
Installeer integrasiedienste
Alles is min of meer eenvoudig hier, ons moet net die pakket installeer hyperv uit die gemeenskapsbewaarplek:
% sudo pacman -S hypervKom ons aktiveer VSS en uitruildienste en lêers:
% for i in {vss,fcopy,kvp}; do sudo systemctl enable hv_${i}_daemon.service; doneInstalleer XRDP
bewaarplek на 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/archTen tyde van die skryf van hierdie artikel, die nuutste weergawe van XRDP, wat deur die skrif geïnstalleer is makepkg.shdie een wat in die bewaarplek voorgestel word, is 0.9.11, vsock://-adresse, so jy sal XRDP vanaf Git en die Xorg-bestuurder daarvoor vanaf AUR met die hand moet installeer. Die XRDP-pleister wat in die AUR aangebied word, is ook effens verouderd, so jy sal die PKGBUILD en die pleister met die hand moet wysig.
Kom ons kloon bewaarplekke met PKGBUILD's van AUR (gewoonlik word hierdie prosedure, saam met die bou, geoutomatiseer deur programme soos , maar die skrywer het hierdie hele prosedure op 'n skoon stelsel gedoen):
% git clone https://aur.archlinux.org/xrdp-devel-git.git
% git clone https://aur.archlinux.org/xorgxrdp-devel-git.gitKom ons installeer XRDP self eers. Kom ons maak die lêer oop PKGBUILD enige teksredigeerder.
Kom ons wysig die bouparameters. PKGBUILD vir die bou van XRDP vanaf Git sluit nie vsock-ondersteuning in wanneer jy bou nie, so laat ons dit self aktiveer:
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
}In die pleister arch-config.diff, правящем юниты и скрипты запуска XRDP под пути к файлам, используемым в Arch Linux, содержится в том числе патч к скрипту instfiles/xrdp.sh, wat ten tyde van die skryf hiervan vanaf die XRDP-verspreiding, dus sal die pleister met die hand gewysig moet word:
[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 -0600Kom ons stel en installeer die pakket met die opdrag % makepkg --skipchecksums -si (sleutel --skipchecksums nodig om kontrolesomverifikasie van bronlêers uit te skakel, aangesien ons dit handmatig geredigeer het).
Kom ons gaan na die gids xorgxrdp-devel-git, waarna ons eenvoudig die pakket saamstel met die opdrag % makepkg -si.
Kom ons gaan na die gids linux-vm-tools/arch en voer die skrip uit install-config.sh, wat XRDP, PolicyKit en PAM instellings stel:
% sudo ./install-config.shSkrip installeer verouderde instelling use_vsock, wat sedert weergawe 0.9.11 geïgnoreer is, so kom ons wysig die konfigurasielêer /etc/xrdp/xrdp.ini handmatig:
; 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_nodelayVoeg by lêer ~/.xinitrc die begin van u voorkeurvensterbestuurder/lessenaaromgewing, wat uitgevoer sal word wanneer die X-bediener begin:
% echo "exec i3" > ~/.xinitrcKom ons skakel die virtuele masjien af. Ons aktiveer die vsock-vervoer vir die virtuele masjien deur die volgende opdrag in PowerShell as administrateur uit te voer:
PS Admin > Set-VM -VMName НАЗВАНИЕ_МАШИНЫ -EnhancedSessionTransportType HvSocketKom ons skakel die virtuele masjien weer aan.
Подключение
Sodra die XRDP-diens begin nadat die stelsel begin het, sal die vmconnect-toepassing dit opspoor en die item sal in die kieslys beskikbaar wees Besigtig -> Verbeterde Sessie. Wanneer ons hierdie item kies, sal ons gevra word om die skermresolusie te stel, en op die oortjie Plaaslike hulpbronne In die dialoog wat oopmaak, kan u toestelle kies wat na die HOP-sessie gestuur moet word.


Kom ons verbind. Ons sal die XRDP-aanmeldvenster sien:

Voer jou gebruikersnaam en wagwoord in.
Gebruik
Die voordeel van hierdie manipulasies is opvallend: die RDP-sessie werk baie meer reageer as wanneer daar met 'n virtuele skerm sonder Verbeterde Sessie gewerk word. Skywe wat binne die VM via RDP gegooi word, is in die gids beskikbaar ${HOME}/shared-drives:

Die knipbord werk goed. Jy kan nie drukkers binne aanstuur nie; dit word nie net nie ondersteun nie, maar ook . Die klank werk ook nie, maar die skrywer het dit nie nodig gehad nie. Om sleutelbordkortpaaie soos Alt+Tab vas te vang, moet jy vmconnect na volskerm uitbrei.
Если по каким-либо причинам есть желание использовать вместо приложения vmconnect встроенный в Windows RDP-клиент или, например, подключаться к этой машине из другой машины, то нужно будет поменять в файле /etc/xrdp/xrdp.ini port op tcp://:3389. As die virtuele masjien aan verstekskakelaar gekoppel is en netwerkinstellings via DHCP ontvang, kan jy vanaf die gasheer daaraan koppel by название_машины.mshome.net. U kan slegs vanaf die vmconnect-toepassing by TTY aanmeld deur Verbeterde modus af te skakel.
Gebruikte bronne:
- Foutverslae op GitHub: ,
Bron: will.com
