Aktiveer verbeterde sessiemodus vir Arch Linux-gaste in Hyper-V

Aktiveer verbeterde sessiemodus vir Arch Linux-gaste in Hyper-V

Die gebruik van virtuele Linux-masjiene in Hyper-V uit die boks is 'n effens minder gemaklike ervaring as om Windows-gasmasjiene te gebruik. Die rede hiervoor is dat Hyper-V nie oorspronklik bedoel was vir rekenaargebruik nie; jy kan nie net 'n pakket van gaste byvoegings installeer en funksionele grafiese versnelling, 'n knipbord, gedeelde gidse en ander vreugdes van die lewe kry, soos in VirtualBox gebeur nie.

Hyper-V self verskaf verskeie integrasiedienste - dus, gaste kan die gasheer se skadukopiediens (VSS) gebruik, gaste kan 'n afskakelsein stuur, gaste kan die stelseltyd met die virtualisasiegasheer sinchroniseer, lêers kan van die gasheer met die virtuele masjien uitgeruil word (Copy-VMFile in PowerShell). Vir sommige gasbedryfstelsels, insluitend natuurlik Windows, in die Virtual Machine Connection-toepassing (vmconnect.exe) Verbeterde Sessiemodus is beskikbaar, werk via die RDP-protokol en stel jou in staat om skyftoestelle en drukkers na die virtuele masjien oor te dra, asook om 'n gedeelde knipbord te gebruik.

Verbeterde sessiemodus werk uit die boks in Windows in Hyper-V onmiddellik na installasie. Met gaste op Linux, moet jy 'n RDP-bediener installeer wat vsock ondersteun ('n spesiale virtuele netwerkadresspasie in Linux wat ontwerp is vir kommunikasie met die hipervisor). As vir Ubuntu in die VMCreate-toepassing wat saam met Hyper-V op rekenaaruitgawes van Windows kom, is daar 'n spesiale voorbereide virtuele masjien-sjabloon waarin 'n RDP-bediener met vsock werk XRDP reeds vooraf geïnstalleer, dan is dit met ander verspreidings al hoe minder duidelik - byvoorbeeld die skrywer hierdie pos Ek het daarin geslaag om ESM in Fedora te aktiveer. Hier sal ons verbeterde sessiemodus aktiveer vir die Arch Linux virtuele masjien.

Installeer integrasiedienste

Alles is min of meer eenvoudig hier, ons moet net die pakket installeer hyperv uit die gemeenskapsbewaarplek:

% sudo pacman -S hyperv

Kom ons aktiveer VSS en uitruildienste metadata en lêers:

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

Installeer XRDP

bewaarplek linux-vm-nutsgoed op GitHub bied skrifte wat die proses van installering en konfigurasie van XRDP vir Arch Linux en Ubuntu outomatiseer. Kom ons installeer Git, as dit nie reeds geïnstalleer is nie, saam met die samesteller en ander sagteware vir handmatige bou, en kloon dan die bewaarplek:

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

Ten tyde van die skryf van hierdie artikel, die nuutste weergawe van XRDP, wat deur die skrif geïnstalleer is makepkg.shdie een wat in die bewaarplek voorgestel word, is 0.9.11, waarin ontleding gebreek is vsock://-adresse, so jy sal XRDP vanaf Git en die Xorg-bestuurder daarvoor vanaf AUR met die hand moet installeer. Die XRDP-pleister wat in die AUR aangebied word, is ook effens verouderd, so jy sal die PKGBUILD en die pleister met die hand moet wysig.

Kom ons kloon bewaarplekke met PKGBUILD's van AUR (gewoonlik word hierdie prosedure, saam met die bou, geoutomatiseer deur programme soos yay, maar die skrywer het hierdie hele prosedure op 'n skoon stelsel gedoen):

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

Kom ons installeer XRDP self eers. Kom ons maak die lêer oop PKGBUILD enige teksredigeerder.

