Aktiveer Verbeterde Sessiemodus vir Arch Linux-gaste in Hyper-V

Aktiveer Verbeterde Sessiemodus vir Arch Linux-gaste in Hyper-V

Gebruik virtuele masjiene op Linux in Hyper-V is dit uit die boks 'n effens minder gemaklike ervaring as met gas Windows-машинами. Причиной тому является то, что Hyper-V все же изначально не предназначался для десктопного пользования; нельзя просто взять, поставить пакет гостевых дополнений и получить работоспособное графическое ускорение, буфер обмена, общие директории и другие радости жизни, как это происходит в VirtualBox.

Hyper-V self verskaf verskeie integrasiedienste - dus, gaste kan die gasheer se skadukopiediens (VSS) gebruik, gaste kan 'n afskakelsein stuur, gaste kan die stelseltyd met die virtualisasiegasheer sinchroniseer, lêers kan van die gasheer met die virtuele masjien uitgeruil word (Copy-VMFile в PowerShell). Для некоторых гостевых операционных систем, в числе которых, конечно, находится и Windows, в приложении Virtual Machine Connection (vmconnect.exe) Verbeterde Sessiemodus is beskikbaar, werk via die RDP-protokol en stel jou in staat om skyftoestelle en drukkers na die virtuele masjien oor te dra, asook om 'n gedeelde knipbord te gebruik.

Enhanced Session Mode из коробки работает в Windows в Hyper-V сразу после установки. С гостями на Linux нужно устанавливать RDP-сервер, поддерживающий vsock (специальное виртуальное сетевое адресное пространство в Linux, предназначенное для коммуникации с гипервизором). Если для Ubuntu в приложении VMCreate, идущим с Hyper-V на настольных редакциях Windows, есть специальный подготовленный шаблон виртуальной машины, в котором работающий с vsock RDP-сервер XRDP reeds vooraf geïnstalleer, dan is dit met ander verspreidings al hoe minder duidelik - byvoorbeeld die skrywer hierdie pos получилось включить ESM в Fedora. Здесь же мы активируем Enhanced Session Mode для виртуальной машины с Arch Linux.

Installeer integrasiedienste

Alles is min of meer eenvoudig hier, ons moet net die pakket installeer hyperv uit die gemeenskapsbewaarplek:

% sudo pacman -S hyperv

Kom ons aktiveer VSS en uitruildienste metadata en lêers:

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

Installeer XRDP

bewaarplek linux-vm-nutsgoed на 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

Ten tyde van die skryf van hierdie artikel, die nuutste weergawe van XRDP, wat deur die skrif geïnstalleer is makepkg.shdie een wat in die bewaarplek voorgestel word, is 0.9.11, waarin ontleding gebreek is vsock://-adresse, so jy sal XRDP vanaf Git en die Xorg-bestuurder daarvoor vanaf AUR met die hand moet installeer. Die XRDP-pleister wat in die AUR aangebied word, is ook effens verouderd, so jy sal die PKGBUILD en die pleister met die hand moet wysig.

Kom ons kloon bewaarplekke met PKGBUILD's van AUR (gewoonlik word hierdie prosedure, saam met die bou, geoutomatiseer deur programme soos yay, maar die skrywer het hierdie hele prosedure op 'n skoon stelsel gedoen):

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

Kom ons installeer XRDP self eers. Kom ons maak die lêer oop PKGBUILD enige teksredigeerder.

Kom ons wysig die bouparameters. PKGBUILD vir die bou van XRDP vanaf Git sluit nie vsock-ondersteuning in wanneer jy bou nie, so laat ons dit self aktiveer:

 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
 }

