Ebligu Plibonigitan Sesian Reĝimon por Arch Linux-gastoj en Hyper-V

Ebligu Plibonigitan Sesian Reĝimon por Arch Linux-gastoj en Hyper-V

Uzi Linuksajn virtualajn maŝinojn en Hyper-V el la skatolo estas iomete malpli komforta sperto ol uzado de Vindozaj gastmaŝinoj. La kialo de tio estas, ke Hyper-V origine ne estis destinita por labortabla uzo; vi ne povas simple instali pakaĵon da gasto-aldonoj kaj akiri funkcian grafikan akcelon, tondujo, komunajn dosierujojn kaj aliajn ĝojojn de vivo, kiel okazas en VirtualBox.

Hyper-V mem provizas pluraj integrigaj servoj - 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 gastoperaciumoj, inkluzive de, kompreneble, Vindozo, en la aplikaĵo Virtual Machine Connection (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 el la skatolo en Vindozo en Hyper-V tuj post instalado. Kun gastoj en Linukso, vi devas instali RDP-servilon kiu subtenas vsock (speciala virtuala reta adresspaco en Linukso desegnita por komunikado kun la hiperviziero). Se por Ubuntu en la aplikaĵo VMCreate kiu venas kun Hyper-V sur labortablaj eldonoj de Vindozo, ekzistas speciala preparita virtuala maŝina ŝablono en kiu RDP-servilo laboranta kun vsock XRDP jam antaŭinstalita, tiam ĉe aliaj distribuoj ĝi estas malpli kaj malpli klara - ekzemple la aŭtoro ĉi tiu afiŝo Mi sukcesis ebligi ESM en Fedora. Ĉi tie ni aktivigos 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 hyperv

Ni ebligu VSS kaj interŝanĝajn servojn metadatenoj kaj dosieroj:

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

Instalante XRDP

deponejo linukso-vm-iloj en GitHub provizas skriptojn, kiuj aŭtomatigas la procezon de instalado kaj agordo de XRDP por Arch Linux kaj Ubuntu. Ni instalu Git, se ĝi ne estas jam instalita, kune kun la kompililo kaj alia programaro por manaj konstruoj, 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/arch

Al 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, en kiu analizado estas rompita 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 pafarko, 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.git

Ni 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, kiu administras unuojn kaj XRDP-lanĉajn skriptojn sub la dosiervojoj uzataj en Arch Linux, ankaŭ enhavas peceton al la skripto. instfiles/xrdp.sh, kiu en la momento de la skribado estis forigita 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 -0600

Ni 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.sh

Skripto 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_nodelay

Aldoni al dosiero ~/.xinitrc lanĉante vian preferatan fenestromanaĝeron/tablan medion, kiu estos efektivigita kiam la X-servilo komenciĝas:

% echo "exec i3" > ~/.xinitrc

Ni 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 HvSocket

Ni ŝ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.

Ebligu Plibonigitan Sesian Reĝimon por Arch Linux-gastoj en Hyper-V
Ebligu Plibonigitan Sesian Reĝimon por Arch Linux-gastoj en Hyper-V

Ni konektu. Ni vidos la XRDP-ensalutan fenestron:

Ebligu Plibonigitan Sesian Reĝimon por Arch Linux-gastoj en Hyper-V

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:

Ebligu Plibonigitan Sesian Reĝimon por Arch Linux-gastoj en Hyper-V

La tondujo funkcias bone. Vi ne povas plusendi presilojn enen; ĉi tio ne nur ne estas subtenata, sed ankaŭ rompas diskon plusendado. 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 ial vi volas uzi la RDP-klienton enkonstruitan en Vindozo anstataŭ la aplikaĵo vmconnect aŭ, ekzemple, konekti 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:

  1. Hyper-V - Arch-Vikio
  2. Cimraportoj en GitHub: 1, 2

fonto: www.habr.com

Aldoni komenton