Virkjaðu aukna lotuham fyrir Arch Linux gesti í Hyper-V

Virkjaðu aukna lotuham fyrir Arch Linux gesti í Hyper-V

Að nota Linux sýndarvélar í Hyper-V utan kassans er aðeins óþægilegri upplifun en að nota Windows gestavélar. Ástæðan fyrir þessu er sú að Hyper-V var upphaflega ekki ætlað til skrifborðsnotkunar; þú getur ekki bara sett upp pakka af gestaviðbótum og fengið hagnýta grafíkhröðun, klemmuspjald, sameiginlegar möppur og aðra gleði lífsins, eins og gerist í VirtualBox.

Hyper-V sjálft veitir nokkrar samþættingarþjónustur - þannig að gestir geta notað skuggaafritunarþjónustu gestgjafans (VSS), gestir geta sent lokunarmerki, gestir geta samstillt kerfistímann við sýndarvæðingarhýsilinn, hægt er að skiptast á skrám frá gestgjafanum með sýndarvélinni (Copy-VMFile í PowerShell). Fyrir sum gestastýrikerfi, þar á meðal auðvitað Windows, í Virtual Machine Connection forritinu (vmconnect.exe) Aukinn lotuhamur er fáanlegur, vinnur með RDP samskiptareglunum og gerir þér kleift að flytja diskatæki og prentara yfir á sýndarvélina, auk þess að nota sameiginlega klemmuspjald.

Enhanced Session Mode virkar beint úr kassanum á Windows í Hyper-V beint úr kassanum. Með gestum á Linux þarftu að setja upp RDP netþjón sem styður vsock (sérstakt sýndarnetfangarými í Linux sem er hannað fyrir samskipti við hypervisor). Ef fyrir Ubuntu í VMCreate forritinu sem fylgir Hyper-V á skrifborðsútgáfum af Windows, þá er sérstakt tilbúið sýndarvélasniðmát þar sem RDP þjónn vinnur með vsock XRDP þegar foruppsett, þá er það minna og minna skýrt með öðrum dreifingum - til dæmis höfundurinn þessa færslu Mér tókst að virkja ESM í Fedora. Hér munum við virkja Enhanced Session Mode fyrir Arch Linux sýndarvélina.

Að setja upp samþættingarþjónustu

Allt er meira og minna einfalt hér, við þurfum bara að setja upp pakkann hyperv úr samfélagsgeymslunni:

% sudo pacman -S hyperv

Kveikjum á VSS og skiptiþjónustu lýsigögn og skrár:

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

Að setja upp XRDP

geymsla linux-vm-tól á GitHub býður upp á forskriftir sem gera sjálfvirkan ferlið við að setja upp og stilla XRDP fyrir Arch Linux og Ubuntu. Setjum upp Git, ef það er ekki þegar uppsett, ásamt þýðandanum og öðrum hugbúnaði fyrir handvirka smíði, og klónum síðan geymsluna:

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

Þegar þessi grein er skrifuð, nýjasta útgáfan af XRDP, sem er sett upp af handritinu makepkg.shsú sem lagt er til í geymslunni er 0.9.11, þar sem þáttun er biluð vsock://-heimilisföng, þannig að þú verður að setja upp XRDP frá Git og Xorg bílstjórinn fyrir það frá AUR handvirkt. XRDP plásturinn sem boðið er upp á í AUR er líka aðeins úreltur, svo þú verður að breyta PKGBUILD og plástrinum handvirkt.

Við skulum klóna geymslur með PKGBUILDs frá AUR (venjulega er þetta ferli, ásamt smíði, sjálfvirkt af forritum eins og bogi, en höfundurinn gerði alla þessa aðferð á hreinu kerfi):

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

Við skulum setja upp XRDP sjálft fyrst. Við skulum opna skrána PKGBUILD hvaða textaritil sem er.

Við skulum breyta byggingarbreytum. PKGBUILD til að byggja XRDP frá Git inniheldur ekki vsock stuðning við byggingu, svo við skulum virkja það sjálf:

 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
 }

