Attivazione di a Modalità di Sessione Migliorata per Arch Linux-ospiti in Hyper-V

Attivazione di a Modalità di Sessione Migliorata per Arch Linux-ospiti in Hyper-V

Usendu macchine virtuali nantu à Linux In Hyper-V, fora di a scatula hè una sperienza un pocu menu cunfurtevule chè cù l'ospiti Windows-machine. A ragione di questu hè chì Hyper-V ùn hè statu inizialmente cuncipitu per l'usu di desktop; ùn pudete micca simpricimenti installà u pacchettu Guest Additions è ottene l'accelerazione grafica funzionale, u clipboard, i cartulari spartuti è altri vantaghji, cum'è pudete fà cù VirtualBox.

Hyper-V stessu furnisce servizii di integrazione multipli - cusì, l'ospiti ponu utilizà u serviziu di copia d'ombra (VSS) di l'ospite, l'ospiti ponu mandà un signalu di chjusu, l'ospiti ponu sincronizà u tempu di u sistema cù l'ospite di virtualizazione, i schedari ponu esse scambiati cù a macchina virtuale da l'ospite (Copy-VMFile in PowerShell). Per certi sistemi operativi invitati, chì includenu benintesa Windows, in l'applicazione Cunnessione di Macchina Virtuale (vmconnect.exe) U Modu di Sessione Enhanced hè dispunibule, chì travaglia via u protokollu RDP è vi permette di rinvià i dispositi di discu è l'imprese à a macchina virtuale, è ancu aduprà u clipboard spartutu.

A modalità di sessione migliorata funziona subitu Windows in Hyper-V subitu dopu l'installazione. Cù invitati accesi Linux avete bisognu d'installà un servitore RDP chì supporta vsock (un spaziu d'indirizzu di rete virtuale speciale in Linux, cuncipitu per cumunicà cù l'ipervisore). Sè per Ubuntu in l'applicazione VMCreate chì vene cun Hyper-V nantu à l'edizioni desktop Windows, ci hè un mudellu di macchina virtuale preparatu speciale in u quale un servitore RDP funziona cù vsock XRDP digià preinstallatu, dopu cù altre distribuzioni hè menu è menu chjaru - per esempiu, l'autore stu postu Avemu riesciutu à attivà ESM in Fedora. Quì attivemu ancu a Modalità di Sessione Migliorata per a macchina virtuale Arch. Linux.

Installazione di servizii d'integrazione

Tuttu hè più o menu simplice quì, avemu solu bisognu di stallà u pacchettu hyperv da u repositoriu di a cumunità:

% sudo pacman -S hyperv

Habilita i servizii VSS, scambià metadata è i schedari:

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

Installazione XRDP

repository linux-vm-tools furnisce scripts nantu à GitHub chì automatizanu u prucessu d'installazione è cunfigurazione di XRDP per Arch Linux и UbuntuInstallemu Git, s'ellu ùn hè micca digià installatu, cù un compilatore è altri prugrammi per e compilazioni manuali, è dopu clonemu u repositoriu:

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

A l'ora di sta scrittura, a versione più recente di XRDP, chì hè stallata da u script makepkg.shprupostu in u repository hè 0.9.11, in quale parsing hè rottu vsock://-addresses, cusì avete da installà XRDP da Git è u driver Xorg per questu da AUR manualmente. U patch per XRDP offrittu in l'AUR hè ancu un pocu anticu, cusì avete da edità u PKGBUILD è u patch manualmente.

Clonamu i repositori cù PKGBUILD da l'AUR (di solitu sta prucedura, cù l'assemblea, hè automatizata da prugrammi cum'è yay, ma l'autore hà fattu tutta sta prucedura nantu à un sistema pulitu):

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

Installemu prima XRDP stessu. Andemu apre u schedariu PKGBUILD qualsiasi editore di testu.

Editemu i paràmetri di custruzzione. U PKGBUILD per a custruzione di XRDP da Git ùn include micca u supportu vsock in a custruzzione, allora attivemu noi stessi:

 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
 }

