Iespējojiet uzlaboto sesijas režīmu Arch Linux viesiem programmā Hyper-V
Linux virtuālo mašīnu izmantošana Hyper-V ārpus kastes ir nedaudz mazāk ērta nekā Windows viesaparātu izmantošana. Iemesls tam ir tas, ka Hyper-V sākotnēji nebija paredzēts lietošanai galddatorā; Jūs nevarat vienkārši instalēt viesu papildinājumu paketi un iegūt funkcionālu grafikas paātrinājumu, starpliktuvi, koplietotus direktorijus un citus dzīves priekus, kā tas notiek VirtualBox.
Pats Hyper-V nodrošina vairāki integrācijas pakalpojumi - tātad viesi var izmantot saimniekdatora ēnu kopēšanas pakalpojumu (VSS), viesi var nosūtīt izslēgšanas signālu, viesi var sinhronizēt sistēmas laiku ar virtualizācijas resursdatoru, var apmainīties ar failiem no resursdatora ar virtuālo mašīnu (Copy-VMFile programmā PowerShell). Dažām viesu operētājsistēmām, tostarp, protams, Windows, lietojumprogrammā Virtual Machine Connection (vmconnect.exe) Ir pieejams uzlabotais sesijas režīms, kas darbojas, izmantojot RDP protokolu un ļauj pārsūtīt diska ierīces un printerus uz virtuālo mašīnu, kā arī izmantot koplietojamo starpliktuvi.
Uzlabotais sesijas režīms darbojas uzreiz pēc instalēšanas operētājsistēmā Windows Hyper-V. Viesiem operētājsistēmā Linux ir jāinstalē RDP serveris, kas atbalsta vsock (īpaša virtuālā tīkla adrešu telpa operētājsistēmā Linux, kas paredzēta saziņai ar hipervizoru). Ja Ubuntu lietojumprogrammā VMCreate, kas nāk ar Hyper-V Windows darbvirsmas izdevumos, ir īpaša sagatavota virtuālās mašīnas veidne, kurā RDP serveris strādā ar vsock. XRDP jau iepriekš instalēts, tad ar citiem izplatījumiem kļūst arvien mazāk skaidrs - piemēram, autors šo ziņu Man izdevās iespējot ESM programmā Fedora. Šeit mēs aktivizēsim uzlaboto sesijas režīmu Arch Linux virtuālajai mašīnai.
Integrācijas pakalpojumu instalēšana
Šeit viss ir vairāk vai mazāk vienkāršs, mums tikai jāinstalē pakotne hyperv no kopienas krātuves:
% sudo pacman -S hyperv
Iespējosim VSS un apmaiņas pakalpojumus metadati un faili:
% for i in {vss,fcopy,kvp}; do sudo systemctl enable hv_${i}_daemon.service; done
XRDP instalēšana
krātuve linux-vm-tools GitHub nodrošina skriptus, kas automatizē XRDP instalēšanas un konfigurēšanas procesu Arch Linux un Ubuntu. Instalēsim Git, ja tas vēl nav instalēts, kopā ar kompilatoru un citu programmatūru manuālai veidošanai, un pēc tam klonēsim repozitoriju:
Šī raksta rakstīšanas laikā jaunākais XRDP laidiens, ko instalē skripts makepkg.shrepozitorijā ieteiktais ir 0.9.11, kurā parsēšana ir pārtrauktavsock://-adreses, tāpēc jums būs manuāli jāinstalē XRDP no Git un Xorg draiveris tam no AUR. AUR piedāvātais XRDP ielāps arī ir nedaudz novecojis, tāpēc jums būs jārediģē PKGBUILD un ielāps manuāli.
Klonēsim krātuves ar PKGBUILD no AUR (parasti šo procedūru kopā ar būvēšanu automatizē tādas programmas kā Yay, bet autors visu šo procedūru veica tīrā sistēmā):
Plāksterā arch-config.diff, kas pārvalda vienības un XRDP palaišanas skriptus zem Arch Linux izmantotajiem failu ceļiem, satur arī skripta ielāpu. instfiles/xrdp.sh, kas rakstīšanas laikā tika noņemts no XRDP izplatīšanas, tāpēc ielāps būs jārediģē manuāli:
Apkoposim un instalēsim pakotni ar komandu % makepkg --skipchecksums -si (atslēga --skipchecksums nepieciešams, lai atspējotu avota failu kontrolsummas verifikāciju, jo mēs tos rediģējām manuāli).
Dosimies uz direktoriju xorgxrdp-devel-git, pēc kura mēs vienkārši saliekam paketi ar komandu % makepkg -si.
Dosimies uz direktoriju linux-vm-tools/arch un palaist skriptu install-config.sh, kas nosaka XRDP, PolicyKit un PAM iestatījumus:
% sudo ./install-config.sh
Skripts instalē mantoto iestatījumu use_vsock, kas ir ignorēts kopš versijas 0.9.11, tāpēc rediģēsim konfigurācijas failu /etc/xrdp/xrdp.ini manuāli:
; 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
Pievienot failam ~/.xinitrc palaižot vēlamo logu pārvaldnieku/darbvirsmas vidi, kas tiks izpildīta, startējot X serveri:
% echo "exec i3" > ~/.xinitrc
Izslēgsim virtuālo mašīnu. Mēs aktivizējam vsock transportu virtuālajai mašīnai, palaižot šo komandu PowerShell kā administrators:
Tiklīdz XRDP pakalpojums sāk darboties pēc sistēmas palaišanas, lietojumprogramma vmconnect to noteiks un vienums būs pieejams izvēlnē Pilna -> Uzlabota sesija. Atlasot šo vienumu, mums tiks piedāvāts iestatīt ekrāna izšķirtspēju un cilnē Vietējie resursi Atvērtajā dialoglodziņā varat atlasīt ierīces, kuras pārsūtīt uz LAP sesiju.
Savienojamies. Mēs redzēsim XRDP pieteikšanās logu:
Ievadiet savu lietotājvārdu un paroli.
Izmantot
Ieguvums no šīm manipulācijām ir pamanāms: RDP sesija darbojas daudz atsaucīgāk nekā strādājot ar virtuālo displeju bez uzlabotās sesijas. Direktorijā ir pieejami diski, kas nokrituši virtuālajā mašīnā, izmantojot RDP ${HOME}/shared-drives:
Starpliktuve darbojas labi. Jūs nevarat pārsūtīt printerus iekšā; tas ne tikai netiek atbalstīts, bet arī pārtrauc diska pārsūtīšanu. Skaņa arī nedarbojas, bet autoram tas nebija vajadzīgs. Lai tvertu īsinājumtaustiņus, piemēram, Alt+Tab, ir jāpaplašina vmconnect uz pilnekrāna režīmu.
Ja kāda iemesla dēļ vēlaties vmconnect lietojumprogrammas vietā izmantot sistēmā Windows iebūvēto RDP klientu vai, piemēram, izveidot savienojumu ar šo mašīnu no citas mašīnas, fails būs jāmaina. /etc/xrdp/xrdp.iniport par tcp://:3389. Ja virtuālā mašīna ir savienota ar noklusējuma slēdzi un saņem tīkla iestatījumus, izmantojot DHCP, varat izveidot savienojumu ar to no resursdatora vietnē название_машины.mshome.net. TTY var pieteikties tikai no lietojumprogrammas vmconnect, izslēdzot uzlaboto režīmu.