Täiustatud seansirežiimi lubamine Archi jaoks Linux-külalised Hyper-V-s

Täiustatud seansirežiimi lubamine Archi jaoks Linux-külalised Hyper-V-s

Virtuaalsete masinate kasutamine Linux Hyper-V-s on kohe alguses veidi ebamugavam kogemus kui külalisrežiimis. Windows-masinad. Selle põhjuseks on see, et Hyper-V ei olnud algselt mõeldud töölaua jaoks; te ei saa lihtsalt installida Guest Additions paketti ja saada toimivat graafikakiirendust, lõikelauda, ​​jagatud katalooge ja muid eeliseid, nagu VirtualBoxiga.

Hyper-V ise pakub mitu integratsiooniteenust - seega saavad külalised kasutada hosti varikoopiateenust (VSS), külalised saavad saata väljalülitussignaali, külalised saavad sünkroonida süsteemiaega virtualiseerimishostiga, faile saab hostist virtuaalmasinaga vahetada (Copy-VMFile PowerShellis). Mõnede külalisoperatsioonisüsteemide puhul, mis muidugi hõlmavad Windows, virtuaalmasina ühenduse rakenduses (vmconnect.exe) Saadaval on täiustatud seansirežiim, mis töötab RDP-protokolli kaudu ja võimaldab kettaseadmeid ja printereid virtuaalmasinasse edastada, samuti kasutada jagatud lõikepuhvrit.

Täiustatud seansirežiim töötab kohe karbist võttes Windows Hyper-V-s kohe pärast installimist. Külalistega Linux peate installima RDP-serveri, mis toetab vsocki (spetsiaalne virtuaalne võrgu aadressiruum Linux, mis on loodud hüperviisoriga suhtlemiseks). Kui Ubuntu VMCreate rakenduses, mis on Hyper-V-ga kaasas töölauaversioonides Windows, on olemas spetsiaalselt ettevalmistatud virtuaalmasina mall, milles RDP-server töötab vsockiga XRDP juba eelinstallitud, siis teiste distributsioonidega on see järjest vähem selge – näiteks autor see postitus Meil õnnestus Fedoras ESM lubada. Siin aktiveerime ka Archi virtuaalmasina jaoks täiustatud seansirežiimi. Linux.

Integratsiooniteenuste installimine

Siin on kõik enam-vähem lihtne, peame lihtsalt paketi installima hyperv kogukonna hoidlast:

% sudo pacman -S hyperv

Luba VSS-teenused, vaheta metaandmed ja failid:

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

XRDP installimine

hoidla linux-vm-tööriistad pakub GitHubis skripte, mis automatiseerivad XRDP Archi installimise ja seadistamise protsessi Linux и UbuntuPaigaldame Giti, kui see pole veel installitud, koos kompilaatori ja muu käsitsi ehitamiseks mõeldud tarkvaraga ning seejärel kloonime repositooriumi:

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

Selle kirjutamise ajal XRDP uusim väljalase, mille skript installib makepkg.shhoidlas pakutud on 0.9.11, milles sõelumine on katkenud vsock://-aadressid, nii et peate installima XRDP Gitist ja Xorgi draiveri AUR-ist käsitsi. AUR-is pakutav XRDP plaaster on samuti veidi vananenud, nii et peate PKGBUILD-i ja plaastrit käsitsi redigeerima.

Kloonime hoidlad AUR-ist pärit PKGBUILD-idega (tavaliselt automatiseerivad selle protseduuri koos kokkupanekuga sellised programmid nagu jess, kuid autor tegi kogu selle protseduuri puhtas süsteemis):

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

Installime esmalt XRDP enda. Avame faili PKGBUILD mis tahes tekstiredaktor.

Redigeerime ehitusparameetreid. Gitist XRDP ehitamiseks mõeldud PKGBUILD ei sisalda ehitamisel vsocki tuge, seega lubame selle ise:

 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
 }

