
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 — 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 on juba eelnevalt installitud, siis teiste distributsioonidega on olukord vähem üheselt mõistetav — autori arvates õ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 hypervLülitame sisse VSS-, andmete- % for i in {vss,fcopy,kvp}; do sudo systemctl enable hv_${i}_daemon.service; done
XRDP installiminelinux-vm-tools
Repo % 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/archKäesoleva artikli kirjutamise hetkel on kõige uuem XRDP versioon, mis installitakse skripti kaudu makepkg.sh, mis on pakkumisel hoidlas, 0.9.11, 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 , 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.gitAlustame 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 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 -0600Kogume 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.shSkripts 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_nodelayLisame faili ~/ .xinitrc oma oma eelistatud aknahaldur / töölaua keskkond, mis käivitatakse X-serveri käivitamisel:
% echo "exec i3" > ~/ .xinitrcLü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 HvSocketKä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.


Ühendame. Näeme XRDP sisselogimise akent:

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:

Kopeerimispuud jaotamine töötab normaalselt. Prindiseadmete edastamine ei ole võimalik, seda ei toetata ning see . 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:
- Veabugid GitHubis: ,
Allikas: habr.com
