Engedélyezze a továbbfejlesztett munkamenet módot az Arch Linux vendégei számára a Hyper-V-ben

Engedélyezze a továbbfejlesztett munkamenet módot az Arch Linux vendégei számára a Hyper-V-ben

A Linuxos virtuális gépek Hyper-V-ben való azonnali használata valamivel kevésbé kényelmes, mint a vendég Windows-gépeknél. Ennek az az oka, hogy a Hyper-V-t eredetileg nem asztali használatra szánták; nem lehet egyszerűen csak telepíteni a vendég-kiegészítő csomagot, és működőképes grafikus gyorsítást, vágólapot, megosztott könyvtárakat és más életörömöt kapni, ahogy az a VirtualBoxban történik.

Maga a Hyper-V biztosítja többféle integrációs szolgáltatás - így a vendégek használhatják a gazdagép árnyékmásolási szolgáltatását (VSS), a vendégek leállási jelet küldhetnek, a vendégek szinkronizálhatják a rendszeridőt a virtualizációs gazdagéppel, fájlokat cserélhetnek a virtuális géppel a gazdagépről (Copy-VMFile a PowerShellben). Néhány vendég operációs rendszer esetén, beleértve természetesen a Windowst is, a Virtual Machine Connection alkalmazásban (vmconnect.exe) Elérhető az Enhanced Session Mode, amely az RDP protokollon keresztül működik, és lehetővé teszi a lemezeszközök és nyomtatók továbbítását a virtuális gépre, valamint a megosztott vágólap használatát.

Az Enhanced Session Mode azonnal a telepítés után működik a Hyper-V Windows rendszeren. Linux rendszerű vendégek esetén telepítenie kell egy RDP-kiszolgálót, amely támogatja a vsock-ot (egy speciális virtuális hálózati címteret a Linuxban, amelyet a hypervisorral való kommunikációra terveztek). Ubuntu esetében a Hyper-V-vel együtt járó VMCreate alkalmazás a Windows asztali kiadásaiban egy speciális virtuálisgép-sablonnal rendelkezik, amelyben egy vsock-kal futó RDP-kiszolgáló XRDP már előre telepítve, akkor más disztribúcióknál ez egyre kevésbé egyértelmű - például a szerző ez a poszt kiderült, hogy engedélyezte az ESM-et a Fedorában. Itt engedélyezzük az Enhanced Session Mode-ot az Arch Linux virtuális géphez is.

Integrációs szolgáltatások telepítése

Itt minden többé-kevésbé egyszerű, csak telepítenünk kell a csomagot hyperv közösségi adattárból:

% sudo pacman -S hyperv

VSS szolgáltatások engedélyezése, csere metaadatokat és fájlok:

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

XRDP telepítés

adattár linux-vm-tools a GitHubon olyan szkripteket biztosít, amelyek automatizálják az XRDP telepítésének és konfigurálásának folyamatát Arch Linuxhoz és Ubuntuhoz. Telepítse a Git-et, ha még nincs telepítve, a fordítóval és a kézi összeállításokhoz szükséges egyéb szoftverekkel együtt, majd klónozza a tárat:

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

Az írás idején az XRDP legújabb kiadása, amelyet a szkript telepít makepkg.shaz adattárban javasolt 0.9.11, amelyben az elemzés megszakadt vsock://-címeket, tehát manuálisan kell telepítenie az XRDP-t a Git-ből és az Xorg illesztőprogramot az AUR-ból. Az AUR-ban kínált XRDP javítás is kissé elavult, ezért manuálisan kell szerkesztenie a PKGBUILD-t és a javítást.

Az AUR-ból származó PKGBUILD-ekkel klónozzuk a tárolókat (általában ezt az eljárást az összeállítással együtt olyan programok automatizálják, mint pl. Hurrá, de a szerző ezt az egész eljárást tiszta rendszeren végezte):

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

Először telepítsük magát az XRDP-t. Nyissuk meg a fájlt PKGBUILD bármilyen szövegszerkesztő.

Szerkesszük az összeállítási paramétereket. A PKGBUILD az XRDP Gitből való felépítéséhez nem tartalmazza a vsock támogatást a buildben, ezért engedélyezzük mi magunk:

 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
 }