Plaastris arch-config.diff, valitsevad üksused ja XRDP käivitusskriptid Archis kasutatavate failiteede all Linux, sisaldab skripti parandust instfiles/xrdp.sh, mis kirjutamise ajal eemaldati XRDP distributsioonist, seega tuleb plaastrit käsitsi redigeerida:

  [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

Ehitage ja installige pakett käsuga % makepkg --skipchecksums -si (võti --skipchecksums on vajalik lähtefailide kontrollsumma kontrollimise keelamiseks, kuna muutsime neid käsitsi).

Läheme kataloogi xorgxrdp-devel-git, mille järel ehitame paketi lihtsalt käsuga % makepkg -si.

Läheme kataloogi linux-vm-tools/arch ja käivitage skript install-config.sh, mis määrab XRDP, PolicyKiti ja PAM-i sätted:

% sudo ./install-config.sh

Skript installib pärandseade use_vsock, mida eiratakse alates versioonist 0.9.11, nii et redigeerime konfiguratsioonifaili /etc/xrdp/xrdp.ini käsitsi:

 ;   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

Lisa faili ~/.xinitrc eelistatud aknahalduri/töölauakeskkonna käivitamine, mis käivitatakse X-serveri käivitamisel:

% echo "exec i3" > ~/.xinitrc

Lülitame virtuaalmasina välja. Lubage VM-i jaoks vsocki transport, käivitades PowerShellis administraatorina järgmise käsu:

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

Lülitame virtuaalmasina uuesti sisse.

Подключение

Niipea, kui XRDP-teenus käivitub pärast süsteemi käivitumist, teeb vmconnect rakendus selle kindlaks ja menüüelement muutub kättesaadavaks. vaade -> Täiustatud seanss. Kui valite selle üksuse, palutakse meil määrata ekraani eraldusvõime ja vahekaardil Kohalikud ressursid avanevas dialoogiaknas saate valida RDP seansi sees edastatud seadmed.

Täiustatud seansirežiimi lubamine Archi jaoks Linux-külalised Hyper-V-s
Täiustatud seansirežiimi lubamine Archi jaoks Linux-külalised Hyper-V-s

Ühendame. Näeme XRDP sisselogimisakent:

Täiustatud seansirežiimi lubamine Archi jaoks Linux-külalised Hyper-V-s

Sisesta oma kasutajanimi ja parool.

Kasutama

Nendest manipulatsioonidest saadav kasum on märgatav: RDP seanss töötab palju tundlikumalt kui töötades virtuaalse kuvaga ilma täiustatud seansita. VM-is RDP kaudu edastatud kettad on kataloogis saadaval ${HOME}/shared-drives:

Täiustatud seansirežiimi lubamine Archi jaoks Linux-külalised Hyper-V-s

Lõikelaud töötab hästi. Te ei saa printereid sisse visata, seda mitte ainult ei toetata, vaid ka katkestab ketta edastamise. Heli ka ei tööta, aga autoril polnud seda vaja. Klaviatuuri otseteede (nt Alt + Tab) jäädvustamiseks peate laiendama vmconnecti täisekraanile.

Kui mingil põhjusel soovite kasutada sisseehitatud vmconnecti rakendust rakenduse asemel Windows RDP klient või näiteks ühenduse loomine selle masinaga teisest masinast, peate faili muutma /etc/xrdp/xrdp.ini port edasi tcp://:3389. Kui virtuaalmasin on ühendatud vaikelülitiga ja võtab võrgusätted vastu DHCP kaudu, saate sellega ühenduse luua hostist aadressil название_машины.mshome.net. Saate TTY-sse sisse logida ainult rakendusest vmconnect, lülitades välja täiustatud režiimi.

Kasutatud allikad:

  1. Hyper-V Arch Wiki
  2. Veaaruanded GitHubis: 1, 2

Allikas: www.habr.com

Ostke DDoS-kaitsega saitide jaoks usaldusväärne hostimine, VPS VDS-serverid 🔥 Osta usaldusväärne veebimajutus DDoS-kaitsega, VPS VDS serverid | ProHoster