
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Ä ā 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 jau ir iepriekÅ” instalÄts, ar citiem izplatÄ«jumiem viss ir mazÄk skaidrs ā autors Ŕī raksta 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Åasmetadatu % for i in {vss,fcopy,kvp}; do sudo systemctl enable hv_${i}_daemon.service; done
XRDP instalÄÅ”analinux-vm-tools
repozitorija на 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/archRakstÄ minÄtajÄ brÄ«dÄ« jaunÄkais XRDP izdevums, ko instalÄ skripts makepkg.sh, kas piedÄvÄts krÄtuvÄ, ir 0.9.11, 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, , 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.gitVispirms 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Ä« 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 -0600Saliksim 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.shSkripts 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_nodelayPievienosim failam ~/.xinitrc izsist savu izvÄlÄto loga pÄrvaldnieku / darbvirsmas vidi, kas tiks palaista, kad sÄksies X-serveris:
% echo "exec i3" > ~/.xinitrcIzslÄ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 HvSocketAtkal 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.


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

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:

Starpliktuve darbojas normÄli. Printerus nevar nodot iekÅ”Ä, tas ne tikai nav atbalstÄ«ts, bet arÄ« . 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:
- Kļūdu ziÅojumi GitHubÄ: ,
Avots: habr.com
