Aktivera Enhanced Session Mode för Arch Linux-gÀster i Hyper-V

Aktivera Enhanced Session Mode för Arch Linux-gÀster i Hyper-V

AnvÀndning av virtuella maskiner pÄ Linux i Hyper-V Àr i allmÀnhet nÄgot mindre bekvÀmt Àn med Windows-gÀstmaskiner. Anledningen till detta Àr att Hyper-V ursprungligen inte var avsett för desktop-anvÀndning; man kan helt enkelt inte installera gÀsttillÀggspaket och fÄ fungerande grafisk acceleration, gemensamma utrymmen eller andra bekvÀmligheter som i VirtualBox.

Hyper-V tillhandahĂ„ller flera integrationsservrar — sĂ„ gĂ€ster kan anvĂ€nda vĂ€rdens skuggbaserade kopieringstjĂ€nst (VSS), signaler för avstĂ€ngning kan sĂ€ndas till gĂ€ster, gĂ€ster kan synkronisera systemtid med virtualiseringsvĂ€rden och filutbyte Ă€r möjligt mellan vĂ€rden och den virtuella maskinen (Copy-VMFile i PowerShell). För vissa gĂ€stoperativsystem, dĂ€ribland Windows, Ă€r förbĂ€ttrat sessionslĂ€ge tillgĂ€ngligt i applikationen Virtual Machine Connection (vmconnect.exe) som anvĂ€nder RDP-protokollet och möjliggör vidarebefordran av enheter och skrivare till den virtuella maskinen, samt anvĂ€ndning av delad urklipp.

FörbĂ€ttrat sessionslĂ€ge fungerar omedelbart i Windows i Hyper-V direkt efter installationen. Med Linux-gĂ€ster behöver man installera en RDP-server som stöder vsock (ett speciellt virtuellt nĂ€tverksadressutrymme i Linux, avsett för kommunikation med hypervisorn). Om Ubuntu har en speciellt förberedd mall för virtuella maskiner i VMCreate-applikationen, som följer med Hyper-V pĂ„ desktoputgĂ„vor av Windows, dĂ€r den RDP-server som arbetar med vsock, XRDP redan Ă€r förinstallerad, sĂ„ Ă€r det mer otydligt med andra distributioner — författaren av detta inlĂ€gg kunde aktivera ESM i Fedora. HĂ€r aktiverar vi förbĂ€ttrat sessionslĂ€ge för den virtuella maskinen med Arch Linux.

Installation av integrationsservrar

HÀr Àr det mer eller mindre enkelt, vi behöver bara installera paketet hyperv frÄn community-repositoriet:

% sudo pacman -S hyperv

Vi aktiverar VSS-servrar, metadata och filutbyte: % for i in {vss,fcopy,kvp}; do sudo systemctl enable hv_${i}_daemon.service; done

Installation av XRDP

linux-vm-tools

FörrÄd pÄ GitHub erbjuder skript som automatiserar installations- och konfigurationsprocessen för XRDP, för Arch Linux och Ubuntu. LÄt oss installera Git om det inte redan Àr installerat, tillsammans med en kompilator och annan programvara för manuella byggen, och sedan klona vi förrÄdet: % sudo pacman -S git base-devel % git clone https://github.com/microsoft/linux-vm-tools.git % cd linux-vm-tools/arch

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

Vid tidpunkten för denna artikels skrivande Àr den senaste versionen av XRDP, som installeras via skriptet makepkg.sh, som föreslÄs i repositoryt, 0.9.11, dÀr parsningen vsock://-adresser Àr bruten, sÄ du mÄste installera XRDP frÄn Git och Xorg-drivrutinen frÄn AUR manuellt. Patchen till XRDP, som erbjuds i AUR, Àr ocksÄ nÄgot förÄldrad, sÄ du mÄste redigera PKGBUILD och patchen manuellt.

Vi klonar repositories med PKGBUILD:er frÄn AUR (denna procedur automatiseras vanligtvis tillsammans med byggandet av program som yay, men författaren har genomfört hela denna procedur pÄ ett rent system):

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

Vi installerar först XRDP. Öppna filen PKGBUILD med valfri textredigerare.

Vi redigerar byggparametrarna. PKGBUILD för att bygga XRDP frÄn Git inkluderar inte stöd för vsock vid byggandet, sÄ vi aktiverar det sjÀlva:

 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
 }