Kom ons wysig die bouparameters. PKGBUILD vir die bou van XRDP vanaf Git sluit nie vsock-ondersteuning in wanneer jy bou nie, so laat ons dit self aktiveer:

 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 die pleister arch-config.diff, wat eenhede en XRDP-bekendstellingsskrifte bestuur onder die lêerpaaie wat in Arch Linux gebruik word, bevat ook 'n pleister vir die skrif instfiles/xrdp.sh, wat ten tyde van die skryf hiervan verwyder is vanaf die XRDP-verspreiding, dus sal die pleister met die hand gewysig moet word:

  [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

Kom ons stel en installeer die pakket met die opdrag % makepkg --skipchecksums -si (sleutel --skipchecksums nodig om kontrolesomverifikasie van bronlêers uit te skakel, aangesien ons dit handmatig geredigeer het).

Kom ons gaan na die gids xorgxrdp-devel-git, waarna ons eenvoudig die pakket saamstel met die opdrag % makepkg -si.

Kom ons gaan na die gids linux-vm-tools/arch en voer die skrip uit install-config.sh, wat XRDP, PolicyKit en PAM instellings stel:

% sudo ./install-config.sh

Skrip installeer verouderde instelling use_vsock, wat sedert weergawe 0.9.11 geïgnoreer is, so kom ons wysig die konfigurasielêer /etc/xrdp/xrdp.ini handmatig:

 ;   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

Voeg by lêer ~/.xinitrc die begin van u voorkeurvensterbestuurder/lessenaaromgewing, wat uitgevoer sal word wanneer die X-bediener begin:

% echo "exec i3" > ~/.xinitrc

Kom ons skakel die virtuele masjien af. Ons aktiveer die vsock-vervoer vir die virtuele masjien deur die volgende opdrag in PowerShell as administrateur uit te voer:

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

Kom ons skakel die virtuele masjien weer aan.

Подключение

Sodra die XRDP-diens begin nadat die stelsel begin het, sal die vmconnect-toepassing dit opspoor en die item sal in die kieslys beskikbaar wees Besigtig -> Verbeterde Sessie. Wanneer ons hierdie item kies, sal ons gevra word om die skermresolusie te stel, en op die oortjie Plaaslike hulpbronne In die dialoog wat oopmaak, kan u toestelle kies wat na die HOP-sessie gestuur moet word.

Aktiveer verbeterde sessiemodus vir Arch Linux-gaste in Hyper-V
Aktiveer verbeterde sessiemodus vir Arch Linux-gaste in Hyper-V

Kom ons verbind. Ons sal die XRDP-aanmeldvenster sien:

Aktiveer verbeterde sessiemodus vir Arch Linux-gaste in Hyper-V

Voer jou gebruikersnaam en wagwoord in.

Gebruik

Die voordeel van hierdie manipulasies is opvallend: die RDP-sessie werk baie meer reageer as wanneer daar met 'n virtuele skerm sonder Verbeterde Sessie gewerk word. Skywe wat binne die VM via RDP gegooi word, is in die gids beskikbaar ${HOME}/shared-drives:

Aktiveer verbeterde sessiemodus vir Arch Linux-gaste in Hyper-V

Die knipbord werk goed. Jy kan nie drukkers binne aanstuur nie; dit word nie net nie ondersteun nie, maar ook breek skyfaanstuur. Die klank werk ook nie, maar die skrywer het dit nie nodig gehad nie. Om sleutelbordkortpaaie soos Alt+Tab vas te vang, moet jy vmconnect na volskerm uitbrei.

As jy om een ​​of ander rede die RDP-kliënt wat in Windows ingebou is in plaas van die vmconnect-toepassing wil gebruik of byvoorbeeld vanaf 'n ander masjien aan hierdie masjien wil koppel, dan sal jy die lêer moet verander /etc/xrdp/xrdp.ini port op tcp://:3389. As die virtuele masjien aan verstekskakelaar gekoppel is en netwerkinstellings via DHCP ontvang, kan jy vanaf die gasheer daaraan koppel by название_машины.mshome.net. U kan slegs vanaf die vmconnect-toepassing by TTY aanmeld deur Verbeterde modus af te skakel.

Gebruikte bronne:

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

Bron: will.com

Voeg 'n opmerking