Aktivéiert Enhanced Sessiounsmodus fir Arch Linux Gäscht an Hyper-V

Aktivéiert Enhanced Sessiounsmodus fir Arch Linux Gäscht an Hyper-V

Mat Linux virtuelle Maschinnen an Hyper-V aus der Këscht ass eng liicht manner bequem Erfahrung wéi d'Benotzung vu Windows Gaaschtmaschinnen. De Grond dofir ass datt Hyper-V net ursprénglech fir Desktop benotzt gouf; Dir kënnt net nëmmen e Pak vun Gaascht Ergänzunge installéieren a funktionell Grafikbeschleunigung kréien, e Clipboard, gemeinsame Verzeichnisser an aner Freed vum Liewen, wéi geschitt an VirtualBox.

Hyper-V selwer bitt verschidde Integratiounsservicer - also, Gäscht kënnen de Shadow Copy Service vum Host (VSS) benotzen, Gäscht kënnen e Shutdown-Signal schécken, Gäscht kënnen d'Systemzäit mam Virtualiséierungshost synchroniséieren, Dateie kënne vum Host mat der virtueller Maschinn ausgetauscht ginn (Copy-VMFile an PowerShell). Fir e puer Gaaschtbetribssystemer, dorënner natierlech Windows, an der Virtual Machine Connection Applikatioun (vmconnect.exe) Enhanced Session Mode ass verfügbar, funktionnéiert iwwer de RDP Protokoll an erlaabt Iech Disk-Geräter an Dréckeren op déi virtuell Maschinn ze transferéieren, souwéi e gemeinsame Clipboard ze benotzen.

Enhanced Session Mode funktionnéiert aus der Këscht am Windows am Hyper-V direkt no der Installatioun. Mat Gäscht op Linux musst Dir e RDP-Server installéieren deen vsock ënnerstëtzt (e spezielle virtuelle Netzwierkadressraum am Linux entwéckelt fir Kommunikatioun mam Hypervisor). Wann fir Ubuntu an der VMCreate Applikatioun déi mat Hyper-V op Desktop Editioune vu Windows kënnt, gëtt et eng speziell virbereet virtuell Maschinn Schabloun an där en RDP Server mat vsock schafft XRDP scho virinstalléiert, dann ass et mat anere Verdeelungen ëmmer manner kloer - zum Beispill den Auteur dësem Post Ech hunn et fäerdeg bruecht ESM an Fedora z'aktivéieren. Hei wäerte mir den Enhanced Session Mode fir d'Arch Linux virtuell Maschinn aktivéieren.

Installatioun vun Integratioun Servicer

Alles ass méi oder manner einfach hei, mir brauche just de Package z'installéieren hyperv aus dem Gemeinschaftsdepot:

% sudo pacman -S hyperv

Loosst eis VSS an Austauschservicer aktivéieren metadaten an Dateien:

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

XRDP installéieren

repository linux-vm-tools op GitHub bitt Scripten déi de Prozess vun der Installatioun an der Konfiguratioun vun XRDP fir Arch Linux an Ubuntu automatiséieren. Loosst eis Git installéieren, wann et net scho installéiert ass, zesumme mam Compiler an aner Software fir manuell Builds, a klon dann de Repository:

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

Zu der Zäit vum Schreiwen vun dësem Artikel, déi lescht Verëffentlechung vun XRDP, déi vum Skript installéiert ass makepkg.shdeen am Repository proposéiert ass 0.9.11, an deem Parsing gebrach ass vsock://-Adressen, also musst Dir XRDP vu Git an den Xorg Chauffer fir et vun AUR manuell installéieren. Den XRDP Patch, deen an der AUR offréiert gëtt, ass och liicht verännert, sou datt Dir de PKGBUILD a Patch manuell muss änneren.

Loosst eis Repositories mat PKGBUILDs vun AUR klonen (normalerweis ass dës Prozedur, zesumme mam Build, automatiséiert vu Programmer wéi Wouerechten, awer den Auteur huet dës ganz Prozedur op engem proppere System gemaach):

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

Loosst eis XRDP selwer als éischt installéieren. Loosst eis d'Datei opmaachen PKGBUILD all Text Editor.

Loosst eis d'Bauparameter änneren. PKGBUILD fir XRDP vum Git ze bauen enthält net vsock Support beim Bauen, also loosst eis et selwer aktivéieren:

 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
 }

