
Përdorimi i makina virtuale në Linux në Hyper-V është nd slightly më pak i rehatshëm sesa me makina mysafir Windows. Arsyeja është se Hyper-V nuk është fillimisht paraparë për përdorim desktop; nuk mund të thjesht marrësh, të instalosh paketën e përshtatjeve mysafire dhe të marrësh grafik të punueshëm, clipboard, dosje të përbashkëta dhe gëzime të tjera të jetës, siç ndodh në VirtualBox.
Hyper-V vetĂ« ofron â kĂ«shtu, mysafirĂ«t mund tĂ« pĂ«rdorin shĂ«rbimin e kopjimit tĂ« errĂ«t (VSS) tĂ« hostit, mysafirĂ«ve mund t'u dĂ«rgohet njĂ« sinjal fikjeje, mysafirĂ«t mund tĂ« sinkronizojnĂ« kohĂ«n e sistemit me hostin e virtualizimit, mund tĂ« bĂ«het shkĂ«mbim skedash me makinĂ«n virtuale (Copy-VMFile nĂ« PowerShell). PĂ«r disa sisteme operative mysafire, pĂ«rfshirĂ«, natyrisht, Windows, nĂ« aplikacionin Virtual Machine Connection (vmconnect.exe) Ă«shtĂ« nĂ« dispozicion Modaliteti i Zgjeruar i Sesionit, i cili funksionon nĂ«pĂ«rmjet protokollit RDP dhe lejon kalimin e pajisjeve disk dhe printerĂ«ve nĂ« makinat virtuale, si dhe pĂ«rdorimin e njĂ« clipboardi tĂ« pĂ«rbashkĂ«t.
Rekomandimi i ModĂ«s sĂ« Sesionit TĂ« Avancuar punon nĂ« Windows nĂ« Hyper-V menjĂ«herĂ« pas instalimit. Me klientĂ«t nĂ« Linux, duhet tĂ« instaloni njĂ« server RDP qĂ« mbĂ«shtet vsock (njĂ« hapĂ«sirĂ« e veçantĂ« e adresave virtuale rrjet nĂ« Linux, e destinuar pĂ«r komunikim me hipervizorin). NĂ«se pĂ«r Ubuntu ka njĂ« model tĂ« pĂ«rgatitur tĂ« makinĂ«s virtuale nĂ« aplikacionin VMCreate, qĂ« vjen me Hyper-V nĂ« versionet desktop tĂ« Windows, ku serveri RDP qĂ« funksionon me vsock Ă«shtĂ« tashmĂ« i parainstaluar, atĂ«herĂ« me distribucionet e tjera nuk Ă«shtĂ« aq e qartĂ« â pĂ«r shembull, autori arriti tĂ« aktivizojĂ« ESM nĂ« Fedora. KĂ«tu aktivizojmĂ« ModĂ«n e Sesionit TĂ« Avancuar pĂ«r makinĂ«n virtuale me Arch Linux.
Instalimi i shërbimeve të integrimit
Këtu gjithçka është mëse e thjeshtë, na mjafton të instalojmë paketën hyperv nga depoja community:
% sudo pacman -S hypervDo të aktivizojmë shërbimet VSS, shkëmbimin dhe skedarëve:
% for i in {vss,fcopy,kvp}; do sudo systemctl enable hv_${i}_daemon.service; doneInstalimi i XRDP
Repozitori GitHub ofron skenë skripte që automatizojnë procesin e instalimit dhe konfigurimit të XRDP për Arch Linux dhe Ubuntu. Le të instalojmë Git, nëse nuk është tashmë i instaluar, së bashku me kompiluesin dhe softuerë të tjerë për ndërtimet manuale, dhe më pas do të klonojmë depo-n:
% sudo pacman -S git base-devel
% git clone https://github.com/microsoft/linux-vm-tools.git
% cd linux-vm-tools/archNë momentin e shkrimit të këtij artikulli, versioni më i fundit i XRDP, i cili instalohet nga skripta makepkg.sh, i propozuar në depo, është 0.9.11, vsock://-adresave, prandaj do të duhet të instaloni XRDP nga Git dhe drejtuesin Xorg për të manualisht nga AUR. Patch-i për XRDP, i propozuar në AUR, gjithashtu është paksa i vjetruar, kështu që do të duhet ta redaktoni PKGBUILD dhe patch-in manualisht.
Do të klonojmë depo në lidhje me PKGBUILD nga AUR (zakonisht këtë procedurë së bashku me ndërtimin e automatizojnë programe si , por autori e ka kryer 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.gitSë pari, do të instalojmë XRDP-në vetë. Do të hapim skedarin PKGBUILD me çdo redaktues teksti.
Do të redaktojmë parametrat e ndërtimit. PKGBUILD për ndërtimin e XRDP nga Git nuk përfshin mbështetje për vsock gjatë ndërtimit, prandaj do ta përfshijmë ne 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-vsock
make V=0
}Në patch arch-config.diff, që menaxhon njësitë dhe skenaret e nisjes së XRDP për rrugët e skedarëve të përdorur në Arch Linux, përfshin gjithashtu një patch për skenarin instfiles/xrdp.sh, i cili në momentin e shkrimit të këtij artikulli nga shpërndarja e XRDP, kështu që patch-i do të duhet të redaktohet 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 -0600Të mbledhim dhe instalojmë paketën me komandën % makepkg --skipchecksums -si (çelësi --skipchecksums nevojitet për të çaktivizuar verifikimin e kontrollit të shumave të skedarëve burimorë, pasi i kemi redaktuar ato manualisht).
Të kalojmë në direktorinë xorgxrdp-devel-git, pasi thjesht do të grumbullojmë paketën me komandën % makepkg -si.
Të kalojmë në direktorinë linux-vm-tools/arch dhe do të ekzekutojmë skriptin install-config.sh, që vendos cilësimet e XRDP, PolicyKit dhe PAM:
% sudo ./install-config.shSkripti vendos cilësimin e vjetruar use_vsock, i cili injorohet që prej versionit 0.9.11, prandaj do të redaktojmë skedarin e konfigurimit /etc/xrdp/xrdp.ini në mënyrë manuale:
; port=vsock://:
-port=3389
+port=vsock://-1:3389
; 'port' më sipër duhet të lidhet me vsock në vend të tcp
; përdorni këtë vetëm me numrin e vetëm në portin më sipër
; preferohet të përdoret vsock://: më sipër
-use_vsock=true
+;use_vsock=true
; rregulloni nëse socket-i dëgjon përdor opsionin e socket tcp_nodelayShtojmë në skedarin ~/ .xinitrc ekzekutimin e menaxhuesit të dritareve / mjedisit tuaj të preferuar të desktopit, i cili do të ekzekutohet kur fillohet serveri X:
% echo "exec i3" > ~/ .xinitrcDo të ndalim makinën virtuale. Aktivizojmë transportin vsock për makinën virtuale duke ekzekutuar komandën e mëposhtme në PowerShell nga administratori:
PS Admin > Set-VM -VMName EMRI_I_MAKINĂS -EnhancedSessionTransportType HvSocketDo ta rishikojmĂ« makinĂ«n virtuale pĂ«rsĂ«ri.
Lidhja
Sapo shërbimi XRDP të fillojë pas nisjes së sistemit, aplikacioni vmconnect do ta identifikojë këtë dhe do të jetë i disponueshëm një opsion në menu View -> Enhanced Session. Kur të zgjidhni këtë opsion, do na ofrohet të vendosim rezolucionin e ekranit, dhe në skedën Resources lokale në dialogun që u hap, do të jetë e mundur të zgjidhen pajisjet që janë të projeksionuara brenda sesionit RDP.


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

