Omogočanje izboljšanega načina seje za Arch Linux-gosti v Hyper-V

Omogočanje izboljšanega načina seje za Arch Linux-gosti v Hyper-V

Uporaba virtualnih strojev na Linux V Hyper-V je takojšnja namestitev nekoliko manj udobna izkušnja kot pri gostujočem načinu Windows-машинами. Причиной тому является то, что Hyper-V все же изначально не предназначался для десктопного пользования; нельзя просто взять, поставить пакет гостевых дополнений и получить работоспособное графическое ускорение, буфер обмена, общие директории и другие радости жизни, как это происходит в VirtualBox.

Hyper-V sam zagotavlja več integracijskih storitev - torej lahko gostje uporabljajo storitev senčnega kopiranja gostitelja (VSS), gostje lahko pošljejo signal za zaustavitev, gostje lahko sinhronizirajo sistemski čas z gostiteljem virtualizacije, datoteke se lahko izmenjujejo iz gostitelja z virtualnim strojem (Copy-VMFile в PowerShell). Для некоторых гостевых операционных систем, в числе которых, конечно, находится и Windows, в приложении Virtual Machine Connection (vmconnect.exe) Na voljo je izboljšan način seje, ki deluje prek protokola RDP in vam omogoča prenos diskovnih naprav in tiskalnikov v virtualni stroj ter uporabo skupnega odložišča.

Enhanced Session Mode из коробки работает в Windows в Hyper-V сразу после установки. С гостями на Linux нужно устанавливать RDP-сервер, поддерживающий vsock (специальное виртуальное сетевое адресное пространство в Linux, предназначенное для коммуникации с гипервизором). Если для Ubuntu в приложении VMCreate, идущим с Hyper-V на настольных редакциях Windows, есть специальный подготовленный шаблон виртуальной машины, в котором работающий с vsock RDP-сервер XRDP že prednameščeno, potem je pri drugih distribucijah vedno manj jasno - na primer avtor ta objava получилось включить ESM в Fedora. Здесь же мы активируем Enhanced Session Mode для виртуальной машины с Arch Linux.

Namestitev integracijskih storitev

Tukaj je vse bolj ali manj preprosto, le namestiti moramo paket hyperv iz repozitorija skupnosti:

% sudo pacman -S hyperv

Omogočimo storitve VSS in izmenjave metapodatki in datoteke:

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

Namestitev XRDP

repozitorij linux-vm-orodja на 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

V času pisanja tega članka je najnovejša izdaja XRDP, ki jo namesti skript makepkg.shpredlagana v skladišču je 0.9.11, pri katerem je razčlenjevanje pokvarjeno vsock://-naslove, zato boste morali ročno namestiti XRDP iz Gita in gonilnik Xorg zanj iz AUR. Tudi popravek XRDP, ki je na voljo v AUR, je nekoliko zastarel, zato boste morali PKGBUILD in popravek urediti ročno.

Klonirajmo repozitorije s PKGBUILD-ji iz AUR (običajno ta postopek, skupaj z gradnjo, avtomatizirajo programi, kot je Juhu, vendar je avtor naredil celoten postopek na čistem sistemu):

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

Najprej namestimo sam XRDP. Odprimo datoteko PKGBUILD kateri koli urejevalnik besedil.

Uredimo parametre gradnje. PKGBUILD za gradnjo XRDP iz Gita ne vključuje podpore za vsock pri gradnji, zato jo omogočimo sami:

 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
 }

V obližu arch-config.diff, правящем юниты и скрипты запуска XRDP под пути к файлам, используемым в Arch Linux, содержится в том числе патч к скрипту instfiles/xrdp.sh, ki v času pisanja je bil odstranjen iz distribucije XRDP, zato bo treba popravek urediti ročno:

  [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

Prevedimo in namestimo paket z ukazom % makepkg --skipchecksums -si (ključ --skipchecksums potrebno za onemogočanje preverjanja kontrolne vsote izvornih datotek, ker smo jih uredili ročno).

Pojdimo v imenik xorgxrdp-devel-git, nato pa z ukazom preprosto sestavimo paket % makepkg -si.

Pojdimo v imenik linux-vm-tools/arch in zaženite skript install-config.sh, ki nastavi nastavitve XRDP, PolicyKit in PAM:

% sudo ./install-config.sh

Skript namesti podedovano nastavitev use_vsock, ki je bil prezrt od različice 0.9.11, zato uredimo konfiguracijsko datoteko /etc/xrdp/xrdp.ini ročno:

 ;   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

Dodaj v datoteko ~/.xinitrc zagon vašega želenega upravitelja oken/namiznega okolja, ki se bo izvedel, ko se zažene strežnik X:

% echo "exec i3" > ~/.xinitrc

Izklopimo virtualni stroj. Prenos vsock za navidezni stroj aktiviramo tako, da kot skrbnik zaženemo naslednji ukaz v lupini PowerShell:

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

Ponovno vklopimo virtualni stroj.

Подключение

Takoj ko se storitev XRDP zažene po zagonu sistema, bo aplikacija vmconnect to zaznala in element bo na voljo v meniju Poglej -> Izboljšana seja. Ko izberemo ta element, bomo pozvani, da nastavimo ločljivost zaslona in na zavihku Lokalni viri V pogovornem oknu, ki se odpre, lahko izberete naprave, ki jih želite posredovati v sejo RDP.

Omogočanje izboljšanega načina seje za Arch Linux-gosti v Hyper-V
Omogočanje izboljšanega načina seje za Arch Linux-gosti v Hyper-V

Povežimo se. Videli bomo prijavno okno XRDP:

Omogočanje izboljšanega načina seje za Arch Linux-gosti v Hyper-V

Vnesite svoje uporabniško ime in geslo.

Uporaba

Korist teh manipulacij je opazna: seja RDP deluje veliko bolj odzivno kot pri delu z virtualnim zaslonom brez izboljšane seje. Diski, spuščeni v VM prek RDP, so na voljo v imeniku ${HOME}/shared-drives:

Omogočanje izboljšanega načina seje za Arch Linux-gosti v Hyper-V

Odložišče deluje dobro. Tiskalnikov ne morete posredovati notri; to ne samo, da ni podprto, ampak tudi prekine posredovanje diska. Tudi zvok ne deluje, vendar avtor tega ni potreboval. Če želite zajeti bližnjice na tipkovnici, kot je Alt+Tab, morate vmconnect razširiti na celoten zaslon.

Если по каким-либо причинам есть желание использовать вместо приложения vmconnect встроенный в Windows RDP-клиент или, например, подключаться к этой машине из другой машины, то нужно будет поменять в файле /etc/xrdp/xrdp.ini port o tcp://:3389. Če je virtualni stroj povezan s privzetim stikalom in prejema omrežne nastavitve prek DHCP, se lahko nanj povežete iz gostitelja na название_машины.mshome.net. V TTY se lahko prijavite samo iz aplikacije vmconnect, če izklopite izboljšani način.

Uporabljeni viri:

  1. Hyper-V - Arch Wiki
  2. Poročila o napakah na GitHubu: 1, 2

Vir: www.habr.com

Kupite zanesljivo gostovanje za strani z DDoS zaščito, VPS VDS strežniki 🔥 Kupite zanesljivo spletno gostovanje z zaščito DDoS, VPS VDS strežniki | ProHoster