
Virtuaalikoneiden käyttö Linux Hyper-V:ssä heti pakkauksesta otettuna käyttökokemus on hieman epämukavampi kuin vierasversiossa. Windows-машинами. Причиной тому является то, что Hyper-V все же изначально не предназначался для десктопного пользования; нельзя просто взять, поставить пакет гостевых дополнений и получить работоспособное графическое ускорение, буфер обмена, общие директории и другие радости жизни, как это происходит в VirtualBox.
Hyper-V tarjoaa itse - joten vieraat voivat käyttää isännän varjokopiopalvelua (VSS), vieraat voivat lähettää sammutussignaalin, vieraat voivat synkronoida järjestelmän ajan virtualisointipalvelimen kanssa, tiedostoja voidaan vaihtaa virtuaalikoneen kanssa isännästä (Copy-VMFile в PowerShell). Для некоторых гостевых операционных систем, в числе которых, конечно, находится и Windows, в приложении Virtual Machine Connection (vmconnect.exe) Saatavilla on Enhanced Session Mode, joka toimii RDP-protokollan kautta ja mahdollistaa levylaitteiden ja tulostimien välittämisen virtuaalikoneeseen sekä jaetun leikepöydän käytön.
Enhanced Session Mode из коробки работает в Windows в Hyper-V сразу после установки. С гостями на Linux нужно устанавливать RDP-сервер, поддерживающий vsock (специальное виртуальное сетевое адресное пространство в Linux, предназначенное для коммуникации с гипервизором). Если для Ubuntu в приложении VMCreate, идущим с Hyper-V на настольных редакциях Windows, есть специальный подготовленный шаблон виртуальной машины, в котором работающий с vsock RDP-сервер jo esiasennettuna, niin muilla jakeluilla se on vähemmän selvää - esimerkiksi kirjoittaja получилось включить ESM в Fedora. Здесь же мы активируем Enhanced Session Mode для виртуальной машины с Arch Linux.
Integrointipalvelujen asennus
Kaikki on enemmän tai vähemmän yksinkertaista täällä, meidän on vain asennettava paketti hyperv yhteisön arkistosta:
% sudo pacman -S hypervOta VSS-palvelut käyttöön, vaihda ja tiedostot:
% for i in {vss,fcopy,kvp}; do sudo systemctl enable hv_${i}_daemon.service; doneXRDP-asennus
arkisto на 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/archTätä kirjoitettaessa XRDP:n viimeisin julkaisu, jonka komentosarja asentaa makepkg.sharkistoon ehdotettu on 0.9.11, vsock://-osoitteet, joten sinun on asennettava XRDP Gitistä ja Xorg-ajuri sille AUR:sta manuaalisesti. AUR:ssa tarjottu XRDP-korjaus on myös hieman vanhentunut, joten joudut muokkaamaan PKGBUILD-tiedostoa ja korjaustiedostoa manuaalisesti.
Kloonamme arkistot AUR:n PKGBUILD-koodeilla (yleensä tämä menettely yhdessä kokoonpanon kanssa on automatisoitu sellaisilla ohjelmilla kuin , mutta kirjoittaja teki tämän koko toimenpiteen puhtaalla järjestelmällä):
% git clone https://aur.archlinux.org/xrdp-devel-git.git
% git clone https://aur.archlinux.org/xorgxrdp-devel-git.gitAsennataan ensin itse XRDP. Avataan tiedosto PKGBUILD mikä tahansa tekstieditori.
Muokataan rakennusparametreja. PKGBUILD XRDP:n rakentamiseen Gitistä ei sisällä vsock-tukea rakentamisessa, joten otetaan se käyttöön itse:
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
}Patchissa arch-config.diff, правящем юниты и скрипты запуска XRDP под пути к файлам, используемым в Arch Linux, содержится в том числе патч к скрипту instfiles/xrdp.sh, joka kirjoitushetkellä XRDP-jakelusta, joten korjaustiedostoa on muokattava manuaalisesti:
[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 -0600Rakenna ja asenna paketti komennolla % makepkg --skipchecksums -si (avain --skipchecksums tarvitaan lähdetiedostojen tarkistussummatarkistuksen poistamiseksi käytöstä, koska muokkasimme niitä manuaalisesti).
Mennään hakemistoon xorgxrdp-devel-git, jonka jälkeen rakennamme paketin komennolla % makepkg -si.
Mennään hakemistoon linux-vm-tools/arch ja suorita skripti install-config.sh, joka määrittää XRDP-, PolicyKit- ja PAM-asetukset:
% sudo ./install-config.shKomentosarja asentaa vanhan asetuksen use_vsock, jota ei huomioida versiosta 0.9.11 lähtien, joten muokataan asetustiedostoa /etc/xrdp/xrdp.ini käsin:
; 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_nodelayLisää tiedostoon ~/.xinitrc käynnistää haluamasi ikkunanhallinta-/työpöytäympäristö, joka suoritetaan, kun X-palvelin käynnistetään:
% echo "exec i3" > ~/.xinitrcSammuta virtuaalikone. Ota vsock-siirto käyttöön VM:lle suorittamalla seuraava komento PowerShellissä järjestelmänvalvojana:
PS Admin > Set-VM -VMName НАЗВАНИЕ_МАШИНЫ -EnhancedSessionTransportType HvSocketLaitetaan virtuaalikone uudelleen päälle.
Подключение
Heti kun XRDP-palvelu käynnistyy järjestelmän käynnistymisen jälkeen, vmconnect-sovellus määrittää tämän ja valikkokohta tulee saataville. Näytä -> Tehostettu istunto. Kun valitset tämän kohteen, meitä kehotetaan asettamaan näytön tarkkuus ja -välilehdellä Paikalliset resurssit avautuvasta valintaikkunasta voit valita RDP-istunnon sisällä edelleenlähetetyt laitteet.


Otetaan yhteyttä. Näemme XRDP-kirjautumisikkunan:

Anna käyttäjätunnuksesi ja salasanasi.
Käyttää
Hyöty näistä manipuloinneista on havaittavissa: RDP-istunto toimii paljon herkemmin kuin työskenneltäessä virtuaalisen näytön kanssa ilman Enhanced Session -ohjelmaa. VM:n sisällä RDP:n kautta edelleenlähetetyt levyt ovat saatavilla hakemistossa ${HOME}/shared-drives:

Leikepöytä toimii hyvin. Et voi heittää tulostimia sisään, sitä ei vain tueta, vaan myös . Ääni ei myöskään toimi, mutta kirjoittaja ei tarvinnut sitä. Jotta voit kaapata pikanäppäimiä, kuten Alt + Tab, sinun on laajennettava vmconnect koko näytön kokoiseksi.
Если по каким-либо причинам есть желание использовать вместо приложения vmconnect встроенный в Windows RDP-клиент или, например, подключаться к этой машине из другой машины, то нужно будет поменять в файле /etc/xrdp/xrdp.ini port päälle tcp://:3389. Jos virtuaalikone on yhdistetty oletuskytkimeen ja vastaanottaa verkkoasetukset DHCP:n kautta, voit muodostaa yhteyden siihen isännästä osoitteessa название_машины.mshome.net. Voit kirjautua sisään TTY:hen vain vmconnect-sovelluksesta poistamalla Enhanced Mode -tilan käytöstä.
Käytetyt lähteet:
- Vikaraportit GitHubissa: ,
Lähde: will.com
