
Uzante virtualajn maŝinojn sur Linux en Hyper-V tuj el la skatolo estas iom malpli komforta sperto ol kun gasto Windows-maŝinoj. La kialo de tio estas, ke Hyper-V ne estis origine desegnita por uzo sur labortablo; vi ne povas simple instali la pakaĵon Guest Additions kaj akiri funkcian grafikan akcelon, tondejon, komunajn dosierujojn kaj aliajn avantaĝojn, kiel vi povas kun VirtualBox.
Hyper-V mem provizas - do gastoj povas uzi la servon de ombra kopio (VSS) de la gastiganto, gastoj povas sendi signalon de halto, gastoj povas sinkronigi la sisteman tempon kun la gastiganto de virtualigo, dosieroj povas esti interŝanĝitaj de la gastiganto kun la virtuala maŝino (Copy-VMFile en PowerShell). Por iuj gastaj operaciumoj, kiu kompreneble inkluzivas Windows, en la aplikaĵo Konekto al Virtuala Maŝino (vmconnect.exe) Plibonigita Sesia Reĝimo estas havebla, funkciante per la RDP-protokolo kaj ebligante vin translokigi disko-aparatojn kaj presilojn al la virtuala maŝino, kaj ankaŭ uzi komunan tondulon.
Plibonigita Sesia Reĝimo funkcias tuj Windows en Hyper-V tuj post instalado. Kun gastoj ŝaltitaj Linux vi bezonas instali RDP-servilon kiu subtenas vsock (speciala virtuala ret-adresspaco en Linux, desegnita por komuniki kun la hipervizoro). Se por Ubuntu en la aplikaĵo VMCreate kiu venas kun Hyper-V en skribtablaj eldonoj Windows, ekzistas speciale preparita ŝablono por virtuala maŝino, en kiu RDP-servilo funkcias kun vsock jam antaŭinstalita, tiam ĉe aliaj distribuoj ĝi estas malpli kaj malpli klara - ekzemple la aŭtoro Ni sukcesis ebligi ESM en Fedora. Ĉi tie ni ankaŭ aktivigas Plibonigitan Sesian Reĝimon por la virtuala maŝino Arch. Linux.
Instalado de integrigaj servoj
Ĉio estas pli-malpli simpla ĉi tie, ni nur bezonas instali la pakaĵon hyperv el la komunuma deponejo:
% sudo pacman -S hypervNi ebligu VSS kaj interŝanĝajn servojn kaj dosieroj:
% for i in {vss,fcopy,kvp}; do sudo systemctl enable hv_${i}_daemon.service; doneInstalante XRDP
deponejo provizas skriptojn ĉe GitHub kiuj aŭtomatigas la procezon de instalado kaj agordado de XRDP por Arch Linux и UbuntuNi instalu Git-on, se ĝi ne jam estas instalita, kune kun kompililo kaj alia programaro por manaj konstruadoj, kaj poste klonu la deponejon:
% sudo pacman -S git base-devel
% git clone https://github.com/microsoft/linux-vm-tools.git
% cd linux-vm-tools/archAl la horo de verki ĉi tiun artikolon, la plej nova eldono de XRDP, kiu estas instalita de la skripto makepkg.shtiu proponita en la deponejo estas 0.9.11, vsock://-adresoj, do vi devos instali XRDP de Git kaj la Xorg-ŝoforon por ĝi de AUR permane. La flikaĵo XRDP ofertita en la AUR ankaŭ estas iomete malaktuala, do vi devos redakti la PKGBUILD kaj flikilon permane.
Ni klonu deponejojn kun PKGBUILD-oj de AUR (kutime ĉi tiu proceduro, kune kun la konstruo, estas aŭtomatigita per programoj kiel , sed la aŭtoro faris ĉi tiun tutan procedon sur pura sistemo):
% git clone https://aur.archlinux.org/xrdp-devel-git.git
% git clone https://aur.archlinux.org/xorgxrdp-devel-git.gitNi unue instalu XRDP mem. Ni malfermu la dosieron PKGBUILD ajna tekstoredaktilo.
Ni redaktu la konstruajn parametrojn. PKGBUILD por konstrui XRDP el Git ne inkluzivas vsock-subtenon dum konstruado, do ni ebligu ĝin mem:
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
}En la flikaĵo arch-config.diff, regantaj unuoj kaj XRDP-startigaj skriptoj sub la dosierpadoj uzataj en Arch Linux, enhavas peceton al la skripto instfiles/xrdp.sh, kiu en la momento de la skribado de la distribuo XRDP, do la flikaĵo devos esti redaktita permane:
[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 -0600Ni kompilu kaj instalu la pakaĵon per la komando % makepkg --skipchecksums -si (ŝlosilo --skipchecksums bezonata por malŝalti kontrolon de kontrolo de fontdosieroj, ĉar ni redaktis ilin permane).
Ni iru al la dosierujo xorgxrdp-devel-git, post kio ni simple kunmetas la pakaĵon kun la komando % makepkg -si.
Ni iru al la dosierujo linux-vm-tools/arch kaj rulu la skripton install-config.sh, kiu agordas XRDP, PolicyKit kaj PAM-agordojn:
% sudo ./install-config.shSkripto instalas heredan agordon use_vsock, kiu estas ignorita ekde la versio 0.9.11, do ni redaktu la agordan dosieron /etc/xrdp/xrdp.ini permane:
; 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_nodelayAldoni al dosiero ~/.xinitrc lanĉante vian preferatan fenestromanaĝeron/tablan medion, kiu estos efektivigita kiam la X-servilo komenciĝas:
% echo "exec i3" > ~/.xinitrcNi malŝaltu la virtualan maŝinon. Ni aktivigas la vsock-transporton por la virtuala maŝino rulante la sekvan komandon en PowerShell kiel administranto:
PS Admin > Set-VM -VMName НАЗВАНИЕ_МАШИНЫ -EnhancedSessionTransportType HvSocketNi ŝaltu la virtualan maŝinon denove.
Konektebleco
Tuj kiam la XRDP-servo komenciĝas post kiam la sistemo komenciĝas, la vmconnect-aplikaĵo detektos ĉi tion kaj la ero estos disponebla en la menuo. vido -> Plibonigita Sesio. Elektante ĉi tiun eron, ni estos petataj agordi la ekranan rezolucion, kaj sur la langeto Lokaj Rimedoj En la dialogo kiu malfermiĝas, vi povas elekti aparatojn por esti plusendita en la RDP-sesion.


Ni konektu. Ni vidos la XRDP-ensalutan fenestron:

Enigu vian uzantnomon kaj pasvorton.
Uzo
La avantaĝo de ĉi tiuj manipuladoj estas videbla: la RDP-sesio funkcias multe pli responde ol kiam oni laboras kun virtuala ekrano sen Plibonigita Sesio. Diskoj faligitaj ene de la VM per RDP estas haveblaj en la dosierujo ${HOME}/shared-drives:

La tondujo funkcias bone. Vi ne povas plusendi presilojn enen; ĉi tio ne nur ne estas subtenata, sed ankaŭ . Ankaŭ la sono ne funkcias, sed la aŭtoro ne bezonis tion. Por kapti klavarajn ŝparvojojn kiel Alt+Tab, vi devas vastigi vmconnect al plena ekrano.
Se pro iu ajn kialo vi volas uzi la enkonstruitan aplikaĵon vmconnect anstataŭ la Windows RDP-kliento aŭ, ekzemple, konektiĝi al ĉi tiu maŝino de alia maŝino, tiam vi devos ŝanĝi la dosieron /etc/xrdp/xrdp.ini port sur tcp://:3389. Se la virtuala maŝino estas konektita al Defaŭlta Ŝaltilo kaj ricevas retajn agordojn per DHCP, tiam vi povas konekti al ĝi de la gastiganto ĉe название_машины.mshome.net. Vi nur povas ensaluti TTY de la aplikaĵo vmconnect malŝaltante Plibonigitan Reĝimon.
Uzitaj fontoj:
- Cimraportoj en GitHub: ,
fonto: www.habr.com