In un patch arch-config.diff, unità dirigenti è script di avvio XRDP sottu i percorsi di file utilizati in Arch Linux, cuntene una patch per u script instfiles/xrdp.sh, chì à u mumentu di a scrittura hè statu cacciatu da a distribuzione XRDP, cusì u patch duverà esse editatu manualmente:

  [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

Custruite è installate u pacchettu cù u cumandimu % makepkg --skipchecksums -si (chiave --skipchecksums hè necessariu per disattivà a verificazione di checksum di i fugliali fonte, postu chì l'avemu editatu manualmente).

Andemu à u cartulare xorgxrdp-devel-git, dopu chì simpricimenti custruite u pacchettu cù u cumandimu % makepkg -si.

Andemu à u cartulare linux-vm-tools/arch è eseguite u script install-config.sh, chì stabilisce i paràmetri XRDP, PolicyKit è PAM:

% sudo ./install-config.sh

U script installeghja a paràmetra legacy use_vsock, chì hè ignoratu da a versione 0.9.11, dunque edità u schedariu di cunfigurazione /etc/xrdp/xrdp.ini manualmente:

 ;   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

Aghjunghjite à u schedariu ~/.xinitrc lanciari u vostru amministratore di finestra preferitu / ambiente di desktop, chì serà eseguitu quandu u servitore X hè iniziatu:

% echo "exec i3" > ~/.xinitrc

Spegnemu a macchina virtuale. Attivate u trasportu vsock per a VM eseguendu u cumandimu seguitu in PowerShell cum'è amministratore:

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

Accendemu a macchina virtuale di novu.

Подключение

Appena u serviziu XRDP principia dopu chì u sistema principia, l'applicazione vmconnect determinarà questu è l'elementu di menu diventerà dispunibule. Veduta -> Sessione rinfurzata. Quandu sceglite stu articulu, avemu da esse dumandatu à stabilisce a risoluzione di u screnu, è nantu à a tabulazione Risorse Locali in u dialogu chì si apre, pudete selezziunate i dispositi trasmessi in a sessione RDP.

Attivazione di a Modalità di Sessione Migliorata per Arch Linux-ospiti in Hyper-V
Attivazione di a Modalità di Sessione Migliorata per Arch Linux-ospiti in Hyper-V

Cunnettamu. Vedemu a finestra di login XRDP:

Attivazione di a Modalità di Sessione Migliorata per Arch Linux-ospiti in Hyper-V

Inserite u vostru nome d'utilizatore è password.

Usu

U prufittu di sti manipulazioni hè notu: a sessione RDP travaglia assai più responsiva chì quandu travaglia cù una visualizazione virtuale senza Session Enhanced. I dischi trasmessi in a VM via RDP sò dispunibuli in u cartulare ${HOME}/shared-drives:

Attivazione di a Modalità di Sessione Migliorata per Arch Linux-ospiti in Hyper-V

U clipboard funziona bè. Ùn pudete micca scaccià stampanti in l'internu, questu ùn hè micca solu supportatu, ma ancu rompe l'invio di discu. U sonu ùn hè micca travagliatu, ma l'autore ùn hà micca bisognu. Per catturà scorciatoie di tastiera cum'è Alt + Tab, avete bisognu di espansione vmconnect à a pantalla completa.

Sè per qualchì ragione vulete aduprà l'applicazione vmconnect integrata invece di Windows Cliente RDP o, per esempiu, cunnette si à sta macchina da un'altra macchina, allora duverete cambià u schedariu /etc/xrdp/xrdp.ini port nantu tcp://:3389. Se a macchina virtuale hè cunnessa à u Switch Default è riceve paràmetri di rete via DHCP, pudete cunnette vi da l'ospite à название_машины.mshome.net. Pudete accede à TTY solu da l'applicazione vmconnect disattivendu u Modu Enhanced.

Fonti aduprate:

  1. Hyper-V Arch Wiki
  2. Rapporti di bug in GitHub: 1, 2

Source: www.habr.com

Cumprate un hosting affidabile per i siti cù prutezzione DDoS, servitori VPS VDS 🔥 Cumprate un hosting di siti web affidabile cù prutezzione DDoS, servitori VPS VDS | ProHoster