Omogućavanje poboljšanog načina sesije za Arch Linux-gosti u Hyper-V-u

Omogućavanje poboljšanog načina sesije za Arch Linux-gosti u Hyper-V-u

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 usluge višestruke integracije - 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 XRPD već predinstaliran, onda je kod ostalih distribucija sve manje jasno – npr. autor ovaj post 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 hyperv

Omogući VSS servise, razmjenu metapodaci i datoteke:

% for i in {vss,fcopy,kvp}; do sudo systemctl enable hv_${i}_daemon.service; done

XRDP instalacija

spremište linux-vm-alati 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/arch

U vrijeme pisanja ovog teksta, najnovije izdanje XRDP-a, koje je instalirano skriptom makepkg.shpredloženo u repozitoriju je 0.9.11, u kojem je raščlamba prekinuta 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 yay, 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.git

Najprije 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 je uklonjen 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 -0600

Izgradite 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.sh

Skripta 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_nodelay

Dodaj 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" > ~/.xinitrc

Isključimo virtualni stroj. Omogućite vsock prijenos za VM pokretanjem sljedeće naredbe u PowerShell-u kao administrator:

PS Admin > Set-VM -VMName НАЗВАНИЕ_МАШИНЫ -EnhancedSessionTransportType HvSocket

Ponovno 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.

Omogućavanje poboljšanog načina sesije za Arch Linux-gosti u Hyper-V-u
Omogućavanje poboljšanog načina sesije za Arch Linux-gosti u Hyper-V-u

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

Omogućavanje poboljšanog načina sesije za Arch Linux-gosti u Hyper-V-u

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:

Omogućavanje poboljšanog načina sesije za Arch Linux-gosti u Hyper-V-u

Međuspremnik radi dobro. Ne možete ubaciti pisače unutra, ovo ne samo da nije podržano, već također prekida prosljeđivanje diska. 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:

  1. Hyper-V Arch Wiki
  2. Izvješća o greškama na GitHubu: 1, 2

Izvor: www.habr.com

Kupite pouzdan hosting za stranice s DDoS zaštitom, VPS VDS poslužiteljima 🔥 Kupite pouzdan web hosting sa DDoS zaštitom, VPS VDS servere | ProHoster