Parannetun istuntotilan ottaminen käyttöön Archissa Linux-vieraat Hyper-V:ssä

Parannetun istuntotilan ottaminen käyttöön Archissa Linux-vieraat Hyper-V:ssä

Virtuaalikoneiden käyttö Linux Hyper-V:ssä heti pakkauksesta otettuna käyttökokemus on hieman epämukavampi kuin vierasversiossa. Windows-машинами. Причиной тому является то, что Hyper-V все же изначально не предназначался для десктопного пользования; нельзя просто взять, поставить пакет гостевых дополнений и получить работоспособное графическое ускорение, буфер обмена, общие директории и другие радости жизни, как это происходит в VirtualBox.

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 в PowerShell). Для некоторых гостевых операционных систем, в числе которых, конечно, находится и Windows, в приложении Virtual Machine Connection (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 из коробки работает в Windows в Hyper-V сразу после установки. С гостями на Linux нужно устанавливать RDP-сервер, поддерживающий vsock (специальное виртуальное сетевое адресное пространство в Linux, предназначенное для коммуникации с гипервизором). Если для Ubuntu в приложении VMCreate, идущим с Hyper-V на настольных редакциях Windows, есть специальный подготовленный шаблон виртуальной машины, в котором работающий с vsock RDP-сервер XRDP jo esiasennettuna, niin muilla jakeluilla se on vähemmän selvää - esimerkiksi kirjoittaja Tämä postaus получилось включить ESM в Fedora. Здесь же мы активируем Enhanced Session Mode для виртуальной машины с Arch Linux.

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 на GitHub предоставляет скрипты, автоматизирующие процесс установки и настройки XRDP, для Arch Linux и Ubuntu. Установим Git, если он еще не установлен, вместе с компилятором и другим софтом для ручных сборок, после чего склонируем репозиторий:

% 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, правящем юниты и скрипты запуска XRDP под пути к файлам, используемым в Arch Linux, содержится в том числе патч к скрипту 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.

Parannetun istuntotilan ottaminen käyttöön Archissa Linux-vieraat Hyper-V:ssä
Parannetun istuntotilan ottaminen käyttöön Archissa Linux-vieraat Hyper-V:ssä

Otetaan yhteyttä. Näemme XRDP-kirjautumisikkunan:

Parannetun istuntotilan ottaminen käyttöön Archissa Linux-vieraat 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:

Parannetun istuntotilan ottaminen käyttöön Archissa Linux-vieraat 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.

Если по каким-либо причинам есть желание использовать вместо приложения vmconnect встроенный в Windows RDP-клиент или, например, подключаться к этой машине из другой машины, то нужно будет поменять в файле /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

Osta luotettava isännöinti sivustoille, joissa on DDoS-suojaus, VPS VDS -palvelimet 🔥 Osta luotettavaa verkkosivustojen hostingia DDoS-suojauksella, VPS VDS -palvelimilla | ProHoster