Activation du mode session amélioré pour Arch Linux-invités dans Hyper-V

Activation du mode session amélioré pour Arch Linux-invités dans Hyper-V

Utilisation de machines virtuelles sur Linux L'utilisation d'Hyper-V dès le départ offre une expérience légèrement moins confortable qu'avec un système invité. Windows-machines. La raison en est que Hyper-V n'a pas été conçu à l'origine pour une utilisation sur ordinateur de bureau ; vous ne pouvez pas simplement installer le package Guest Additions et bénéficier de l'accélération graphique, du presse-papiers, des répertoires partagés et d'autres avantages, comme c'est le cas avec VirtualBox.

Hyper-V lui-même fournit plusieurs services d'intégration - ainsi, les invités peuvent utiliser le service de cliché instantané (VSS) de l'hôte, les invités peuvent envoyer un signal d'arrêt, les invités peuvent synchroniser l'heure du système avec l'hôte de virtualisation, les fichiers peuvent être échangés avec la machine virtuelle à partir de l'hôte (Copy-VMFile (dans PowerShell). Pour certains systèmes d'exploitation invités, ce qui inclut bien sûr Windows, dans l'application Connexion à la machine virtuelle (vmconnect.exe) Le mode de session amélioré est disponible. Il fonctionne via le protocole RDP et vous permet de transférer des périphériques de disque et des imprimantes vers la machine virtuelle, ainsi que d'utiliser le presse-papiers partagé.

Le mode session amélioré est opérationnel dès sa sortie de l'emballage. Windows dans Hyper-V immédiatement après l'installation. Avec des invités sur Linux Vous devez installer un serveur RDP qui prend en charge vsock (un espace d'adressage réseau virtuel spécial). Linux, conçu pour communiquer avec l'hyperviseur). Si pour Ubuntu dans l'application VMCreate fournie avec Hyper-V sur les éditions de bureau WindowsIl existe un modèle de machine virtuelle spécialement conçu pour qu'un serveur RDP fonctionne avec vsock. XRDP déjà préinstallé, alors avec d'autres distributions c'est de moins en moins clair - par exemple, l'auteur ce post Nous avons réussi à activer ESM sous Fedora. Nous activons également le mode de session amélioré pour la machine virtuelle Arch. Linux.

Installation des services d'intégration

Tout est plus ou moins simple ici, il suffit d'installer le package hyperv du référentiel communautaire :

% sudo pacman -S hyperv

Activer les services VSS, échanger métadonnées et fichiers :

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

Installation XRDP

dépôt Linux-VM-Tools fournit des scripts sur GitHub qui automatisent le processus d'installation et de configuration de XRDP pour Arch. Linux и UbuntuInstallons Git, s'il n'est pas déjà installé, ainsi qu'un compilateur et d'autres logiciels pour les compilations manuelles, puis clonons le dépôt :

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

Au moment d'écrire ces lignes, la version la plus récente de XRDP, qui est installée par le script makepkg.shproposé dans le référentiel est 0.9.11, dans lequel l'analyse est cassée vsock://-adresses, vous devez donc installer XRDP à partir de Git et le pilote Xorg correspondant à partir d'AUR manuellement. Le correctif pour XRDP proposé dans l'AUR est également légèrement obsolète, vous devrez donc modifier manuellement le PKGBUILD et le correctif.

Nous clonons les référentiels avec les PKGBUILD de l'AUR (généralement cette procédure, ainsi que l'assemblage, est automatisée par des programmes comme yay, mais l'auteur a effectué toute cette procédure sur un système propre) :

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

Installons d'abord XRDP lui-même. Ouvrons le fichier PKGBUILD n'importe quel éditeur de texte.

Modifions les paramètres de construction. Le PKGBUILD pour la construction de XRDP à partir de Git n'inclut pas le support vsock dans la construction, alors activons-le nous-mêmes :

 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
 }

