Povolení režimu rozšířené relace pro Arch Linux-hosté v Hyper-V

Povolení režimu rozšířené relace pro Arch Linux-hosté v Hyper-V

Používání virtuálních počítačů na Linux V Hyper-V je po vybalení z krabice o něco méně komfortní zážitek než v případě hosta. Windows-machines. Důvodem je, že Hyper-V nebyl původně navržen pro použití na stolních počítačích; nelze jednoduše nainstalovat balíček Guest Additions a získat funkční grafickou akceleraci, schránku, sdílené adresáře a další výhody, jako je to možné u VirtualBoxu.

Hyper-V samo o sobě poskytuje více integračních služeb - takže hosté mohou používat službu stínové kopie (VSS) hostitele, hosté mohou poslat signál vypnutí, hosté mohou synchronizovat systémový čas s hostitelem virtualizace, soubory lze vyměňovat s virtuálním počítačem z hostitele (Copy-VMFile v PowerShellu). Pro některé hostované operační systémy, což samozřejmě zahrnuje Windows, v aplikaci Připojení virtuálního počítače (vmconnect.exe) K dispozici je režim Enhanced Session Mode, který funguje prostřednictvím protokolu RDP a umožňuje přesměrovat disková zařízení a tiskárny na virtuální počítač a také používat sdílenou schránku.

Režim vylepšené relace funguje ihned po vybalení z krabice Windows v Hyper-V ihned po instalaci. S hosty na Linux Musíte nainstalovat RDP server, který podporuje vsock (speciální adresní prostor virtuální sítě v Linux, určený pro komunikaci s hypervizorem). Pokud pro Ubuntu v aplikaci VMCreate, která je součástí Hyper-V v desktopových edicích Windows, existuje speciálně připravená šablona virtuálního počítače, ve které RDP server pracuje s vsock XRDP již předinstalovaný, pak u jiných distribucí je to čím dál méně přehledné - např. autor tento příspěvek Podařilo se nám povolit ESM ve Fedoře. Zde také aktivujeme režim Enhanced Session Mode pro virtuální stroj Arch. Linux.

Instalace integračních služeb

Zde je vše víceméně jednoduché, stačí nainstalovat balíček hyperv z komunitního úložiště:

% sudo pacman -S hyperv

Povolit služby VSS, výměnu metadata a soubory:

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

Instalace XRDP

úložiště linux-vm-tools poskytuje skripty na GitHubu, které automatizují proces instalace a konfigurace XRDP pro Arch Linux и UbuntuNainstalujme si Git, pokud ještě není nainstalovaný, spolu s kompilátorem a dalším softwarem pro ruční sestavení a poté naklonujme repozitář:

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

V době psaní tohoto článku nejnovější vydání XRDP, které je nainstalováno skriptem makepkg.shnavrhovaná v úložišti je 0.9.11, ve kterém je rozbor přerušen vsock://-adresy, takže musíte nainstalovat XRDP z Gitu a ovladač Xorg pro něj z AUR ručně. Patch pro XRDP nabízený v AUR je také mírně zastaralý, takže budete muset upravit PKGBUILD a patch ručně.

Klonujeme úložiště pomocí PKGBUILD z AUR (obvykle je tento postup spolu s sestavením automatizován programy jako Yay, ale autor provedl celý tento postup na čistém systému):

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

Nejprve nainstalujme samotné XRDP. Otevřeme soubor PKGBUILD jakýkoli textový editor.

Upravíme parametry sestavení. PKGBUILD pro sestavení XRDP z Git nezahrnuje podporu vsock v sestavení, takže ji povolme 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 náplasti arch-config.diff, řídící jednotky a spouštěcí skripty XRDP v cestách k souborům používaných v Archu Linux, obsahuje opravu skriptu instfiles/xrdp.sh, který v době psaní tohoto článku byl odstraněn z distribuce XRDP, takže patch bude nutné upravit ručně:

  [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

Sestavte a nainstalujte balíček pomocí příkazu % makepkg --skipchecksums -si (klíč --skipchecksums je potřeba pro zakázání ověřování kontrolních součtů zdrojových souborů, protože jsme je upravovali ručně).

Pojďme do adresáře xorgxrdp-devel-git, načež jednoduše sestavíme balíček pomocí příkazu % makepkg -si.

Pojďme do adresáře linux-vm-tools/arch a spusťte skript install-config.sh, který nastavuje nastavení XRDP, PolicyKit a PAM:

% sudo ./install-config.sh

Skript nainstaluje starší nastavení use_vsock, který je od verze 0.9.11 ignorován, takže upravme konfigurační soubor /etc/xrdp/xrdp.ini ručně:

 ;   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

Přidat do souboru ~/.xinitrc spuštění vašeho preferovaného správce oken/desktopového prostředí, které se spustí při spuštění X serveru:

% echo "exec i3" > ~/.xinitrc

Pojďme vypnout virtuální stroj. Povolte přenos vsock pro virtuální počítač spuštěním následujícího příkazu v prostředí PowerShell jako správce:

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

Znovu zapneme virtuální stroj.

Připojení

Jakmile se po spuštění systému spustí služba XRDP, aplikace vmconnect to určí a položka nabídky bude dostupná. Zobrazit -> Vylepšená relace. Když vyberete tuto položku, budeme vyzváni k nastavení rozlišení obrazovky a na kartě Místní zdroje v dialogovém okně, které se otevře, můžete vybrat zařízení přesměrovaná v rámci relace RDP.

Povolení režimu rozšířené relace pro Arch Linux-hosté v Hyper-V
Povolení režimu rozšířené relace pro Arch Linux-hosté v Hyper-V

Pojďme se spojit. Uvidíme přihlašovací okno XRDP:

Povolení režimu rozšířené relace pro Arch Linux-hosté v Hyper-V

Zadejte své uživatelské jméno a heslo.

Použití

Zisk z těchto manipulací je patrný: relace RDP funguje mnohem lépe než při práci s virtuálním displejem bez vylepšené relace. Disky předávané uvnitř virtuálního počítače přes RDP jsou dostupné v adresáři ${HOME}/shared-drives:

Povolení režimu rozšířené relace pro Arch Linux-hosté v Hyper-V

Schránka funguje dobře. Nemůžete házet tiskárny dovnitř, to nejen není podporováno, ale také přeruší předávání disku. Zvuk také nefunguje, ale to autor nepotřeboval. Chcete-li zachytit klávesové zkratky, jako je Alt + Tab, musíte rozbalit vmconnect na celou obrazovku.

Pokud z jakéhokoli důvodu chcete použít vestavěnou aplikaci vmconnect místo Windows RDP klient nebo se například připojte k tomuto počítači z jiného počítače, pak budete muset změnit soubor /etc/xrdp/xrdp.ini port na tcp://:3389. Pokud je virtuální počítač připojen k výchozímu přepínači a přijímá síťová nastavení přes DHCP, můžete se k němu připojit z hostitele na adrese название_машины.mshome.net. K TTY se můžete přihlásit pouze z aplikace vmconnect vypnutím rozšířeného režimu.

Použité zdroje:

  1. Hyper-V Arch Wiki
  2. Hlášení chyb na GitHubu: 1, 2

Zdroj: www.habr.com

Kupte si spolehlivý hosting pro stránky s DDoS ochranou, VPS VDS servery 🔥 Kupte si spolehlivý webhosting s ochranou DDoS, VPS VDS servery | ProHoster