Ota käyttöön tehostettu istuntotila Arch Linux -vieraille Hyper-V:ssä

Ota käyttöön tehostettu istuntotila Arch Linux -vieraille Hyper-V:ssä

Linux-virtuaalikoneiden käyttö valmiina Hyper-V:ssä on hieman epämukavampaa kuin vierailevien Windows-koneiden kanssa. Syynä tähän on se, että Hyper-V:tä ei alun perin ollut tarkoitettu työpöytäkäyttöön; Et voi vain mennä eteenpäin ja asentaa vieraslisäyspakettia ja saada toimivaa grafiikkakiihdytystä, leikepöytää, jaettuja hakemistoja ja muita elämän iloja, kuten VirtualBoxissa tapahtuu.

Hyper-V tarjoaa itse useita integraatiopalveluita - joten vieraat voivat käyttää isännän varjokopiopalvelua (VSS), vieraat voivat lähettää sammutussignaalin, vieraat voivat synkronoida järjestelmän ajan virtualisointipalvelimen kanssa, tiedostoja voidaan vaihtaa virtuaalikoneen kanssa isännästä (Copy-VMFile PowerShellissä). Joillekin vieraskäyttöjärjestelmille, mukaan lukien tietysti Windows, Virtual Machine Connection -sovelluksessa (vmconnect.exe) Saatavilla on Enhanced Session Mode, joka toimii RDP-protokollan kautta ja mahdollistaa levylaitteiden ja tulostimien välittämisen virtuaalikoneeseen sekä jaetun leikepöydän käytön.

Enhanced Session Mode toimii heti asennuksen jälkeen Windowsissa Hyper-V:ssä. Linuxissa vieraiden kanssa sinun on asennettava RDP-palvelin, joka tukee vsockia (erityinen virtuaalinen verkkoosoitetila Linuxissa, joka on suunniteltu kommunikoimaan hypervisorin kanssa). Jos kyseessä on Ubuntu, Hyper-V:n mukana tulevassa VMCreate-sovelluksessa Windows-työpöytäversioissa on erityinen valmisteltu virtuaalikonemalli, jossa RDP-palvelin toimii vsockin kanssa. XRDP jo esiasennettuna, niin muilla jakeluilla se on vähemmän selvää - esimerkiksi kirjoittaja Tämä postaus kävi ilmi, että ESM on käytössä Fedorassa. Tässä otamme myös käyttöön parannetun istuntotilan Arch Linux -virtuaalikoneelle.

Integrointipalvelujen asennus

Kaikki on enemmän tai vähemmän yksinkertaista täällä, meidän on vain asennettava paketti hyperv yhteisön arkistosta:

% sudo pacman -S hyperv

Ota VSS-palvelut käyttöön, vaihda metatiedot ja tiedostot:

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

XRDP-asennus

arkisto linux-vm-tools GitHubissa tarjoaa komentosarjoja, jotka automatisoivat XRDP:n asennuksen ja konfiguroinnin Arch Linuxille ja Ubuntulle. Asenna Git, jos sitä ei ole vielä asennettu, sekä kääntäjä ja muut ohjelmistot manuaalisia koontiversioita varten ja kloonaa sitten arkisto:

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

Tätä kirjoitettaessa XRDP:n viimeisin julkaisu, jonka komentosarja asentaa makepkg.sharkistoon ehdotettu on 0.9.11, jossa jäsentäminen on katkennut vsock://-osoitteet, joten sinun on asennettava XRDP Gitistä ja Xorg-ajuri sille AUR:sta manuaalisesti. AUR:ssa tarjottu XRDP-korjaus on myös hieman vanhentunut, joten joudut muokkaamaan PKGBUILD-tiedostoa ja korjaustiedostoa manuaalisesti.

Kloonamme arkistot AUR:n PKGBUILD-koodeilla (yleensä tämä menettely yhdessä kokoonpanon kanssa on automatisoitu sellaisilla ohjelmilla kuin jee, mutta kirjoittaja teki tämän koko toimenpiteen puhtaalla järjestelmällä):

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

Asennataan ensin itse XRDP. Avataan tiedosto PKGBUILD mikä tahansa tekstieditori.

Muokataan rakennusparametreja. PKGBUILD XRDP:n rakentamiseen Gitistä ei sisällä vsock-tukea rakentamisessa, joten otetaan se käyttöön itse:

 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
 }

