Aktivizimi i Modalitetit të Sesionit të Përmirësuar për Arch Linux-të ftuar në Hyper-V

Aktivizimi i Modalitetit të Sesionit të Përmirësuar për Arch Linux-të ftuar në Hyper-V

Duke përdorur makina virtuale në Linux në Hyper-V menjëherë pas përdorimit është një përvojë pak më pak e rehatshme sesa me versionin e mysafirëve. Windows-машинами. Причиной тому является то, что Hyper-V все же изначально не предназначался для десктопного пользования; нельзя просто взять, поставить пакет гостевых дополнений и получить работоспособное графическое ускорение, буфер обмена, общие директории и другие радости жизни, как это происходит в VirtualBox.

Hyper-V vetë ofron shërbime të shumta integrimi - kështu, të ftuarit mund të përdorin shërbimin e kopjimit hije (VSS) të hostit, të ftuarit mund të dërgojnë një sinjal mbylljeje, të ftuarit mund të sinkronizojnë kohën e sistemit me hostin e virtualizimit, skedarët mund të shkëmbehen me makinën virtuale nga hosti (Copy-VMFile в PowerShell). Для некоторых гостевых операционных систем, в числе которых, конечно, находится и Windows, в приложении Virtual Machine Connection (vmconnect.exe) Ofrohet Modaliteti i Sesionit të Përmirësuar, i cili funksionon nëpërmjet protokollit RDP dhe ju lejon të përcillni pajisjet e diskut dhe printerët në makinën virtuale, si dhe të përdorni kujtesën e përbashkët.

Enhanced Session Mode из коробки работает в Windows в Hyper-V сразу после установки. С гостями на Linux нужно устанавливать RDP-сервер, поддерживающий vsock (специальное виртуальное сетевое адресное пространство в Linux, предназначенное для коммуникации с гипервизором). Если для Ubuntu в приложении VMCreate, идущим с Hyper-V на настольных редакциях Windows, есть специальный подготовленный шаблон виртуальной машины, в котором работающий с vsock RDP-сервер XRDP tashmë të para-instaluar, atëherë me shpërndarjet e tjera është gjithnjë e më pak e qartë - për shembull, autori këtë postim получилось включить ESM в Fedora. Здесь же мы активируем Enhanced Session Mode для виртуальной машины с Arch Linux.

Instalimi i shërbimeve të integrimit

Gjithçka është pak a shumë e thjeshtë këtu, thjesht duhet të instalojmë paketën hyperv nga depoja e komunitetit:

% sudo pacman -S hyperv

Aktivizo shërbimet VSS, shkëmbejnë meta të dhënat dhe skedarët:

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

Instalimi i XRDP

depo 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

Në kohën e këtij shkrimi, lëshimi më i fundit i XRDP, i cili është instaluar nga skripti makepkg.she sugjeruar në depo është 0.9.11, në të cilin analizimi prishet vsock://-adresat, kështu që ju duhet të instaloni XRDP nga Git dhe drejtuesin Xorg për të nga AUR manualisht. Patch-i për XRDP i ofruar në AUR është gjithashtu pak i vjetëruar, kështu që do t'ju duhet të modifikoni manualisht PKGBUILD dhe patch-in.

Ne i klonojmë depot me PKGBUILD nga AUR (zakonisht kjo procedurë, së bashku me montimin, automatizohet nga programe si yay, por autori e bëri të gjithë këtë procedurë në një sistem të pastër):

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

Le të instalojmë vetë XRDP së pari. Le të hapim skedarin PKGBUILD çdo redaktues teksti.

Le të modifikojmë parametrat e ndërtimit. PKGBUILD për ndërtimin e XRDP nga Git nuk përfshin mbështetjen e vsock në ndërtim, kështu që le ta aktivizojmë vetë:

 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
 }

