Aktive Mòd Sesyon Amelyore pou Arch Linux-envite nan Hyper-V

Aktive Mòd Sesyon Amelyore pou Arch Linux-envite nan Hyper-V

Itilizasyon machin vityèl sou Linux Nan Hyper-V, lè w pare pou itilize l, se yon eksperyans yon ti jan mwens konfòtab pase ak yon envite. Windows-машинами. Причиной тому является то, что Hyper-V все же изначально не предназначался для десктопного пользования; нельзя просто взять, поставить пакет гостевых дополнений и получить работоспособное графическое ускорение, буфер обмена, общие директории и другие радости жизни, как это происходит в VirtualBox.

Hyper-V tèt li bay plizyè sèvis entegrasyon - Se konsa, envite yo ka itilize sèvis kopi lonbraj lame a (VSS), envite yo ka voye yon siyal are, envite yo ka senkronize tan sistèm lan ak lame a Virtualization, dosye yo ka fè echanj soti nan lame a ak machin nan vityèl (Copy-VMFile в PowerShell). Для некоторых гостевых операционных систем, в числе которых, конечно, находится и Windows, в приложении Virtual Machine Connection (vmconnect.exe) Mòd Sesyon Enhanced ki disponib, k ap travay atravè pwotokòl RDP epi ki pèmèt ou transfere aparèy ki gen kapasite ak enprimant nan machin vityèl la, epi tou sèvi ak yon clipboard pataje.

Enhanced Session Mode из коробки работает в Windows в Hyper-V сразу после установки. С гостями на Linux нужно устанавливать RDP-сервер, поддерживающий vsock (специальное виртуальное сетевое адресное пространство в Linux, предназначенное для коммуникации с гипервизором). Если для Ubuntu в приложении VMCreate, идущим с Hyper-V на настольных редакциях Windows, есть специальный подготовленный шаблон виртуальной машины, в котором работающий с vsock RDP-сервер XRDP deja pre-enstale, Lè sa a, ak lòt distribisyon li se pi piti ak mwens klè - pou egzanp, otè a pòs sa a получилось включить ESM в Fedora. Здесь же мы активируем Enhanced Session Mode для виртуальной машины с Arch Linux.

Enstale sèvis entegrasyon

Tout bagay se plis oswa mwens senp isit la, nou jis bezwen enstale pake a hyperv soti nan depo kominote a:

% sudo pacman -S hyperv

Ann pèmèt sèvis VSS ak echanj metadata ak dosye:

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

Enstale 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

Nan moman ekri atik sa a, dènye lage XRDP, ki enstale pa script la makepkg.shyoun nan sijere nan repozitwa a se 0.9.11, nan ki analiz yo kase vsock://-addresses, kidonk w ap oblije enstale XRDP soti nan Git ak chofè Xorg pou li soti nan AUR manyèlman. Patch XRDP yo ofri nan AUR la tou yon ti kras demode, kidonk w ap oblije modifye PKGBUILD ak patch la manyèlman.

Ann klonaj repozitwa ak PKGBUILD soti nan AUR (anjeneral pwosedi sa a, ansanm ak bati a, se otomatize pa pwogram tankou ye, men otè a te fè tout pwosedi sa a sou yon sistèm pwòp):

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

Ann enstale XRDP tèt li an premye. Ann louvri dosye a PKGBUILD nenpòt editè tèks.

Ann edite paramèt konstriksyon yo. PKGBUILD pou bati XRDP soti nan Git pa enkli sipò vsock lè w ap bati, kidonk ann pèmèt li tèt nou:

 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
 }