Do të futim emrin e përdoruesit dhe fjalëkalimin tonë.
Përdorimi
Përfitimi nga këto manovra është i dukshëm: sesioni RDP funksionon shumë më reaktivisht se sa me ekran virtual pa Enhanced Session. Disket e projeksionuar brenda VM përmes RDP janë të aksesueshëm në direktorinë ${HOME}/shared-drives:

Klipi i shkëmbimit punon normalisht. Nuk është e mundur të projektohen printerët brenda, kjo nuk mbështetet vetëm, por Po ashtu, tingulli nuk funksionon, por autori nuk e kishte atë si nevojë. Për ta kapur kombinimet e çelësave si Alt+Tab, duhet të shtriheni vmconnect në ekran të plotë.
Nëse për ndonjë arsyer dëshira për të përdorur në vend të aplikacionit vmconnect klientin e integruar të Windows RDP, ose për shembull, të lidheni me këtë makinë nga një makinë tjetër, do të duhet të ndryshoni në skedarin /etc/xrdp/xrdp.ini port në tcp://:3389. Nëse makineria virtuale i është e lidhur në Default Switch dhe merr cilësimet e rrjetit përmes DHCP, atëherë mund të lidhesh me të nga hosti në adresën emri_makinerisë.mshome.net. Mund të hysh në TTY vetëm nga aplikacioni vmconnect, duke çaktivizuar Enhanced Mode.
Burimet e përdorura:
- Raportet e bugs në GitHub: ,
Burimi: habr.com
