Aktivizo modalitetin e sesionit të përmirësuar për të ftuarit e Arch Linux në Hyper-V

Aktivizo modalitetin e sesionit të përmirësuar për të ftuarit e Arch Linux në Hyper-V

Përdorimi i makinerive virtuale Linux në Hyper-V jashtë kutisë është disi më pak i rehatshëm sesa me makinat e vizituara Windows. Arsyeja për këtë është se Hyper-V nuk ishte menduar fillimisht për përdorim desktop; ju nuk mund të vazhdoni dhe të instaloni paketën e shtesave të të ftuarve dhe të merrni përshpejtim të zbatueshëm të grafikës, kujtesën e fragmenteve, drejtoritë e përbashkëta dhe gëzime të tjera të jetës, siç ndodh në VirtualBox.

Hyper-V vetë ofron shërbime të shumta integrimi - kështu, të ftuarit mund të përdorin shërbimin e kopjimit hije (VSS) të hostit, të ftuarit mund të dërgojnë një sinjal mbylljeje, të ftuarit mund të sinkronizojnë kohën e sistemit me hostin e virtualizimit, skedarët mund të shkëmbehen me makinën virtuale nga hosti (Copy-VMFile në PowerShell). Për disa sisteme operative të ftuar, duke përfshirë, natyrisht, Windows, në aplikacionin Virtual Machine Connection (vmconnect.exe) Ofrohet Modaliteti i Sesionit të Përmirësuar, i cili funksionon nëpërmjet protokollit RDP dhe ju lejon të përcillni pajisjet e diskut dhe printerët në makinën virtuale, si dhe të përdorni kujtesën e përbashkët.

Modaliteti i Sesionit të Përmirësuar funksionon jashtë kutisë në Windows në Hyper-V menjëherë pas instalimit. Me mysafirët në Linux, ju duhet të instaloni një server RDP që mbështet vsock (një hapësirë ​​​​e veçantë e adresave të rrjetit virtual në Linux e krijuar për të komunikuar me hipervizorin). Nëse për Ubuntu, aplikacioni VMCreate që vjen me Hyper-V në botimet desktop të Windows ka një shabllon të veçantë të përgatitur të makinës virtuale në të cilën një server RDP funksionon me vsock XRDP tashmë të para-instaluar, atëherë me shpërndarjet e tjera është gjithnjë e më pak e qartë - për shembull, autori këtë postim doli të mundësonte ESM në Fedora. Këtu aktivizojmë gjithashtu modalitetin e sesionit të përmirësuar për makinën virtuale Arch Linux.

Instalimi i shërbimeve të integrimit

Gjithçka është pak a shumë e thjeshtë këtu, thjesht duhet të instalojmë paketën hyperv nga depoja e komunitetit:

% sudo pacman -S hyperv

Aktivizo shërbimet VSS, shkëmbejnë meta të dhënat dhe skedarët:

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

Instalimi i XRDP

depo linux-vm-tools në GitHub ofron skriptet që automatizojnë procesin e instalimit dhe konfigurimit të XRDP për Arch Linux dhe Ubuntu. Instaloni Git, nëse nuk është instaluar tashmë, së bashku me përpiluesin dhe softuerët e tjerë për ndërtime manuale, dhe më pas klononi depon:

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

Në kohën e këtij shkrimi, lëshimi më i fundit i XRDP, i cili është instaluar nga skripti makepkg.she sugjeruar në depo është 0.9.11, në të cilin analizimi prishet vsock://-adresat, kështu që ju duhet të instaloni XRDP nga Git dhe drejtuesin Xorg për të nga AUR manualisht. Patch-i për XRDP i ofruar në AUR është gjithashtu pak i vjetëruar, kështu që do t'ju duhet të modifikoni manualisht PKGBUILD dhe patch-in.

Ne i klonojmë depot me PKGBUILD nga AUR (zakonisht kjo procedurë, së bashku me montimin, automatizohet nga programe si yay, por autori e bëri të gjithë këtë procedurë në një sistem të pastër):

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

Le të instalojmë vetë XRDP së pari. Le të hapim skedarin PKGBUILD çdo redaktues teksti.

Le të modifikojmë parametrat e ndërtimit. PKGBUILD për ndërtimin e XRDP nga Git nuk përfshin mbështetjen e vsock në ndërtim, kështu që le ta aktivizojmë vetë:

 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
 }

