ProHoster > Blog > Uprava > Omogoči izboljšan način seje za goste Arch Linux v Hyper-V
Omogoči izboljšan način seje za goste Arch Linux v Hyper-V
Uporaba virtualnih strojev Linux v Hyper-V takoj po namestitvi je nekoliko manj udobna izkušnja kot uporaba gostujočih strojev Windows. Razlog za to je, da Hyper-V prvotno ni bil namenjen za namizno uporabo; ne morete samo namestiti paketa gostujočih dodatkov in pridobiti funkcionalnega grafičnega pospeševanja, odložišča, imenikov v skupni rabi in drugih radosti življenja, kot se dogaja v VirtualBoxu.
Hyper-V sam zagotavlja več integracijskih storitev - torej lahko gostje uporabljajo storitev senčnega kopiranja gostitelja (VSS), gostje lahko pošljejo signal za zaustavitev, gostje lahko sinhronizirajo sistemski čas z gostiteljem virtualizacije, datoteke se lahko izmenjujejo iz gostitelja z virtualnim strojem (Copy-VMFile v lupini PowerShell). Za nekatere gostujoče operacijske sisteme, vključno seveda z Windows, v aplikaciji Virtual Machine Connection (vmconnect.exe) Na voljo je izboljšan način seje, ki deluje prek protokola RDP in vam omogoča prenos diskovnih naprav in tiskalnikov v virtualni stroj ter uporabo skupnega odložišča.
Enhanced Session Mode deluje takoj po namestitvi v sistemu Windows v Hyper-V. Pri gostih v Linuxu morate namestiti strežnik RDP, ki podpira vsock (poseben navidezni omrežni naslovni prostor v Linuxu, zasnovan za komunikacijo s hipervizorjem). Če je za Ubuntu v aplikaciji VMCreate, ki je priložena Hyper-V v namiznih različicah sistema Windows, obstaja posebna pripravljena predloga navideznega stroja, v kateri strežnik RDP deluje z vsock XRDP že prednameščeno, potem je pri drugih distribucijah vedno manj jasno - na primer avtor ta objava Uspelo mi je omogočiti ESM v Fedori. Tukaj bomo aktivirali izboljšani način seje za virtualni stroj Arch Linux.
Namestitev integracijskih storitev
Tukaj je vse bolj ali manj preprosto, le namestiti moramo paket hyperv iz repozitorija skupnosti:
% sudo pacman -S hyperv
Omogočimo storitve VSS in izmenjave metapodatki in datoteke:
% for i in {vss,fcopy,kvp}; do sudo systemctl enable hv_${i}_daemon.service; done
Namestitev XRDP
repozitorij linux-vm-orodja na GitHub ponuja skripte, ki avtomatizirajo postopek namestitve in konfiguracije XRDP za Arch Linux in Ubuntu. Namestimo Git, če še ni nameščen, skupaj s prevajalnikom in drugo programsko opremo za ročne gradnje, nato pa kloniramo repozitorij:
V času pisanja tega članka je najnovejša izdaja XRDP, ki jo namesti skript makepkg.shpredlagana v skladišču je 0.9.11, pri katerem je razčlenjevanje pokvarjenovsock://-naslove, zato boste morali ročno namestiti XRDP iz Gita in gonilnik Xorg zanj iz AUR. Tudi popravek XRDP, ki je na voljo v AUR, je nekoliko zastarel, zato boste morali PKGBUILD in popravek urediti ročno.
Klonirajmo repozitorije s PKGBUILD-ji iz AUR (običajno ta postopek, skupaj z gradnjo, avtomatizirajo programi, kot je Juhu, vendar je avtor naredil celoten postopek na čistem sistemu):
V obližu arch-config.diff, ki upravlja enote in skripte za zagon XRDP pod potmi datotek, ki se uporabljajo v Arch Linuxu, vsebuje tudi popravek za skript instfiles/xrdp.sh, ki v času pisanja je bil odstranjen iz distribucije XRDP, zato bo treba popravek urediti ročno:
Prevedimo in namestimo paket z ukazom % makepkg --skipchecksums -si (ključ --skipchecksums potrebno za onemogočanje preverjanja kontrolne vsote izvornih datotek, ker smo jih uredili ročno).
Pojdimo v imenik xorgxrdp-devel-git, nato pa z ukazom preprosto sestavimo paket % makepkg -si.
Pojdimo v imenik linux-vm-tools/arch in zaženite skript install-config.sh, ki nastavi nastavitve XRDP, PolicyKit in PAM:
% sudo ./install-config.sh
Skript namesti podedovano nastavitev use_vsock, ki je bil prezrt od različice 0.9.11, zato uredimo konfiguracijsko datoteko /etc/xrdp/xrdp.ini roč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 v datoteko ~/.xinitrc zagon vašega želenega upravitelja oken/namiznega okolja, ki se bo izvedel, ko se zažene strežnik X:
% echo "exec i3" > ~/.xinitrc
Izklopimo virtualni stroj. Prenos vsock za navidezni stroj aktiviramo tako, da kot skrbnik zaženemo naslednji ukaz v lupini PowerShell:
Takoj ko se storitev XRDP zažene po zagonu sistema, bo aplikacija vmconnect to zaznala in element bo na voljo v meniju Poglej -> Izboljšana seja. Ko izberemo ta element, bomo pozvani, da nastavimo ločljivost zaslona in na zavihku Lokalni viri V pogovornem oknu, ki se odpre, lahko izberete naprave, ki jih želite posredovati v sejo RDP.
Povežimo se. Videli bomo prijavno okno XRDP:
Vnesite svoje uporabniško ime in geslo.
Uporaba
Korist teh manipulacij je opazna: seja RDP deluje veliko bolj odzivno kot pri delu z virtualnim zaslonom brez izboljšane seje. Diski, spuščeni v VM prek RDP, so na voljo v imeniku ${HOME}/shared-drives:
Odložišče deluje dobro. Tiskalnikov ne morete posredovati notri; to ne samo, da ni podprto, ampak tudi prekine posredovanje diska. Tudi zvok ne deluje, vendar avtor tega ni potreboval. Če želite zajeti bližnjice na tipkovnici, kot je Alt+Tab, morate vmconnect razširiti na celoten zaslon.
Če želite iz nekega razloga uporabiti odjemalca RDP, vgrajenega v Windows, namesto aplikacije vmconnect ali se na primer povezati s tem računalnikom iz drugega računalnika, boste morali spremeniti datoteko /etc/xrdp/xrdp.iniport o tcp://:3389. Če je virtualni stroj povezan s privzetim stikalom in prejema omrežne nastavitve prek DHCP, se lahko nanj povežete iz gostitelja na название_машины.mshome.net. V TTY se lahko prijavite samo iz aplikacije vmconnect, če izklopite izboljšani način.