Ieslēdzam Enhanced Session Mode Arch Linux viesiem Hyper-V

Ieslēdzam Enhanced Session Mode Arch Linux viesiem Hyper-V

LietoÅ”ana virtuālajām maŔīnām Linux sistēmā Hyper-V no paÅ”a sākuma ir nedaudz mazāk komfortabla nekā ar viesējo Windows maŔīnu. Tas ir tāpēc, ka Hyper-V atklāti netika domāts darbam ar galddatoriem; nav iespējams vienkārÅ”i instalēt viesējo papildinājumu paketi un iegÅ«t funkcionālu grafisko paātrinājumu, starpliktuvi, koplietojamas direktorijas un citas dzÄ«ves prieks, kā to var izdarÄ«t VirtualBox.

Hyper-V pats piedāvā dažus integrācijas pakalpojumus — tādējādi viesi var izmantot hosta mirringa pakalpojumu (VSS), viesiem var nosÅ«tÄ«t izslēgÅ”anas signālu, viesi var sinhronizēt sistēmas laiku ar virtualizācijas hostu, un no hosta ir iespējama failu apmaiņa ar virtuālo maŔīnu (Copy-VMFile PowerShellā). Dažām viesu operētājsistēmām, tostarp Windows, Virtual Machine Connection programmā (vmconnect.exe) ir pieejams uzlabotā sesijas režīms, kas darbojas, izmantojot RDP protokolu un ļauj piekļūt diska ierÄ«cēm un printeriem virtuālajā maŔīnā, kā arÄ« izmantot kopÄ«gu starpliktuvi.

Uzlabotā sesijas režīma funkcionalitāte jau no paÅ”a sākuma darbojas Windows operētājsistēmā Hyper-V tÅ«lÄ«t pēc instalēŔanas. Ar Linux viesiem ir jāinstalē RDP serveris, kas atbalsta vsock (speciāls virtuālais tÄ«kla adresessvars Linux, kas paredzēts saziņai ar hipervizoru). Lai gan Ubuntu gadÄ«jumā Hyper-V lÄ«dzās pāriem Windows galddatoriem ir specializēts virtuālās maŔīnas veidne, kurā darbojas RDP serveris ar vsock atbalstu XRDP jau ir iepriekÅ” instalēts, ar citiem izplatÄ«jumiem viss ir mazāk skaidrs — autors Ŕī raksta ieguva iespēju aktivizēt ESM Fedora. Å ajā posmā mēs aktivizēsim uzlaboto sesijas režīmu virtuālajai maŔīnai ar Arch Linux. Integrācijas pakalpojumu instalēŔana

Šeit viss ir vairāk vai mazāk vienkārŔi, mums pietiek ar pakotnes

hyperv instalēŔanu no community repozitorija: % sudo pacman -S hyperv

Ieslēgsim VSS, apmaiņas

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

XRDP instalēŔana

linux-vm-tools

repozitorija GitHub piedāvā skriptus, kas automatizē XRDP instalācijas un konfigurācijas procesu Arch Linux un Ubuntu sistēmās. Instalēsim Git, ja tas vēl nav instalēts, kopā ar kompilatoru un citu programmatÅ«ru roku bÅ«vēm, pēc tam klonēsim repozitoriju: на GitHub ŠæŃ€ŠµŠ“Š¾ŃŃ‚Š°Š²Š»ŃŠµŃ‚ скрипты, Š°Š²Ń‚Š¾Š¼Š°Ń‚ŠøŠ·ŠøŃ€ŃƒŃŽŃ‰ŠøŠµ процесс ŃƒŃŃ‚Š°Š½Š¾Š²ŠŗŠø Šø настройки XRDP, Š“Š»Ń Arch Linux Šø Ubuntu. Установим Git, если он еще не ŃƒŃŃ‚Š°Š½Š¾Š²Š»ŠµŠ½, вместе с ŠŗŠ¾Š¼ŠæŠøŠ»ŃŃ‚Š¾Ń€Š¾Š¼ Šø Š“Ń€ŃƒŠ³ŠøŠ¼ софтом Š“Š»Ń Ń€ŃƒŃ‡Š½Ń‹Ń… сборок, после чего ŃŠŗŠ»Š¾Š½ŠøŃ€ŃƒŠµŠ¼ репозиторий:

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

Rakstā minētajā brÄ«dÄ« jaunākais XRDP izdevums, ko instalē skripts makepkg.sh, kas piedāvāts krātuvē, ir 0.9.11, kurā ir salauzta parsēŔana vsock://-adreses, tāpēc XRDP bÅ«s jāinstalē no Git, un Xorg draiveris no AUR bÅ«s jāinstalē manuāli. AUR piedāvātais XRDP patches ir arÄ« nedaudz novecojis, tāpēc PKGBUILD un patches jārediģē manuāli.

Mēs noklonēsim krātuvju ar PKGBUILD no AUR (parasti Å”o procedÅ«ru kopā ar bÅ«vniecÄ«bu automatizē programmas, piemēram, yay, bet autors paveica visu Å”o procedÅ«ru uz tÄ«ras sistēmas):

% 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 ar jebkuru teksta redaktoru.

