
Používanie virtuálnych počítačov na Linux v Hyper-V je po vybalení z krabice o niečo menej pohodlný zážitok ako v hosťovskom režime Windows-machines. Dôvodom je, že Hyper-V nebol pôvodne navrhnutý pre použitie na stolných počítačoch; nemôžete jednoducho nainštalovať balík Guest Additions a získať funkčnú grafickú akceleráciu, schránku, zdieľané adresáre a ďalšie výhody, ako je to možné s VirtualBoxom.
Hyper-V sám poskytuje - takže hostia môžu používať službu tieňovej kópie (VSS) hostiteľa, hostia môžu poslať signál vypnutia, hostia môžu synchronizovať systémový čas s hostiteľom virtualizácie, súbory je možné vymieňať s virtuálnym počítačom z hostiteľa (Copy-VMFile v PowerShelle). Pre niektoré hosťujúce operačné systémy, ktoré samozrejme zahŕňajú Windows, v aplikácii Pripojenie virtuálneho počítača (vmconnect.exe) K dispozícii je režim Enhanced Session Mode, ktorý funguje prostredníctvom protokolu RDP a umožňuje posielať diskové zariadenia a tlačiarne do virtuálneho stroja, ako aj používať zdieľanú schránku.
Režim vylepšenej relácie funguje ihneď po vybalení z krabice Windows v Hyper-V ihneď po inštalácii. S hosťami na Linux Musíte nainštalovať RDP server, ktorý podporuje vsock (špeciálny adresný priestor virtuálnej siete v Linux, určený na komunikáciu s hypervízorom). Ak pre Ubuntu v aplikácii VMCreate, ktorá je súčasťou Hyper-V v desktopových edíciách Windows, existuje špeciálne pripravená šablóna virtuálneho počítača, v ktorej RDP server pracuje s vsock už predinštalovaný, potom pri iných distribúciách je to čoraz menej jasné - napríklad autor Podarilo sa nám povoliť ESM vo Fedore. Tu tiež aktivujeme režim Enhanced Session Mode pre virtuálny stroj Arch. Linux.
Inštalácia integračných služieb
Všetko je tu viac-menej jednoduché, stačí nám nainštalovať balík hyperv z komunitného úložiska:
% sudo pacman -S hypervPovoliť služby VSS, výmenu a súbory:
% for i in {vss,fcopy,kvp}; do sudo systemctl enable hv_${i}_daemon.service; doneInštalácia XRDP
Úložisko poskytuje skripty na GitHub, ktoré automatizujú proces inštalácie a konfigurácie XRDP pre Arch Linux и UbuntuNainštalujme si Git, ak ešte nie je nainštalovaný, spolu s kompilátorom a ďalším softvérom na manuálne zostavenie a potom naklonujme repozitár:
% sudo pacman -S git base-devel
% git clone https://github.com/microsoft/linux-vm-tools.git
% cd linux-vm-tools/archV čase písania tohto článku je to najnovšie vydanie XRDP, ktoré je nainštalované skriptom makepkg.shnavrhovaný v úložisku je 0.9.11, vsock://-adresy, takže XRDP z Gitu a ovládač Xorg k nemu musíte nainštalovať z AUR ručne. Oprava pre XRDP ponúkaná v AUR je tiež mierne zastaraná, takže budete musieť upraviť PKGBUILD a opravu ručne.
Klonujeme úložiská pomocou PKGBUILD z AUR (zvyčajne je tento postup spolu s montážou automatizovaný programami ako , ale autor urobil celý tento postup na čistom systéme):
% git clone https://aur.archlinux.org/xrdp-devel-git.git
% git clone https://aur.archlinux.org/xorgxrdp-devel-git.gitNajprv si nainštalujte samotné XRDP. Otvorme súbor PKGBUILD akýkoľvek textový editor.
Upravme parametre zostavy. PKGBUILD na zostavenie XRDP z Gitu nezahŕňa podporu vsock v zostave, takže ju povoľme sami:
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
}V náplasti arch-config.diff, riadiace jednotky a spúšťacie skripty XRDP v cestách k súborom používaných v Arche Linux, obsahuje opravu skriptu instfiles/xrdp.sh, ktorý v čase písania tohto článku z distribúcie XRDP, takže patch bude potrebné upraviť ručne:
[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 -0600Zostavte a nainštalujte balík pomocou príkazu % makepkg --skipchecksums -si (kľúč --skipchecksums je potrebné na zakázanie overovania kontrolného súčtu zdrojových súborov, keďže sme ich upravovali manuálne).
Poďme do adresára xorgxrdp-devel-git, po ktorom jednoducho zostavíme balík príkazom % makepkg -si.
Poďme do adresára linux-vm-tools/arch a spustite skript install-config.sh, ktorý nastavuje nastavenia XRDP, PolicyKit a PAM:
% sudo ./install-config.shSkript nainštaluje staršie nastavenie use_vsock, ktorý je od verzie 0.9.11 ignorovaný, poďme teda upraviť konfiguračný súbor /etc/xrdp/xrdp.ini ručne:
; 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_nodelayPridať do súboru ~/.xinitrc spustenie vášho preferovaného správcu okien/desktop prostredia, ktoré sa spustí pri spustení X servera:
% echo "exec i3" > ~/.xinitrcVypnime virtuálny stroj. Povoľte prenos vsock pre virtuálny počítač spustením nasledujúceho príkazu v prostredí PowerShell ako správca:
PS Admin > Set-VM -VMName НАЗВАНИЕ_МАШИНЫ -EnhancedSessionTransportType HvSocketOpäť zapneme virtuálny stroj.
prípojka
Akonáhle sa po spustení systému spustí služba XRDP, aplikácia vmconnect to určí a položka ponuky bude dostupná. pohľad -> Vylepšená relácia. Keď vyberiete túto položku, zobrazí sa výzva na nastavenie rozlíšenia obrazovky a na karte Miestne zdroje v dialógovom okne, ktoré sa otvorí, môžete vybrať zariadenia presmerované v rámci relácie RDP.


Poďme sa spojiť. Zobrazí sa nám prihlasovacie okno XRDP:

Zadajte svoje používateľské meno a heslo.
Použitie
Zisk z týchto manipulácií je viditeľný: relácia RDP funguje oveľa lepšie ako pri práci s virtuálnym displejom bez vylepšenej relácie. Disky preposlané vo vnútri VM cez RDP sú dostupné v adresári ${HOME}/shared-drives:

Schránka funguje dobre. Do vnútra nemôžete hádzať tlačiarne, to nielenže nie je podporované, ale tiež . Zvuk tiež nefunguje, ale to autor nepotreboval. Ak chcete zachytiť klávesové skratky ako Alt + Tab, musíte rozbaliť vmconnect na celú obrazovku.
Ak z akéhokoľvek dôvodu chcete použiť vstavanú aplikáciu vmconnect namiesto Windows RDP klient alebo sa napríklad pripojte k tomuto počítaču z iného počítača, potom budete musieť zmeniť súbor /etc/xrdp/xrdp.ini port na tcp://:3389. Ak je virtuálny počítač pripojený k predvolenému prepínaču a prijíma nastavenia siete cez DHCP, môžete sa k nemu pripojiť z hostiteľa na adrese название_машины.mshome.net. Do TTY sa môžete prihlásiť iba z aplikácie vmconnect vypnutím rozšíreného režimu.
Použité zdroje:
- Hlásenia chýb na GitHub: ,
Zdroj: hab.com