Í plásturinn arch-config.diff, sem stjórnar einingum og XRDP ræsiforskriftum undir skráarslóðum sem notaðar eru í Arch Linux, inniheldur einnig plástur við skriftuna instfiles/xrdp.sh, sem þegar þetta er skrifað var fjarlægt frá XRDP dreifingunni, þannig að plásturinn verður að breyta handvirkt:

  [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

Við skulum setja saman og setja upp pakkann með skipuninni % makepkg --skipchecksums -si (lykill --skipchecksums þarf til að slökkva á eftirlitssummustaðfestingu upprunaskráa, þar sem við breyttum þeim handvirkt).

Við skulum fara í möppuna xorgxrdp-devel-git, eftir það setjum við einfaldlega saman pakkann með skipuninni % makepkg -si.

Við skulum fara í möppuna linux-vm-tools/arch og keyra handritið install-config.sh, sem setur XRDP, PolicyKit og PAM stillingar:

% sudo ./install-config.sh

Script setur upp eldri stillingar use_vsock, sem hefur verið hunsuð frá útgáfu 0.9.11, svo við skulum breyta stillingarskránni /etc/xrdp/xrdp.ini handvirkt:

 ;   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

Bæta við skrá ~/.xinitrc ræsir valinn gluggastjóra/skrifborðsumhverfi sem verður keyrt þegar X þjónninn byrjar:

% echo "exec i3" > ~/.xinitrc

Slökkum á sýndarvélinni. Við virkum vsock flutninginn fyrir sýndarvélina með því að keyra eftirfarandi skipun í PowerShell sem stjórnandi:

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

Kveikjum aftur á sýndarvélinni.

Подключение

Um leið og XRDP þjónustan byrjar eftir að kerfið byrjar mun vmconnect forritið uppgötva þetta og hluturinn verður aðgengilegur í valmyndinni Útsýni -> Auka fundur. Þegar þetta atriði er valið verðum við beðin um að stilla skjáupplausnina og á flipanum Staðbundin úrræði Í glugganum sem opnast geturðu valið tæki til að senda inn í RDP lotuna.

Virkjaðu aukna lotuham fyrir Arch Linux gesti í Hyper-V
Virkjaðu aukna lotuham fyrir Arch Linux gesti í Hyper-V

Tengjumst. Við munum sjá XRDP innskráningargluggann:

Virkjaðu aukna lotuham fyrir Arch Linux gesti í Hyper-V

Sláðu inn notandanafn og lykilorð.

Nota

Ávinningurinn af þessum meðhöndlun er áberandi: RDP lotan virkar mun móttækilegri en þegar unnið er með sýndarskjá án endurbættrar lotu. Diskar sem sleppt er inn í VM í gegnum RDP eru fáanlegir í möppunni ${HOME}/shared-drives:

Virkjaðu aukna lotuham fyrir Arch Linux gesti í Hyper-V

Klemmuspjaldið virkar fínt. Þú getur ekki framsent prentara inni; þetta er ekki aðeins stutt heldur líka brýtur framsendingu disks. Hljóðið virkar heldur ekki en höfundurinn þurfti ekki á þessu að halda. Til að fanga flýtilykla eins og Alt+Tab þarftu að stækka vmconnect í allan skjáinn.

Ef þú vilt af einhverjum ástæðum nota RDP biðlarann ​​sem er innbyggður í Windows í stað vmconnect forritsins eða, til dæmis, tengjast þessari vél frá annarri vél, þá þarftu að breyta skránni /etc/xrdp/xrdp.ini port á tcp://:3389. Ef sýndarvélin er tengd við Default Switch og fær netstillingar í gegnum DHCP, þá geturðu tengst henni frá gestgjafanum á название_машины.mshome.net. Þú getur aðeins skráð þig inn á TTY úr vmconnect forritinu með því að slökkva á bættri stillingu.

Notaðar heimildir:

  1. Hyper-V - Arch Wiki
  2. Villuskýrslur á GitHub: 1, 2

Heimild: www.habr.com

Bæta við athugasemd