
Korištenje virtualnih strojeva na Linux U Hyper-V-u odmah po instalaciji je nešto manje ugodno iskustvo nego s gostujućim načinom rada. Windows-računala. Razlog tome je što Hyper-V nije izvorno dizajniran za korištenje na računalu; ne možete jednostavno instalirati paket Guest Additions i dobiti funkcionalno grafičko ubrzanje, međuspremnik, dijeljene direktorije i druge pogodnosti, kao što možete s VirtualBoxom.
Sam Hyper-V pruža - dakle, gosti mogu koristiti uslugu kopiranja u sjeni (VSS) glavnog računala, gosti mogu poslati signal za isključivanje, gosti mogu sinkronizirati vrijeme sustava s hostom virtualizacije, datoteke se mogu razmjenjivati s virtualnim strojem s glavnog računala (Copy-VMFile u PowerShellu). Za neke gostujuće operativne sustave, što naravno uključuje Windows, u aplikaciji Povezivanje virtualnog stroja (vmconnect.exe) Dostupan je Enhanced Session Mode, koji radi putem RDP protokola i omogućuje prosljeđivanje diskovnih uređaja i pisača virtualnom stroju, kao i korištenje dijeljenog međuspremnika.
Poboljšani način rada sesije radi odmah nakon instalacije Windows u Hyper-V-u odmah nakon instalacije. S gostima na Linux Morate instalirati RDP poslužitelj koji podržava vsock (poseban virtualni mrežni adresni prostor u Linux, dizajniran za komunikaciju s hipervizorom). Ako za Ubuntu u aplikaciji VMCreate koja dolazi s Hyper-V-om na desktop izdanjima Windows, postoji posebno pripremljeni predložak virtualnog stroja u kojem RDP poslužitelj radi s vsockom već predinstaliran, onda je kod ostalih distribucija sve manje jasno – npr. autor Uspjeli smo omogućiti ESM u Fedori. Ovdje također aktiviramo Enhanced Session Mode za virtualni stroj Arch. Linux.
Instaliranje integracijskih usluga
Ovdje je sve više-manje jednostavno, samo trebamo instalirati paket hyperv iz repozitorija zajednice:
% sudo pacman -S hypervOmogući VSS servise, razmjenu i datoteke:
% for i in {vss,fcopy,kvp}; do sudo systemctl enable hv_${i}_daemon.service; doneXRDP instalacija
spremište pruža skripte na GitHubu koje automatiziraju proces instaliranja i konfiguriranja XRDP-a za Arch Linux и UbuntuInstalirajmo Git, ako već nije instaliran, zajedno s kompajlerom i ostalim softverom za ručnu izgradnju, a zatim klonirajmo repozitorij:
% sudo pacman -S git base-devel
% git clone https://github.com/microsoft/linux-vm-tools.git
% cd linux-vm-tools/archU vrijeme pisanja ovog teksta, najnovije izdanje XRDP-a, koje je instalirano skriptom makepkg.shpredloženo u repozitoriju je 0.9.11, vsock://-adrese, tako da morate ručno instalirati XRDP iz Gita i Xorg upravljački program za njega iz AUR-a. Zakrpa za XRDP ponuđena u AUR-u također je malo zastarjela, pa ćete morati ručno urediti PKGBUILD i zakrpu.
Mi kloniramo repozitorije s PKGBUILD-ovima iz AUR-a (obično je ovaj postupak, zajedno s asemblerom, automatiziran programima poput , ali autor je cijeli ovaj postupak napravio na čistom sustavu):
% git clone https://aur.archlinux.org/xrdp-devel-git.git
% git clone https://aur.archlinux.org/xorgxrdp-devel-git.gitNajprije instalirajmo sam XRDP. Otvorimo datoteku PKGBUILD bilo koji uređivač teksta.
Uredimo parametre izgradnje. PKGBUILD za izgradnju XRDP-a iz Gita ne uključuje podršku za vsock u izgradnji, pa je omogućimo 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
}U zakrpi arch-config.diff, vladajuće jedinice i XRDP skripte za pokretanje pod putanjama datoteka korištenim u Archu Linux, sadrži zakrpu za skriptu instfiles/xrdp.sh, koji je u vrijeme pisanja iz XRDP distribucije, tako da će se zakrpa morati urediti ručno:
[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 -0600Izgradite i instalirajte paket s naredbom % makepkg --skipchecksums -si (ključ --skipchecksums potreban je za onemogućavanje provjere kontrolnog zbroja izvornih datoteka, jer smo ih uredili ručno).
Idemo u imenik xorgxrdp-devel-git, nakon čega jednostavno gradimo paket naredbom % makepkg -si.
Idemo u imenik linux-vm-tools/arch i pokrenite skriptu install-config.sh, koji postavlja XRDP, PolicyKit i PAM postavke:
% sudo ./install-config.shSkripta instalira staru postavku use_vsock, koji se zanemaruje od verzije 0.9.11, pa uredimo konfiguracijsku datoteku /etc/xrdp/xrdp.ini ručno:
; 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_nodelayDodaj u datoteku ~/.xinitrc pokretanje vašeg željenog upravitelja prozora/desktop okruženja, koje će se izvršiti kada se pokrene X poslužitelj:
% echo "exec i3" > ~/.xinitrcIsključimo virtualni stroj. Omogućite vsock prijenos za VM pokretanjem sljedeće naredbe u PowerShell-u kao administrator:
PS Admin > Set-VM -VMName НАЗВАНИЕ_МАШИНЫ -EnhancedSessionTransportType HvSocketPonovno uključimo virtualni stroj.
veza
Čim se XRDP usluga pokrene nakon pokretanja sustava, aplikacija vmconnect će to utvrditi i stavka izbornika će postati dostupna. Pogled -> Poboljšana sesija. Kada odaberete ovu stavku, od nas će se tražiti da postavimo razlučivost zaslona, a na kartici Lokalni resursi u dijaloškom okviru koji se otvori možete odabrati uređaje proslijeđene unutar RDP sesije.


Povežimo se. Vidjet ćemo XRDP prozor za prijavu:

Unesite svoje korisničko ime i lozinku.
Koristiti
Dobit od ovih manipulacija je primjetna: RDP sesija radi puno bolje nego kada radite s virtualnim zaslonom bez Enhanced Session. Diskovi proslijeđeni unutar VM-a putem RDP-a dostupni su u direktoriju ${HOME}/shared-drives:

Međuspremnik radi dobro. Ne možete ubaciti pisače unutra, ovo ne samo da nije podržano, već također . Zvuk također ne radi, ali autoru nije trebao. Kako biste snimili tipkovničke prečace poput Alt + Tab, morate proširiti vmconnect na cijeli zaslon.
Ako iz bilo kojeg razloga želite koristiti ugrađenu aplikaciju vmconnect umjesto Windows RDP klijent ili, na primjer, povezivanje s ovim računalom s drugog računala, tada ćete morati promijeniti datoteku /etc/xrdp/xrdp.ini port na tcp://:3389. Ako je virtualni stroj spojen na zadani prekidač i prima mrežne postavke putem DHCP-a, tada se na njega možete povezati s glavnog računala na название_машины.mshome.net. Na TTY se možete prijaviti samo iz aplikacije vmconnect isključivanjem poboljšanog načina rada.
Korišteni izvori:
- Izvješća o greškama na GitHubu: ,
Izvor: www.habr.com