Rediģēsim bÅ«vniecÄ«bas parametrus. PKGBUILD XRDP bÅ«vniecÄ«bai no Git neietver atbalstu vsock, tāpēc mēs to iekļausim 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
 }

Patcher arch-config.diff, kas labo ierakstus un palaiÅ”anas skriptus XRDP ceļiem, kas tiek izmantoti Arch Linux, ietver arÄ« patch skriptam instfiles/xrdp.sh, kurÅ” raksta brÄ«dÄ« tika izņemts no XRDP piegādes, tāpēc patch 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

Saliksim un instalēsim pakotni ar komandu % makepkg --skipchecksums -si (atzÄ«me --skipchecksums ir nepiecieÅ”ama, lai atslēgtu avotu failu kontroli summu pārbaudi, jo mēs tos manuāli rediģējām).

Pāriesim uz direktoriju xorgxrdp-devel-git, pēc tam vienkārÅ”i saliksim pakotni ar komandu % makepkg -si.

Pāriesim uz direktoriju linux-vm-tools/arch un palaidīsim skriptu install-config.sh, kas uzstāda XRDP, PolicyKit un PAM iestatījumus:

% sudo ./install-config.sh

Skripts uzstāda novecojuÅ”u konfigurāciju use_vsock, kas tiek ignorēts kopÅ” versijas 0.9.11, tāpēc rediģēsim konfigurācijas failu /etc/xrdp/xrdp.ini rokasgrāmatā:

 ;   port=vsock://:
-port=3389
+port=vsock://-1:3389

 ; augstāk minētajam 'port' jābūt saistītam ar vsock, nevis tcp
 ; izmantot tikai ar skaitli augstāk minētajā portā
 ; dodiet priekŔroku izmantot vsock://: augstāk
-use_vsock=true
+;use_vsock=true

 ; noregulēt, vai klausītāju ligzda izmanto socket opciju tcp_nodelay

Pievienosim failam ~/.xinitrc izsist savu izvēlēto loga pārvaldnieku / darbvirsmas vidi, kas tiks palaista, kad sāksies X-serveris:

% echo "exec i3" > ~/.xinitrc

Izslēgsim virtuālo maŔīnu. Aktivizēsim vsock transportu virtuālajai maŔīnai, izpildot sekojoÅ”o komandu PowerShell kā administratoram:

PS Admin > Set-VM -VMName MAÅ ÄŖNAS_VĀRDS -EnhancedSessionTransportType HvSocket

Atkal ieslēgsim virtuālo maŔīnu.

Savienojums

Kad sistēma tiks palaista, XRDP serviss automātiski to noteiks, un izvēlnē bÅ«s pieejama opcija Skats -> Uzlabotā sesija. Izvēloties Å”o opciju, mums tiks piedāvāts iestatÄ«t ekrāna izŔķirtspēju, un cilnē Vietējie resursi atvērtajā dialogā varēs izvēlēties iekārtas, kuras tiek nodotas RDP sesijai.

Ieslēdzam Enhanced Session Mode Arch Linux viesiem Hyper-V
Ieslēdzam Enhanced Session Mode Arch Linux viesiem Hyper-V

Pieslēgsimies. Redzēsim XRDP pieteikÅ”anās logu:

Ieslēdzam Enhanced Session Mode Arch Linux viesiem Hyper-V

Ievadīsim savu lietotājvārdu un paroli.

IzmantoŔana

Šo manipulāciju ieguvums ir acīmredzams: RDP sesija darbojas daudz ātrāk nekā ar virtuālo displeju bez Uzlabotās sesijas. RDP sesijai piesaistītie diski ir pieejami direktorijā ${HOME}/shared-drives:

Ieslēdzam Enhanced Session Mode Arch Linux viesiem Hyper-V

Starpliktuve darbojas normāli. Printerus nevar nodot iekŔā, tas ne tikai nav atbalstÄ«ts, bet arÄ« bojā disku pārsÅ«tīŔanu. ArÄ« skaņa nedarbojas, bet autoram tas nebija nepiecieÅ”ams. Lai tiktu izsistÄ«ti taustiņu kombinācijas, piemēram, Alt+Tab, vmconnect jāizplet uz visu ekrānu.

Ja kādu iemeslu dēļ ir vēlme izmantot Windows iebÅ«vēto RDP klientu vai, piemēram, pieslēgties Å”ai maŔīnai no citas maŔīnas, tad bÅ«s jānomaina failā /etc/xrdp/xrdp.ini port uz tcp://:3389. Ja virtuālā maŔīna ir pievienota Default Switch un saņem tÄ«kla iestatÄ«jumus pa DHCP, tad piekļūt tai no hosta var pa adresi maŔīnas_vārds.mshome.net. Ienākt TTY var tikai no vmconnect lietotnes, izslēdzot Uzlaboto režīmu.

Izmantotie avoti:

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

Avots: habr.com

Iegādājieties uzticamu tÄ«mekļa hostingu ar DDoS aizsardzÄ«bu, VPS VDS serveriem šŸ”„ Iegādājieties uzticamu tÄ«mekļa hostingu ar DDoS aizsardzÄ«bu, VPS VDS serveriem | ProHoster