Në një copëz arch-config.diff, правящем юниты и скрипты запуска XRDP под пути к файлам, используемым в Arch Linux, содержится в том числе патч к скрипту instfiles/xrdp.sh, e cila në momentin e shkrimit u hoq nga shpërndarja XRDP, kështu që patch-i do të duhet të modifikohet manualisht:

  [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

Ndërtoni dhe instaloni paketën me komandën % makepkg --skipchecksums -si (Celës --skipchecksums është e nevojshme për të çaktivizuar verifikimin e shumës së kontrollit të skedarëve burimor, pasi ne i kemi redaktuar ato manualisht).

Le të shkojmë te drejtoria xorgxrdp-devel-git, pas së cilës thjesht ndërtojmë paketën me komandën % makepkg -si.

Le të shkojmë te drejtoria linux-vm-tools/arch dhe ekzekutoni skenarin install-config.sh, i cili vendos cilësimet XRDP, PolicyKit dhe PAM:

% sudo ./install-config.sh

Skripti instalon cilësimet e trashëgimisë use_vsock, i cili është injoruar që nga versioni 0.9.11, kështu që le të modifikojmë skedarin e konfigurimit /etc/xrdp/xrdp.ini me dorë:

 ;   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

Shto në skedar ~/.xinitrc nisja e mjedisit të preferuar të menaxherit/desktopit të dritares, i cili do të ekzekutohet kur të nisë serveri X:

% echo "exec i3" > ~/.xinitrc

Le të fikim makinën virtuale. Aktivizoni transportin vsock për VM duke ekzekutuar komandën e mëposhtme në PowerShell si administrator:

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

Le të ndezim përsëri makinën virtuale.

Подключение

Sapo shërbimi XRDP të fillojë pas fillimit të sistemit, aplikacioni vmconnect do ta përcaktojë këtë dhe artikulli i menysë do të bëhet i disponueshëm. Shiko Profilin -> Sesion i përmirësuar. Kur zgjidhni këtë artikull, do të na kërkohet të vendosim rezolucionin e ekranit dhe në skedën Burimet lokale në dialogun që hapet, mund të zgjidhni pajisjet e përcjella brenda seancës RDP.

Aktivizimi i Modalitetit të Sesionit të Përmirësuar për Arch Linux-të ftuar në Hyper-V
Aktivizimi i Modalitetit të Sesionit të Përmirësuar për Arch Linux-të ftuar në Hyper-V

Le të lidhemi. Do të shohim dritaren e hyrjes në XRDP:

Aktivizimi i Modalitetit të Sesionit të Përmirësuar për Arch Linux-të ftuar në Hyper-V

Futni emrin e përdoruesit dhe fjalëkalimin tuaj.

Përdorim

Fitimi nga këto manipulime është i dukshëm: seanca RDP funksionon shumë më e përgjegjshme sesa kur punoni me një ekran virtual pa Sesion të zgjeruar. Disqet e përcjellë brenda VM-së nëpërmjet RDP janë të disponueshëm në drejtori ${HOME}/shared-drives:

Aktivizimi i Modalitetit të Sesionit të Përmirësuar për Arch Linux-të ftuar në Hyper-V

Clipboard është duke punuar mirë. Nuk mund të hidhni printera brenda, kjo jo vetëm që nuk mbështetet, por edhe prish përcjelljen e diskut. Tingulli gjithashtu nuk funksionon, por autorit nuk i duhej. Për të kapur shkurtoret e tastierës si Alt + Tab, duhet të zgjeroni vmconnect në ekran të plotë.

Если по каким-либо причинам есть желание использовать вместо приложения vmconnect встроенный в Windows RDP-клиент или, например, подключаться к этой машине из другой машины, то нужно будет поменять в файле /etc/xrdp/xrdp.ini port mbi tcp://:3389. Nëse makina virtuale është e lidhur me Default Switch dhe merr cilësimet e rrjetit nëpërmjet DHCP, atëherë mund të lidheni me të nga hosti në название_машины.mshome.net. Mund të identifikoheni në TTY vetëm nga aplikacioni vmconnect duke çaktivizuar modalitetin e përmirësuar.

Burimet e përdorura:

  1. Hyper-V Arch Wiki
  2. Raportet e gabimeve në GitHub: 1, 2

Burimi: www.habr.com

Bleni një host të besueshëm për faqet me mbrojtje DDoS, serverë VPS VDS 🔥 Bleni hosting të besueshëm të faqeve të internetit me mbrojtje DDoS, servera VPS VDS | ProHoster