Dans un patch arch-config.diff, les unités de contrôle et les scripts de démarrage XRDP sous les chemins de fichiers utilisés dans Arch Linux, contient un correctif pour le script instfiles/xrdp.sh, qui au moment de la rédaction a été supprimé depuis la distribution XRDP, le patch devra donc être édité manuellement :

  [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

Construisez et installez le package avec la commande % makepkg --skipchecksums -si (clé --skipchecksums est nécessaire pour désactiver la vérification de la somme de contrôle des fichiers source, car nous les avons modifiés manuellement).

Allons au répertoire xorgxrdp-devel-git, après quoi nous construisons simplement le package avec la commande % makepkg -si.

Allons au répertoire linux-vm-tools/arch et exécutez le script install-config.sh, qui définit les paramètres XRDP, PolicyKit et PAM :

% sudo ./install-config.sh

Le script installe le paramètre hérité use_vsock, qui est ignoré depuis la version 0.9.11, éditons donc le fichier de configuration /etc/xrdp/xrdp.ini manuellement:

 ;   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

Ajouter au fichier ~/.xinitrc lancer votre gestionnaire de fenêtres/environnement de bureau préféré, qui sera exécuté au démarrage du serveur X :

% echo "exec i3" > ~/.xinitrc

Désactivons la machine virtuelle. Activez le transport vsock pour la VM en exécutant la commande suivante dans PowerShell en tant qu'administrateur :

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

Allumons à nouveau la machine virtuelle.

Подключение

Dès que le service XRDP démarre après le démarrage du système, l'application vmconnect le déterminera et l'élément de menu deviendra disponible. Consultation -> Séance renforcée. Lorsque vous sélectionnez cet élément, nous serons invités à définir la résolution de l'écran, et sur l'onglet Ressources locales dans la boîte de dialogue qui s'ouvre, vous pouvez sélectionner les appareils transférés dans la session RDP.

Activation du mode session amélioré pour Arch Linux-invités dans Hyper-V
Activation du mode session amélioré pour Arch Linux-invités dans Hyper-V

Connectons-nous. Nous verrons la fenêtre de connexion XRDP :

Activation du mode session amélioré pour Arch Linux-invités dans Hyper-V

Entrez votre nom d'utilisateur et votre mot de passe.

l'utilisation de

Le bénéfice de ces manipulations est perceptible : la session RDP fonctionne de manière beaucoup plus réactive que lorsque l'on travaille avec un affichage virtuel sans Enhanced Session. Les disques transférés à l'intérieur de la VM via RDP sont disponibles dans le répertoire ${HOME}/shared-drives:

Activation du mode session amélioré pour Arch Linux-invités dans Hyper-V

Le presse-papiers fonctionne bien. Vous ne pouvez pas jeter d'imprimantes à l'intérieur, non seulement ce n'est pas pris en charge, mais aussi interrompt le transfert de disque. Le son ne fonctionne pas non plus, mais l'auteur n'en avait pas besoin. Afin de capturer des raccourcis clavier comme Alt + Tab, vous devez développer vmconnect en plein écran.

Si pour une raison quelconque vous souhaitez utiliser l'application vmconnect intégrée au lieu de Windows Si vous utilisez un client RDP ou si vous vous connectez à cette machine depuis une autre machine, vous devrez modifier le fichier. /etc/xrdp/xrdp.ini port sur tcp://:3389. Si la machine virtuelle est connectée au commutateur par défaut et reçoit les paramètres réseau via DHCP, vous pouvez vous y connecter depuis l'hôte à название_машины.mshome.net. Vous ne pouvez vous connecter à TTY qu'à partir de l'application vmconnect en désactivant le mode amélioré.

Sources utilisées:

  1. Wiki Arch Hyper-V
  2. Rapports de bugs sur GitHub : 1, 2

Source: habr.com

Achetez un hébergement fiable pour les sites avec protection DDoS, serveurs VPS VDS 🔥 Achetez un hébergement web fiable avec protection DDoS, serveurs VPS et VDS | ProHoster