Activeu el mode de sessió millorat per als convidats d'Arch Linux a Hyper-V

Activeu el mode de sessió millorat per als convidats d'Arch Linux a Hyper-V

L'ús de màquines virtuals Linux a Hyper-V fora de la caixa és una mica menys còmode que amb màquines Windows convidades. La raó d'això és que Hyper-V no estava pensat originalment per a ús d'escriptori; no podeu seguir endavant i instal·lar el paquet d'addicions de convidats i obtenir una acceleració gràfica viable, porta-retalls, directoris compartits i altres alegries de la vida, com passa a VirtualBox.

Hyper-V en si proporciona múltiples serveis d'integració - Per tant, els convidats poden utilitzar el servei de còpia d'ombra (VSS) de l'amfitrió, els convidats poden enviar un senyal d'apagada, els convidats poden sincronitzar l'hora del sistema amb l'amfitrió de virtualització, els fitxers es poden intercanviar amb la màquina virtual des de l'amfitrió (Copy-VMFile a PowerShell). Per a alguns sistemes operatius convidats, inclòs, per descomptat, Windows, a l'aplicació Virtual Machine Connection (vmconnect.exe) El mode de sessió millorat està disponible, que funciona mitjançant el protocol RDP i us permet reenviar dispositius de disc i impressores a la màquina virtual, així com utilitzar el porta-retalls compartit.

El mode de sessió millorat funciona de manera immediata a Windows a Hyper-V just després de la instal·lació. Amb convidats a Linux, cal instal·lar un servidor RDP que admeti vsock (un espai especial d'adreces de xarxa virtual a Linux dissenyat per comunicar-se amb l'hipervisor). Si per a Ubuntu, l'aplicació VMCreate que ve amb Hyper-V a les edicions d'escriptori de Windows té una plantilla de màquina virtual preparada especial en la qual un servidor RDP s'executa amb vsock XRDP ja preinstal·lat, després amb altres distribucions és cada cop menys clar, per exemple, l'autor aquesta publicació va resultar habilitar ESM a Fedora. Aquí també activem el mode de sessió millorat per a la màquina virtual Arch Linux.

Instal·lació de serveis d'integració

Aquí tot és més o menys senzill, només cal instal·lar el paquet hyperv del repositori de la comunitat:

% sudo pacman -S hyperv

Habilita els serveis VSS, intercanvia metadades i fitxers:

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

Instal·lació XRDP

repositori linux-vm-tools a GitHub proporciona scripts que automatitzen el procés d'instal·lació i configuració de XRDP per a Arch Linux i Ubuntu. Instal·leu Git, si encara no està instal·lat, juntament amb el compilador i un altre programari per a les compilacions manuals, i després cloneu el dipòsit:

% sudo pacman -S git base-devel
% git clone https://github.com/microsoft/linux-vm-tools.git
% cd linux-vm-tools/arch

En el moment d'escriure aquest article, la versió més recent de XRDP, instal·lada per l'script makepkg.shsuggerit al repositori és 0.9.11, en què l'anàlisi es trenca vsock://-adreces, de manera que heu d'instal·lar XRDP des de Git i el controlador Xorg per a això des d'AUR manualment. El pedaç per a XRDP que s'ofereix a l'AUR també està una mica obsolet, de manera que haureu d'editar el PKGBUILD i el pedaç manualment.

Clonem els dipòsits amb PKGBUILD de l'AUR (normalment aquest procediment, juntament amb el muntatge, s'automatitza mitjançant programes com Visca, però l'autor va fer tot aquest procediment en un sistema net):

% git clone https://aur.archlinux.org/xrdp-devel-git.git
% git clone https://aur.archlinux.org/xorgxrdp-devel-git.git

Primer instal·lem XRDP. Obrim el fitxer PKGBUILD qualsevol editor de text.

