Abilita u Modu di Sessione Enhanced per l'ospiti Arch Linux in Hyper-V
Utilizà e macchine virtuali Linux in Hyper-V fora di a scatula hè un pocu menu cunfortu cà cù e macchine Windows invitati. U mutivu di questu hè chì Hyper-V ùn era micca uriginale destinatu à l'usu di desktop; Ùn pudete micca solu andà avanti è installà u pacchettu di l'aghjunzione di l'ospiti è uttene accelerazione grafica praticabile, clipboard, repertorii spartuti è altre gioia di a vita, cum'è succede in 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, cumpresu, sicuru, Windows, in l'applicazione Virtual Machine Connection (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.
Modu Session Enhanced funziona fora di a scatula in Windows in Hyper-V subitu dopu a stallazione. Cù invitati in Linux, avete bisognu di installà un servitore RDP chì supporta vsock (un spaziu d'indirizzu virtuale speciale in Linux cuncepitu per cumunicà cù l'ipervisore). Se per Ubuntu, l'applicazione VMCreate chì vene cù Hyper-V in l'edizioni desktop di Windows hà un mudellu speciale di macchina virtuale preparatu in quale un servitore RDP in esecuzione cù vsock XRDP digià preinstallatu, dopu cù altre distribuzioni hè menu è menu chjaru - per esempiu, l'autore stu postu hè risultatu per attivà ESM in Fedora. Quì avemu ancu attivatu u Modu di Sessione Enhanced 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 in GitHub furnisce script chì automatizanu u prucessu di installà è cunfigurà XRDP per Arch Linux è Ubuntu. Installa Git, s'ellu ùn hè micca digià stallatu, cù u compilatore è l'altru software per e custruzzioni manuali, è poi clone u repository:
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è rottuvsock://-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):
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:
In un patch arch-config.diff, chì edita unità è script di startup XRDP sottu i chjassi à i schedari utilizati in Arch Linux, cuntene, frà altre cose, un patch à 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:
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:
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.
Cunnettamu. Vedemu a finestra di login XRDP:
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:
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.
Se per una certa ragione ci hè un desideriu di utilizà u cliente RDP integratu in Windows invece di l'applicazione vmconnect o, per esempiu, cunnette à sta macchina da un'altra macchina, allora vi tuccherà à cambià u schedariu. /etc/xrdp/xrdp.iniport 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.