Në një copëz arch-config.diff, i cili redakton njësitë dhe skriptet e nisjes XRDP nën shtigjet drejt skedarëve të përdorur në Arch Linux, përmban, ndër të tjera, një rregullim të skriptit instfiles/xrdp.sh, e cila në momentin e shkrimit u hoq nga shpërndarja XRDP, kështu që patch-i do të duhet të modifikohet manualisht:

  [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

Ndërtoni dhe instaloni paketën me komandën % makepkg --skipchecksums -si (Celës --skipchecksums është e nevojshme për të çaktivizuar verifikimin e shumës së kontrollit të skedarëve burimor, pasi ne i kemi redaktuar ato manualisht).

Le të shkojmë te drejtoria xorgxrdp-devel-git, pas së cilës thjesht ndërtojmë paketën me komandën % makepkg -si.

Le të shkojmë te drejtoria linux-vm-tools/arch dhe ekzekutoni skenarin install-config.sh, i cili vendos cilësimet XRDP, PolicyKit dhe PAM:

% sudo ./install-config.sh

Skripti instalon cilësimet e trashëgimisë use_vsock, i cili është injoruar që nga versioni 0.9.11, kështu që le të modifikojmë skedarin e konfigurimit /etc/xrdp/xrdp.ini me dorë:

 ;   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

Shto në skedar ~/.xinitrc nisja e mjedisit të preferuar të menaxherit/desktopit të dritares, i cili do të ekzekutohet kur të nisë serveri X:

% echo "exec i3" > ~/.xinitrc

Le të fikim makinën virtuale. Aktivizoni transportin vsock për VM duke ekzekutuar komandën e mëposhtme në PowerShell si administrator:

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

Le të ndezim përsëri makinën virtuale.

Подключение

Sapo shërbimi XRDP të fillojë pas fillimit të sistemit, aplikacioni vmconnect do ta përcaktojë këtë dhe artikulli i menysë do të bëhet i disponueshëm. Pamje -> Sesion i përmirësuar. Kur zgjidhni këtë artikull, do të na kërkohet të vendosim rezolucionin e ekranit dhe në skedën Burimet lokale në dialogun që hapet, mund të zgjidhni pajisjet e përcjella brenda seancës RDP.

Aktivizo modalitetin e sesionit të përmirësuar për të ftuarit e Arch Linux në Hyper-V
Aktivizo modalitetin e sesionit të përmirësuar për të ftuarit e Arch Linux në Hyper-V

Le të lidhemi. Do të shohim dritaren e hyrjes në XRDP:

Aktivizo modalitetin e sesionit të përmirësuar për të ftuarit e Arch Linux në Hyper-V

Futni emrin e përdoruesit dhe fjalëkalimin tuaj.

Përdorim

Fitimi nga këto manipulime është i dukshëm: seanca RDP funksionon shumë më e përgjegjshme sesa kur punoni me një ekran virtual pa Sesion të zgjeruar. Disqet e përcjellë brenda VM-së nëpërmjet RDP janë të disponueshëm në drejtori ${HOME}/shared-drives:

Aktivizo modalitetin e sesionit të përmirësuar për të ftuarit e Arch Linux në Hyper-V

Clipboard është duke punuar mirë. Nuk mund të hidhni printera brenda, kjo jo vetëm që nuk mbështetet, por edhe prish përcjelljen e diskut. Tingulli gjithashtu nuk funksionon, por autorit nuk i duhej. Për të kapur shkurtoret e tastierës si Alt + Tab, duhet të zgjeroni vmconnect në ekran të plotë.

Nëse për ndonjë arsye ekziston dëshira për të përdorur klientin RDP të integruar në Windows në vend të aplikacionit vmconnect ose, për shembull, të lidheni me këtë makinë nga një makinë tjetër, atëherë do t'ju duhet të ndryshoni skedarin /etc/xrdp/xrdp.ini port mbi tcp://:3389. Nëse makina virtuale është e lidhur me Default Switch dhe merr cilësimet e rrjetit nëpërmjet DHCP, atëherë mund të lidheni me të nga hosti në название_машины.mshome.net. Mund të identifikoheni në TTY vetëm nga aplikacioni vmconnect duke çaktivizuar modalitetin e përmirësuar.

Burimet e përdorura:

  1. Hyper-V Arch Wiki
  2. Raportet e gabimeve në GitHub: 1, 2

Burimi: www.habr.com

Shto një koment