In die pleister arch-config.diff, правящем юниты и скрипты запуска XRDP под пути к файлам, используемым в Arch Linux, содержится в том числе патч к скрипту instfiles/xrdp.sh, wat ten tyde van die skryf hiervan verwyder is vanaf die XRDP-verspreiding, dus sal die pleister met die hand gewysig moet word:

  [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

Kom ons stel en installeer die pakket met die opdrag % makepkg --skipchecksums -si (sleutel --skipchecksums nodig om kontrolesomverifikasie van bronlêers uit te skakel, aangesien ons dit handmatig geredigeer het).

Kom ons gaan na die gids xorgxrdp-devel-git, waarna ons eenvoudig die pakket saamstel met die opdrag % makepkg -si.

Kom ons gaan na die gids linux-vm-tools/arch en voer die skrip uit install-config.sh, wat XRDP, PolicyKit en PAM instellings stel:

% sudo ./install-config.sh

Skrip installeer verouderde instelling use_vsock, wat sedert weergawe 0.9.11 geïgnoreer is, so kom ons wysig die konfigurasielêer /etc/xrdp/xrdp.ini handmatig:

 ;   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

Voeg by lêer ~/.xinitrc die begin van u voorkeurvensterbestuurder/lessenaaromgewing, wat uitgevoer sal word wanneer die X-bediener begin:

% echo "exec i3" > ~/.xinitrc

Kom ons skakel die virtuele masjien af. Ons aktiveer die vsock-vervoer vir die virtuele masjien deur die volgende opdrag in PowerShell as administrateur uit te voer:

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

Kom ons skakel die virtuele masjien weer aan.

Подключение

Sodra die XRDP-diens begin nadat die stelsel begin het, sal die vmconnect-toepassing dit opspoor en die item sal in die kieslys beskikbaar wees Besigtig -> Verbeterde Sessie. Wanneer ons hierdie item kies, sal ons gevra word om die skermresolusie te stel, en op die oortjie Plaaslike hulpbronne In die dialoog wat oopmaak, kan u toestelle kies wat na die HOP-sessie gestuur moet word.

Aktiveer Verbeterde Sessiemodus vir Arch Linux-gaste in Hyper-V
Aktiveer Verbeterde Sessiemodus vir Arch Linux-gaste in Hyper-V

Kom ons verbind. Ons sal die XRDP-aanmeldvenster sien:

Aktiveer Verbeterde Sessiemodus vir Arch Linux-gaste in Hyper-V

Voer jou gebruikersnaam en wagwoord in.

Gebruik

Die voordeel van hierdie manipulasies is opvallend: die RDP-sessie werk baie meer reageer as wanneer daar met 'n virtuele skerm sonder Verbeterde Sessie gewerk word. Skywe wat binne die VM via RDP gegooi word, is in die gids beskikbaar ${HOME}/shared-drives:

Aktiveer Verbeterde Sessiemodus vir Arch Linux-gaste in Hyper-V

Die knipbord werk goed. Jy kan nie drukkers binne aanstuur nie; dit word nie net nie ondersteun nie, maar ook breek skyfaanstuur. Die klank werk ook nie, maar die skrywer het dit nie nodig gehad nie. Om sleutelbordkortpaaie soos Alt+Tab vas te vang, moet jy vmconnect na volskerm uitbrei.

Если по каким-либо причинам есть желание использовать вместо приложения vmconnect встроенный в Windows RDP-клиент или, например, подключаться к этой машине из другой машины, то нужно будет поменять в файле /etc/xrdp/xrdp.ini port op tcp://:3389. As die virtuele masjien aan verstekskakelaar gekoppel is en netwerkinstellings via DHCP ontvang, kan jy vanaf die gasheer daaraan koppel by название_машины.mshome.net. U kan slegs vanaf die vmconnect-toepassing by TTY aanmeld deur Verbeterde modus af te skakel.

Gebruikte bronne:

  1. Hyper-V - Arch Wiki
  2. Foutverslae op GitHub: 1, 2

Bron: will.com

Koop betroubare hosting vir werwe met DDoS-beskerming, VPS VDS-bedieners 🔥 Koop betroubare webwerfhosting met DDoS-beskerming, VPS VDS-bedieners | ProHoster