Lülitame sisse Enhanced Session Mode Arch Linuxi külaliste jaoks Hyper-V-s

Lülitame sisse Enhanced Session Mode Arch Linuxi külaliste jaoks Hyper-V-s

Linuxi virtuaalmasinate kasutamine Hyper-V-s on algselt vähem mugav tegevus kui Windowsi külalismasinatega. Selle põhjuseks on see, et Hyper-V ei olnud algselt mõeldud lauaarvutite kasutamiseks; ei saa lihtsalt võtta, installida külaliste lisandeid ja saavutada korralikku graafilist kiirendust, lõikelauat, ühiseid kaustu ja muid elu võimalusi, nagu see toimub VirtualBoxis.

Hyper-V pakub ise mitmeid integreerimisteenuseid — nii saavad külalised kasutada hosti varukoopiate teenust (VSS), külalistele saab saata väljalülitussignaali, külalised saavad sünkroonida süsteemi kellaaega virtualiseerimishostiga, hostilt on võimalik failide vahetamine virtuaalmasinaga (Copy-VMFile PowerShellis). Teatud külalisoperatsioonisüsteemide, sealhulgas Windowsi, jaoks on virtuaalmasina ühendamise rakenduses (vmconnect.exe) saadaval Parendatud Seansi Režiim, mis töötab RDP-protokollil ja võimaldab suunata virtuaalmasinasse plaadiseadmeid ja printereid ning kasutada ühiseid lõikelauasid.

Parendatud Seansi Režiim töötab Windowsis Hyper-V-s kohe pärast installimist. Linuxi külalistega tuleb installida RDP-server, mis toetab vsocki (spetsiaalne virtuaalne võrgu aadressiruum Linuxis, mis on mõeldud hüperviisoriga suhtlemiseks). Kui Ubuntu jaoks on Hyper-V desktoppakkide kaasas olevas rakenduses VMCreate olemas spetsiaalne ettevalmistatud virtuaalmasina mall, kus töötab vsockiga RDP-server XRDP on juba eelnevalt installitud, siis teiste distributsioonidega on olukord vähem üheselt mõistetav — autori arvates seda postitust õnnestus ESM Fedora-s käivitada. Siin aktivoime Parendatud Seansi Režiimi Arch Linuxiga virtuaalmasinal.

Integreerimisteenuste installimine

Siin on kõik enam-vähem lihtne, piisab, kui installida pakett hyperv community-repositooriumist:

% sudo pacman -S hyperv

Lülitame sisse VSS-, andmete- ja failivahetusteenused: % for i in {vss,fcopy,kvp}; do sudo systemctl enable hv_${i}_daemon.service; done

XRDP installimine

linux-vm-tools

Repo GitHubis pakuvad skriptid, mis automatiseerivad XRDP installimise ja seadistamise protsessi Arch Linuxile ja Ubuntu-le. Installime Git, kui see pole veel installitud, koos kompilaatori ja muude käsitsi kogumiseks vajalike tarkvaradega, 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

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

Käesoleva artikli kirjutamise hetkel on kõige uuem XRDP versioon, mis installitakse skripti kaudu makepkg.sh, mis on pakkumisel hoidlas, 0.9.11, kus on rikutud parsimine vsock://-aadresside tõttu tuleb XRDP installida Git'i kaudu ja Xorg draiver sellele AUR-ist käsitsi. AUR-is pakutav XRDP patch on samuti veidi vananenud, seega tuleb PKGBUILD ja patch käsitsi redigeerida.

Kloonime AUR-st PKGBUILD-ide hoidlad (tavaliselt automatiseerivad selle protseduuri koos koostamisega programmid nagu yay, kuid autor tegi kogu selle protseduuri puhtal süsteemil):

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

Alustame XRDP ise installimisega. Avame faili PKGBUILD tühja tekstiredaktoriga.

Redigeerime koostamisparameetreid. PKGBUILD XRDP koostamiseks Gitist ei hõlma vsock tuge, seega lülitame selle ise sisse:

 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
 }