Am Patch arch-config.diff, déi Unitéiten an XRDP-Startskripter ënner de Dateiweeër geréiert, déi am Arch Linux benotzt ginn, enthält och e Patch zum Skript instfiles/xrdp.sh, déi am Schreiwen geläscht gouf vun der XRDP Verdeelung, sou datt de Patch manuell muss geännert ginn:

  [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

Loosst eis de Package mat dem Kommando kompiléieren an installéieren % makepkg --skipchecksums -si (Schlëssel --skipchecksums néideg fir d'Kontrollsumverifikatioun vu Quelldateien auszeschalten, well mir se manuell geännert hunn).

Loosst eis an den Dossier goen xorgxrdp-devel-git, no deem mir einfach de Package mam Kommando zesummesetzen % makepkg -si.

Loosst eis an den Dossier goen linux-vm-tools/arch a lafen de Skript install-config.sh, déi XRDP, PolicyKit a PAM Astellunge setzt:

% sudo ./install-config.sh

Skript installéiert Legacy Astellung use_vsock, déi zënter Versioun 0.9.11 ignoréiert gouf, also loosst eis d'Konfiguratiounsdatei änneren /etc/xrdp/xrdp.ini manuell:

 ;   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

Add to file ~/.xinitrc lancéiert Äre gewënschte Fënstermanager / Desktop-Ëmfeld, deen ausgefouert gëtt wann den X Server ufänkt:

% echo "exec i3" > ~/.xinitrc

Loosst eis déi virtuell Maschinn ausschalten. Mir aktivéieren den vsock Transport fir déi virtuell Maschinn andeems Dir de folgende Kommando an PowerShell als Administrator leeft:

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

Loosst eis d'virtuell Maschinn erëm opmaachen.

Konnektivitéit

Soubal den XRDP Service ufänkt nodeems de System ufänkt, wäert d'vmconnect Applikatioun dëst erkennen an den Artikel gëtt am Menü verfügbar View -> Erweidert Sëtzung. Wann Dir dëst Element auswielen, wäerte mir opgefuerdert ginn d'Bildschirmopléisung ze setzen, an op der Tab Lokal Ressourcen Am Dialog deen opmaacht, kënnt Dir Apparater auswielen fir an d'RDP Sessioun weidergeleet ze ginn.

Aktivéiert Enhanced Sessiounsmodus fir Arch Linux Gäscht an Hyper-V
Aktivéiert Enhanced Sessiounsmodus fir Arch Linux Gäscht an Hyper-V

Loosst eis konnektéieren. Mir gesinn d'XRDP Loginfenster:

Aktivéiert Enhanced Sessiounsmodus fir Arch Linux Gäscht an Hyper-V

Gitt Äre Benotzernumm a Passwuert.

Benotzt

De Virdeel vun dëse Manipulatiounen ass bemierkenswäert: d'RDP-Sessioun funktionnéiert vill méi reaktiounsfäeger wéi wann Dir mat engem virtuelle Display ouni Enhanced Sessioun schafft. Disks, déi am VM iwwer RDP erofgefall sinn, sinn am Verzeechnes verfügbar ${HOME}/shared-drives:

Aktivéiert Enhanced Sessiounsmodus fir Arch Linux Gäscht an Hyper-V

De Clipboard funktionnéiert gutt. Dir kënnt Drécker net dobannen weiderginn; dëst gëtt net nëmmen net ënnerstëtzt, awer och brécht Disk Forwarding. De Sound funktionéiert och net, mee den Auteur huet dat net gebraucht. Fir Tastatur Ofkiirzungen wéi Alt + Tab z'erfëllen, musst Dir vmconnect op Vollbildschierm ausbauen.

Wann Dir aus irgendege Grënn de RDP-Client a Windows benotze wëllt anstatt d'vmconnect Applikatioun oder, zum Beispill, mat dëser Maschinn vun enger anerer Maschinn verbannen, da musst Dir d'Datei änneren /etc/xrdp/xrdp.ini port op tcp://:3389. Wann déi virtuell Maschinn mam Standardschalter ugeschloss ass an d'Netzwierksastellungen iwwer DHCP kritt, da kënnt Dir et vum Host verbannen название_машины.mshome.net. Dir kënnt nëmmen op TTY vun der vmconnect Applikatioun aloggen andeems Dir den Enhanced Mode ausschalt.

Benotzt Quellen:

  1. Hyper-V - Arch Wiki
  2. Bug Berichter op GitHub: 1, 2

Source: will.com

Setzt e Commentaire