Editem els paràmetres de construcció. El PKGBUILD per crear XRDP des de Git no inclou suport vsock a la construcció, així que habilitem-lo nosaltres mateixos:

 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 un pegat arch-config.diff, que edita unitats i scripts d'inici XRDP sota els camins als fitxers utilitzats a Arch Linux, conté, entre altres coses, un pedaç per a l'script instfiles/xrdp.sh, que en el moment d'escriure va ser eliminat de la distribució XRDP, de manera que el pegat s'haurà d'editar manualment:

  [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

Creeu i instal·leu el paquet amb l'ordre % makepkg --skipchecksums -si (clau --skipchecksums és necessari per desactivar la verificació de la suma de verificació dels fitxers font, ja que els hem editat manualment).

Anem al directori xorgxrdp-devel-git, després del qual simplement construïm el paquet amb l'ordre % makepkg -si.

Anem al directori linux-vm-tools/arch i executeu l'script install-config.sh, que estableix la configuració de XRDP, PolicyKit i PAM:

% sudo ./install-config.sh

L'script instal·la la configuració heretada use_vsock, que s'ignora des de la versió 0.9.11, així que editem el fitxer de configuració /etc/xrdp/xrdp.ini manualment:

 ;   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

Afegeix al fitxer ~/.xinitrc llançant el vostre gestor de finestres/entorn d'escriptori preferit, que s'executarà quan s'iniciï el servidor X:

% echo "exec i3" > ~/.xinitrc

Apaguem la màquina virtual. Habiliteu el transport vsock per a la màquina virtual executant l'ordre següent a PowerShell com a administrador:

PS Admin > Set-VM -VMName НАЗВАНИЕ_МАШИНЫ -EnhancedSessionTransportType HvSocket

Tornem a encendre la màquina virtual.

Afegeix

Tan aviat com s'iniciï el servei XRDP després que s'iniciï el sistema, l'aplicació vmconnect ho determinarà i l'element del menú estarà disponible. Veure comanda -> Sessió millorada. Quan seleccioneu aquest element, se'ns demanarà que establim la resolució de la pantalla i a la pestanya Recursos locals Al diàleg que s'obre, podeu seleccionar els dispositius reenviats dins de la sessió RDP.

Activeu el mode de sessió millorat per als convidats d'Arch Linux a Hyper-V
Activeu el mode de sessió millorat per als convidats d'Arch Linux a Hyper-V

Connectem-nos. Veurem la finestra d'inici de sessió XRDP:

Activeu el mode de sessió millorat per als convidats d'Arch Linux a Hyper-V

Introduïu el vostre nom d'usuari i contrasenya.

Utilitzar

El benefici d'aquestes manipulacions és notable: la sessió RDP funciona molt més sensible que quan es treballa amb una pantalla virtual sense sessió millorada. Els discs reenviats dins de la màquina virtual mitjançant RDP estan disponibles al directori ${HOME}/shared-drives:

Activeu el mode de sessió millorat per als convidats d'Arch Linux a Hyper-V

El porta-retalls funciona bé. No podeu tirar impressores dins, això no només no és compatible, sinó també trenca el reenviament del disc. El so tampoc funciona, però l'autor no el necessitava. Per capturar dreceres de teclat com Alt + Tab, heu d'ampliar vmconnect a pantalla completa.

Si per algun motiu es vol utilitzar el client RDP integrat a Windows en lloc de l'aplicació vmconnect o, per exemple, connectar-se a aquesta màquina des d'una altra màquina, haureu de canviar el fitxer /etc/xrdp/xrdp.ini port en tcp://:3389. Si la màquina virtual està connectada al commutador predeterminat i rep la configuració de la xarxa mitjançant DHCP, podeu connectar-hi des de l'amfitrió a название_машины.mshome.net. Només podeu iniciar sessió a TTY des de l'aplicació vmconnect desactivant el mode millorat.

Fonts utilitzades:

  1. Hyper-V Arch Wiki
  2. Informes d'errors a GitHub: 1, 2

Font: www.habr.com

Afegeix comentari