Patchis arch-config.diff, mis muudab XRDP ühikute ja skriptide teed Arch Linuxis kasutatavate failide jaoks, sisaldab ka skripti instfiles/xrdp.sh, mis kirjutamise hetkel oli kustutatud XRDP pakkumistest, seega peab patchi käsitsi redigeerima:

  [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

Kogume ja installige paket käsuga % makepkg --skipchecksums -si (võti --skipchecksums on vajalik algfailide kontrollsumma kontrollimise keelamiseks, kuna me redigeerisime neid käsitsi).

Liigume kausta xorgxrdp-devel-git, seejärel kogume paketi lihtsalt käsuga % makepkg -si.

Liigume kausta linux-vm-tools/arch ja käivitame skripti install-config.sh, mis installib XRDP, PolicyKit ja PAM seadistused:

% sudo ./install-config.sh

Skripts installib vananenud seadistuse use_vsock, mida versioonist 0.9.11 ignoreeritakse, seega redigeerime konfiguratsioonifaili /etc/xrdp/xrdp.ini käsitsi:

 ;   port=vsock://:
-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://: above
-use_vsock=true
+;use_vsock=true

 ; regulate if the listening socket use socket option tcp_nodelay

Lisame faili ~/ .xinitrc oma oma eelistatud aknahaldur / töölaua keskkond, mis käivitatakse X-serveri käivitamisel:

% echo "exec i3" > ~/ .xinitrc

Lülitame välja virtuaalmasina. Aktiveerime virtuaalmasina jaoks vsock transporti, käivitades järgmise käsu PowerShellis administraatori õigustes:

PS Admin > Set-VM -VMName MASINANIMI -EnhancedSessionTransportType HvSocket

Käivitame virtuaalmasina uuesti.

Ühendamine

Kui süsteem on käivitatud ja XRDP teenus on aktiveeritud, tuvastab rakendus vmconnect selle ja menüüsse lisatakse valik Vaata -> Täiendatud sessioon. Valides selle valiku, palutakse meil määrata ekraani resolutsioon, ja vahekaardil Kohalikud ressursid avatud dialoogis saame valida seadmed, mis edastatakse RDP-sessiooni.

Lülitame sisse Enhanced Session Mode Arch Linuxi külaliste jaoks Hyper-V-s
Lülitame sisse Enhanced Session Mode Arch Linuxi külaliste jaoks Hyper-V-s

Ühendame. Näeme XRDP sisselogimise akent:

Lülitame sisse Enhanced Session Mode Arch Linuxi külaliste jaoks Hyper-V-s

Sisestame oma kasutajanime ja parooli.

Kasutamine

Need toimingud toovad kasu: RDP sessioon töötab palju sujuvamalt kui virtuaalse ekraaniga töötamine ilma täiendatud sessioonita. RDP kaudu VM-i edastatud kettad on juurdepääsetavad kaustas ${HOME}/shared-drives:

Lülitame sisse Enhanced Session Mode Arch Linuxi külaliste jaoks Hyper-V-s

Kopeerimispuud jaotamine töötab normaalselt. Prindiseadmete edastamine ei ole võimalik, seda ei toetata ning see rikub ketaste edastamise. Samuti ei tööta heli, kuid autorile see ei olnud vajalik. Klahvikombinatsioonide, nagu Alt+Tab, talletamiseks tuleb vmconnect avada täisekraanile.

Kui mingil põhjusel on soov kasutada Windowsi sisseehitatud RDP-kliendi asemel rakendust vmconnect või näiteks ühendada sellele masinale teisest masinast, tuleb faili muuta /etc/xrdp/xrdp.ini port . Tundub, et tcp://:3389. Kui virtuaalmasin on ühendatud Default Switchiga ja saab DHCP kaudu võrguseaded, saab sellele ühenduda hostist aadressiga masinanimi.mshome.net. TTY-sse pääseb ainult rakenduse vmconnect kaudu, kui Enhanced Mode on välja lülitatud.

Kasutatud allikad:

  1. Hyper-V — Arch Wiki
  2. Veabugid GitHubis: 1, 2

Allikas: habr.com

Osta usaldusväärne hostimine veebilehtede jaoks DDoS-i kaitsega, VPS VDS serverid 🔥 Osta usaldusväärne hostimine veebilehtede jaoks DDoS-i kaitsega, VPS VDS serverid | ProHoster