Nan patch la arch-config.diff, правящем юниты и скрипты запуска XRDP под пути к файлам, используемым в Arch Linux, содержится в том числе патч к скрипту instfiles/xrdp.sh, ki nan moman ekri a te retire soti nan distribisyon XRDP, kidonk patch la pral oblije modifye manyèlman:

  [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

Ann konpile epi enstale pake a ak lòd la % makepkg --skipchecksums -si (kle --skipchecksums bezwen enfim verifikasyon checksum nan fichye sous, paske nou te modifye yo manyèlman).

Ann ale nan anyè a xorgxrdp-devel-git, apre sa nou tou senpleman rasanble pake a ak lòd la % makepkg -si.

Ann ale nan anyè a linux-vm-tools/arch epi kouri script la install-config.sh, ki mete paramèt XRDP, PolicyKit ak PAM:

% sudo ./install-config.sh

Script enstale anviwònman eritaj use_vsock, ki te inyore depi vèsyon 0.9.11, kidonk ann edite fichye konfigirasyon an /etc/xrdp/xrdp.ini manyèlman:

 ;   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

Ajoute nan dosye ~/.xinitrc lanse anviwònman manadjè fenèt / biwo pi pito ou a, ki pral egzekite lè sèvè X la kòmanse:

% echo "exec i3" > ~/.xinitrc

Ann fèmen machin vityèl la. Nou aktive transpò vsock pou machin vityèl la lè nou kouri lòd sa a nan PowerShell kòm yon administratè:

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

Ann vire sou machin vityèl la ankò.

Подключение

Le pli vit ke sèvis XRDP la kòmanse apre sistèm lan kòmanse, aplikasyon vmconnect la pral detekte sa a epi atik la ap vin disponib nan meni an. Gade -> Sesyon Amelyore. Lè w ap chwazi atik sa a, nou pral mande pou nou mete rezolisyon ekran an, epi sou tab la Resous lokal yo Nan dyalòg ki ouvè a, ou ka chwazi aparèy yo dwe voye nan sesyon RDP la.

Aktive Mòd Sesyon Amelyore pou Arch Linux-envite nan Hyper-V
Aktive Mòd Sesyon Amelyore pou Arch Linux-envite nan Hyper-V

Ann konekte. Nou pral wè fenèt la konekte XRDP:

Aktive Mòd Sesyon Amelyore pou Arch Linux-envite nan Hyper-V

Antre non itilizatè ou an ak modpas ou.

Sèvi ak

Benefis ki genyen nan manipilasyon sa yo se aparan: sesyon RDP a travay pi plis repons pase lè w ap travay ak yon ekspozisyon vityèl san sesyon Enhanced. Disk tonbe andedan VM a atravè RDP yo disponib nan anyè a ${HOME}/shared-drives:

Aktive Mòd Sesyon Amelyore pou Arch Linux-envite nan Hyper-V

Clipboard la travay byen. Ou pa ka voye enprimant andedan; sa a pa sèlman pa sipòte, men tou kraze transmisyon disk. Son an tou pa travay, men otè a pa t 'bezwen sa a. Yo nan lòd yo pran rakoursi klavye tankou Alt + Tab, ou bezwen elaji vmconnect sou ekran konplè.

Если по каким-либо причинам есть желание использовать вместо приложения vmconnect встроенный в Windows RDP-клиент или, например, подключаться к этой машине из другой машины, то нужно будет поменять в файле /etc/xrdp/xrdp.ini port sou tcp://:3389. Si machin vityèl la konekte ak Default Switch epi li resevwa paramèt rezo atravè DHCP, Lè sa a, ou ka konekte ak li nan men lame a nan название_машины.mshome.net. Ou kapab sèlman konekte nan TTY apati aplikasyon vmconnect la lè w fèmen Mode Enhanced.

Sous yo itilize:

  1. Hyper-V - Arch Wiki
  2. Rapò ensèk sou GitHub: 1, 2

Sous: www.habr.com

Achte hosting serye pou sit ki gen pwoteksyon DDoS, sèvè VPS VDS 🔥 Achte yon hébergement sit entènèt serye ak pwoteksyon DDoS, sèvè VPS VDS | ProHoster