I patchen arch-config.diff, som justerar enheterna och startskripten för XRDP till vÀgarna för filerna som anvÀnds i Arch Linux, finns ocksÄ en patch till skriptet instfiles/xrdp.sh, som, vid tidpunkten för denna artikels skrivande, hade tagits bort frÄn XRDP-distributionen, sÄ patchen mÄste redigeras manuellt:

  [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 @@
- # Beskrivning: startar xrdp
- ### SLUT 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

Vi bygger och installerar paketet med kommandot % makepkg --skipchecksums -si (nyckeln --skipchecksums behövs för att stÀnga av kontrollsummekontrollen av kÀllfilerna, eftersom vi har redigerat dem manuellt).

Vi gÄr till katalogen xorgxrdp-devel-git, varefter vi helt enkelt bygger paketet med kommandot % makepkg -si.

Vi gÄr till katalogen linux-vm-tools/arch och kör skriptet install-config.sh, som installerar instÀllningar för XRDP, PolicyKit och PAM:

% sudo ./install-config.sh

Skriptet installerar den förÄldrade instÀllningen use_vsock, som ignoreras frÄn version 0.9.11, sÄ vi redigerar konfigurationsfilen /etc/xrdp/xrdp.ini manuellt:

 ;   port=vsock://:
-port=3389
+port=vsock://-1:3389

 ; 'port' ovan bör anslutas med vsock istÀllet för tcp
 ; anvÀnd detta endast med nummer ensam i port ovan
 ; föredra att anvÀnda vsock://: ovan
-use_vsock=true
+;use_vsock=true

 ; reglera om den lyssnande socketen anvÀnder socket alternativ tcp_nodelay

LÀgg till i filen ~/. starta din föredragna fönsterhanterare / skrivbordsmiljö som kommer att köras vid starten av X-servern:

% echo "exec i3" > ~/.

StÀng av den virtuella maskinen. Aktivera transport vsock för den virtuella maskinen genom att köra följande kommando i PowerShell som administratör:

PS Admin > Set-VM -VMName MASKINNAMN -EnhancedSessionTransportType HvSocket

SÀtt pÄ den virtuella maskinen igen.

Anslutning

NÀr XRDP-tjÀnsten startas efter systemstart kommer applikationen vmconnect att kÀnna av detta och menyn kommer att fÄ ett alternativ View -> Enhanced Session. Vid val av detta alternativ kommer vi att bli erbjudna att stÀlla in skÀrmupplösning och pÄ fliken Local Resources i den öppnade dialogrutan kan vi vÀlja enheter som ska vidarebefordras till RDP-sessionen.

Aktivera Enhanced Session Mode för Arch Linux-gÀster i Hyper-V
Aktivera Enhanced Session Mode för Arch Linux-gÀster i Hyper-V

Vi ansluter. Vi ser XRDP-inloggningsfönstret:

Aktivera Enhanced Session Mode för Arch Linux-gÀster i Hyper-V

Ange ditt anvÀndarnamn och lösenord.

AnvÀndning

Vinsten av dessa manipulationer Àr mÀrkbar: RDP-sessionen fungerar mycket mer responsivt Àn nÀr du arbetar med en virtuell skÀrm utan Enhanced Session. Dela diskar inne i VM via RDP Àr tillgÀngliga i katalogen ${HOME}/shared-drives:

Aktivera Enhanced Session Mode för Arch Linux-gÀster i Hyper-V

Urklipp fungerar bra. Att vidarebefordra skrivare inÄt Àr inte bara inte stöd, utan skadar vidarebefordringen av diskar. Ljud fungerar inte heller, men det behovdes inte. För att fÄnga tangentkombinationer som Alt+Tab, mÄste vmconnect köras i helskÀrm.

Om det av nÄgon anledning finns önskan att anvÀnda den inbyggda Windows RDP-klienten istÀllet för applikationen vmconnect eller att ansluta till denna maskin frÄn en annan maskin, mÄste du Àndra i filen /etc/xrdp/xrdp.ini port till tcp://:3389. Om den virtuella maskinen Àr ansluten till Default Switch och fÄr nÀtverksinstÀllningar via DHCP, kan du ansluta till den frÄn vÀrden via adressen maskinnamn.mshome.net. Du kan bara logga in i TTY frÄn applikationen vmconnect, genom att stÀnga av Enhanced Mode.

AnvÀnda kÀllor:

  1. Hyper-V — Arch Wiki
  2. Buggrapporter pÄ GitHub: 1, 2

KĂ€lla: habr.com

Köp pĂ„litlig webbhotell med DDoS-skydd, VPS VDS-servrar đŸ”„ Köp pĂ„litlig webbhotell med DDoS-skydd, VPS VDS-servrar | ProHoster