Patchissa arch-config.diff, joka muokkaa yksiköitä ja XRDP-käynnistysskriptejä Arch Linuxissa käytettyjen tiedostopolkujen alla, sisältää muun muassa korjaustiedoston komentosarjaan instfiles/xrdp.sh, joka kirjoitushetkellä poistettiin XRDP-jakelusta, joten korjaustiedostoa on muokattava manuaalisesti:

  [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

Rakenna ja asenna paketti komennolla % makepkg --skipchecksums -si (avain --skipchecksums tarvitaan lähdetiedostojen tarkistussummatarkistuksen poistamiseksi käytöstä, koska muokkasimme niitä manuaalisesti).

Mennään hakemistoon xorgxrdp-devel-git, jonka jälkeen rakennamme paketin komennolla % makepkg -si.

Mennään hakemistoon linux-vm-tools/arch ja suorita skripti install-config.sh, joka määrittää XRDP-, PolicyKit- ja PAM-asetukset:

% sudo ./install-config.sh

Komentosarja asentaa vanhan asetuksen use_vsock, jota ei huomioida versiosta 0.9.11 lähtien, joten muokataan asetustiedostoa /etc/xrdp/xrdp.ini käsin:

 ;   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

Lisää tiedostoon ~/.xinitrc käynnistää haluamasi ikkunanhallinta-/työpöytäympäristö, joka suoritetaan, kun X-palvelin käynnistetään:

% echo "exec i3" > ~/.xinitrc

Sammuta virtuaalikone. Ota vsock-siirto käyttöön VM:lle suorittamalla seuraava komento PowerShellissä järjestelmänvalvojana:

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

Laitetaan virtuaalikone uudelleen päälle.

Подключение

Heti kun XRDP-palvelu käynnistyy järjestelmän käynnistymisen jälkeen, vmconnect-sovellus määrittää tämän ja valikkokohta tulee saataville. Näytä -> Tehostettu istunto. Kun valitset tämän kohteen, meitä kehotetaan asettamaan näytön tarkkuus ja -välilehdellä Paikalliset resurssit avautuvasta valintaikkunasta voit valita RDP-istunnon sisällä edelleenlähetetyt laitteet.

Ota käyttöön tehostettu istuntotila Arch Linux -vieraille Hyper-V:ssä
Ota käyttöön tehostettu istuntotila Arch Linux -vieraille Hyper-V:ssä

Otetaan yhteyttä. Näemme XRDP-kirjautumisikkunan:

Ota käyttöön tehostettu istuntotila Arch Linux -vieraille Hyper-V:ssä

Anna käyttäjätunnuksesi ja salasanasi.

Käyttää

Hyöty näistä manipuloinneista on havaittavissa: RDP-istunto toimii paljon herkemmin kuin työskenneltäessä virtuaalisen näytön kanssa ilman Enhanced Session -ohjelmaa. VM:n sisällä RDP:n kautta edelleenlähetetyt levyt ovat saatavilla hakemistossa ${HOME}/shared-drives:

Ota käyttöön tehostettu istuntotila Arch Linux -vieraille Hyper-V:ssä

Leikepöytä toimii hyvin. Et voi heittää tulostimia sisään, sitä ei vain tueta, vaan myös katkaisee levyn edelleenlähetyksen. Ääni ei myöskään toimi, mutta kirjoittaja ei tarvinnut sitä. Jotta voit kaapata pikanäppäimiä, kuten Alt + Tab, sinun on laajennettava vmconnect koko näytön kokoiseksi.

Jos jostain syystä halutaan käyttää Windowsiin sisäänrakennettua RDP-asiakasta vmconnect-sovelluksen sijaan tai esimerkiksi muodostaa yhteys tähän koneeseen toisesta koneesta, sinun on vaihdettava tiedosto /etc/xrdp/xrdp.ini port päälle tcp://:3389. Jos virtuaalikone on yhdistetty oletuskytkimeen ja vastaanottaa verkkoasetukset DHCP:n kautta, voit muodostaa yhteyden siihen isännästä osoitteessa название_машины.mshome.net. Voit kirjautua sisään TTY:hen vain vmconnect-sovelluksesta poistamalla Enhanced Mode -tilan käytöstä.

Käytetyt lähteet:

  1. Hyper-V Arch Wiki
  2. Vikaraportit GitHubissa: 1, 2

Lähde: will.com

Lisää kommentti