Iespējojiet uzlaboto sesijas režīmu Arch Linux viesiem programmā Hyper-V

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:

% sudo pacman -S git base-devel
% git clone https://github.com/microsoft/linux-vm-tools.git
% cd linux-vm-tools/arch

Šī raksta rakstīšanas laikā jaunākais XRDP laidiens, ko instalē skripts makepkg.shrepozitorijā ieteiktais ir 0.9.11, kurā parsēšana ir pārtraukta vsock://-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ā):

% git clone https://aur.archlinux.org/xrdp-devel-git.git
% git clone https://aur.archlinux.org/xorgxrdp-devel-git.git

Vispirms instalēsim pašu XRDP. Atvērsim failu PKGBUILD jebkurš teksta redaktors.

Rediģēsim būves parametrus. PKGBUILD XRDP veidošanai no Git neietver vsock atbalstu, veidojot, tāpēc iespējosim to paši:

 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
 }

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:

  [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

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:

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

Atkal ieslēdzam virtuālo mašīnu.

Pieslēgums

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.

Iespējojiet uzlaboto sesijas režīmu Arch Linux viesiem programmā Hyper-V
Iespējojiet uzlaboto sesijas režīmu Arch Linux viesiem programmā Hyper-V

Savienojamies. Mēs redzēsim XRDP pieteikšanās logu:

Iespējojiet uzlaboto sesijas režīmu Arch Linux viesiem programmā Hyper-V

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:

Iespējojiet uzlaboto sesijas režīmu Arch Linux viesiem programmā Hyper-V

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.ini port 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.

Izmantotie avoti:

  1. Hyper-V — Arch Wiki
  2. Kļūdu ziņojumi vietnē GitHub: 1, 2

Avots: www.habr.com

Pievieno komentāru