Egy foltban arch-config.diff, amely egységeket és XRDP indító szkripteket szerkeszt az Arch Linuxban használt fájlok elérési útja alatt, többek között tartalmaz egy javítást a szkripthez instfiles/xrdp.sh, amely az írás idején eltávolítva az XRDP disztribúcióból, így a javítást manuálisan kell szerkeszteni:

  [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

Építsd fel és telepítsd a csomagot a paranccsal % makepkg --skipchecksums -si (kulcs --skipchecksums szükséges a forrásfájlok ellenőrzőösszeg-ellenőrzésének letiltásához, mivel azokat manuálisan szerkesztettük).

Menjünk a könyvtárba xorgxrdp-devel-git, ami után egyszerűen megépítjük a csomagot a paranccsal % makepkg -si.

Menjünk a könyvtárba linux-vm-tools/arch és futtassa a szkriptet install-config.sh, amely beállítja az XRDP, a PolicyKit és a PAM beállításait:

% sudo ./install-config.sh

A szkript telepíti az örökölt beállítást use_vsock, amelyet a 0.9.11-es verzió óta figyelmen kívül hagynak, ezért szerkesszük a konfigurációs fájlt /etc/xrdp/xrdp.ini manuálisan:

 ;   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

Hozzáadás a fájlhoz ~/.xinitrc az előnyben részesített ablakkezelő/asztali környezet elindítása, amely az X szerver indításakor kerül végrehajtásra:

% echo "exec i3" > ~/.xinitrc

Kapcsoljuk ki a virtuális gépet. Engedélyezze a vsock átvitelt a virtuális gép számára a következő parancs futtatásával a PowerShellben rendszergazdaként:

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

Kapcsoljuk be újra a virtuális gépet.

Подключение

Amint a rendszer indulása után elindul az XRDP szolgáltatás, ezt a vmconnect alkalmazás megállapítja és elérhetővé válik a menüpont. Megnézem -> Továbbfejlesztett munkamenet. Amikor kiválasztja ezt az elemet, a rendszer kérni fogja a képernyőfelbontás beállítását, és a lapon Helyi erőforrások a megnyíló párbeszédablakban kiválaszthatja az RDP munkameneten belül továbbított eszközöket.

Engedélyezze a továbbfejlesztett munkamenet módot az Arch Linux vendégei számára a Hyper-V-ben
Engedélyezze a továbbfejlesztett munkamenet módot az Arch Linux vendégei számára a Hyper-V-ben

Kapcsolódjunk. Látni fogjuk az XRDP bejelentkezési ablakot:

Engedélyezze a továbbfejlesztett munkamenet módot az Arch Linux vendégei számára a Hyper-V-ben

Adja meg felhasználónevét és jelszavát.

Használat

Ezeknek a manipulációknak a haszna észrevehető: az RDP-munkamenet sokkal érzékenyebben működik, mint az Enhanced Session nélküli virtuális kijelzővel végzett munka során. A virtuális gépen belül RDP-n keresztül továbbított lemezek elérhetők a könyvtárban ${HOME}/shared-drives:

Engedélyezze a továbbfejlesztett munkamenet módot az Arch Linux vendégei számára a Hyper-V-ben

A vágólap jól működik. Nyomtatókat nem lehet bedobni, ez nem csak hogy nem támogatott, de nem is megszakítja a lemeztovábbítást. A hang sem működik, de a szerzőnek nem volt rá szüksége. A billentyűparancsok, például az Alt + Tab rögzítéséhez ki kell bontania a vmconnect-et teljes képernyőre.

Ha valamilyen oknál fogva a vmconnect alkalmazás helyett a Windowsba épített RDP klienst szeretné használni, vagy például egy másik gépről csatlakozni ehhez a géphez, akkor módosítania kell a fájlt. /etc/xrdp/xrdp.ini port on tcp://:3389. Ha a virtuális gép csatlakozik az alapértelmezett kapcsolóhoz, és DHCP-n keresztül fogadja a hálózati beállításokat, akkor csatlakozhat hozzá a gazdagépről a következő címen: название_машины.mshome.net. A TTY-be csak a vmconnect alkalmazásból jelentkezhet be, ha kikapcsolja a továbbfejlesztett módot.

Felhasznált források:

  1. Hyper-V Arch Wiki
  2. Hibajelentések a GitHubon: 1, 2

Forrás: will.com

Hozzászólás