Çalakkirina Moda Rûniştina Pêşkeftî ji bo Arch Linux-mêvan di Hyper-V de

Çalakkirina Moda Rûniştina Pêşkeftî ji bo Arch Linux-mêvan di Hyper-V de

Bikaranîna makîneyên virtual li ser Linux di Hyper-V de ji qutîkê ve ezmûnek hinekî kêmtir rehet e ji ya bi mêvan re Windows-машинами. Причиной тому является то, что Hyper-V все же изначально не предназначался для десктопного пользования; нельзя просто взять, поставить пакет гостевых дополнений и получить работоспособное графическое ускорение, буфер обмена, общие директории и другие радости жизни, как это происходит в VirtualBox.

Hyper-V bixwe peyda dike gelek xizmetên entegrasyonê - Ji ber vê yekê, mêvan dikarin karûbarê kopîkirina siya mêvandar (VSS) bikar bînin, mêvan dikarin îşaretek girtîbûnê bişînin, mêvan dikarin dema pergalê bi mêvandarê virtualbûnê re hevdeng bikin, pelan dikarin ji mêvandarê bi makîneya virtual re werin guheztin (Copy-VMFile в PowerShell). Для некоторых гостевых операционных систем, в числе которых, конечно, находится и Windows, в приложении Virtual Machine Connection (vmconnect.exe) Moda Danişînê ya Pêşkeftî heye, ku bi protokola RDP-yê dixebite û dihêle hûn cîhazên dîskê û çaperan li makîneya virtual veguhezînin, û her weha clipboardek hevpar bikar bînin.

Enhanced Session Mode из коробки работает в Windows в Hyper-V сразу после установки. С гостями на Linux нужно устанавливать RDP-сервер, поддерживающий vsock (специальное виртуальное сетевое адресное пространство в Linux, предназначенное для коммуникации с гипервизором). Если для Ubuntu в приложении VMCreate, идущим с Hyper-V на настольных редакциях Windows, есть специальный подготовленный шаблон виртуальной машины, в котором работающий с vsock RDP-сервер XRDP jixwe pêş-sazkirî ye, wê hingê bi belavkirinên din re ew kêmtir û kêmtir zelal e - mînakî, nivîskar ev post получилось включить ESM в Fedora. Здесь же мы активируем Enhanced Session Mode для виртуальной машины с Arch Linux.

Sazkirina xizmetên entegrasyonê

Li vir her tişt kêm-zêde hêsan e, em tenê hewce ne ku pakêtê saz bikin hyperv ji depoya civakê:

% sudo pacman -S hyperv

Werin em karûbarên VSS û danûstendinê çalak bikin metadata û pelan:

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

Sazkirina 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

Di dema nivîsandina vê gotarê de, serbestberdana herî dawî ya XRDP, ku ji hêla skrîptê ve hatî saz kirin makepkg.shya ku di depoyê de tê pêşniyar kirin 0.9.11 e, ku tê de parsek şikestî ye vsock://-navnîşan, ji ber vê yekê hûn neçar in ku XRDP ji Git û ajokarê Xorg ji bo wê ji AUR bi destan saz bikin. Patcha XRDP ya ku di AUR-ê de tê pêşkêş kirin jî hinekî kevnar e, ji ber vê yekê hûn neçar in ku PKGBUILD-ê biguherînin û bi destan patch bikin.

Werin em depoyên bi PKGBUILD-ên ji AUR-ê klon bikin (bi gelemperî ev prosedur, ligel çêkirinê, ji hêla bernameyên mîna Yay, lê nivîskar ev prosedur tev li ser pergalek paqij kir):

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

Werin em pêşî XRDP bixwe saz bikin. Ka em pelê vekin PKGBUILD her edîtorê nivîsê.

Ka em parametreyên avakirinê biguherînin. PKGBUILD ji bo avakirina XRDP ji Git di dema çêkirinê de piştgiriya vsock nake, ji ber vê yekê em bi xwe wê çalak bikin:

 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
 }

Di paçê de arch-config.diff, правящем юниты и скрипты запуска XRDP под пути к файлам, используемым в Arch Linux, содержится в том числе патч к скрипту instfiles/xrdp.sh, ku di dema nivîsandinê de hate rakirin ji belavkirina XRDP, ji ber vê yekê pêdivî ye ku patch bi destan were guherandin:

  [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

Ka em pakêtê bi fermanê berhev bikin û saz bikin % makepkg --skipchecksums -si (qûfle --skipchecksums pêdivî ye ku verastkirina kontrolê ya pelên çavkaniyê neçalak bike, ji ber ku me wan bi destan guhert).

Ka em biçin pelrêça xorgxrdp-devel-git, piştî ku em bi tenê bi fermanê pakêtê kom dikin % makepkg -si.

Ka em biçin pelrêça linux-vm-tools/arch û senaryoyê bimeşînin install-config.sh, ku mîhengên XRDP, PolicyKit û PAM-ê destnîşan dike:

% sudo ./install-config.sh

Skrîpt mîhenga mîras saz dike use_vsock, ya ku ji guhertoya 0.9.11 ve hatî paşguh kirin, ji ber vê yekê em pelê veavakirinê biguherînin /etc/xrdp/xrdp.ini bi destan:

 ;   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

Li pelê zêde bike ~/.xinitrc destpêkirina rêveberê pencereya xweya bijare / hawîrdora sermaseyê, ya ku dê gava ku servera X dest pê dike were darve kirin:

% echo "exec i3" > ~/.xinitrc

Werin em makîneya virtual vemirînin. Em veguheztina vsock ji bo makîneya virtual bi xebitandina fermana jêrîn li PowerShell-ê wekî rêveber çalak dikin:

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

Ka em dîsa makîneya virtual vekin.

Подключение

Hema ku karûbarê XRDP dest pê dike piştî ku pergalê dest pê dike, serîlêdana vmconnect dê vê yekê tespît bike û tişt dê di menuyê de peyda bibe. Dîtinî -> Danişîna Enhanced. Dema ku vê babetê hilbijêrin, dê ji me were xwestin ku çareseriya ekranê, û li ser tabê saz bikin Avkaniyên herêmî Di diyaloga ku vedibe, hûn dikarin cîhazên ku di danişîna RDP de werin şandin hilbijêrin.

Çalakkirina Moda Rûniştina Pêşkeftî ji bo Arch Linux-mêvan di Hyper-V de
Çalakkirina Moda Rûniştina Pêşkeftî ji bo Arch Linux-mêvan di Hyper-V de

Werin em girêdan. Em ê pencereya têketina XRDP bibînin:

Çalakkirina Moda Rûniştina Pêşkeftî ji bo Arch Linux-mêvan di Hyper-V de

Navê bikarhêner û şîfreya xwe binivîse.

Bikar bînin

Feydeya van manîpulasyonan diyar e: danişîna RDP ji dema ku bi dîmenderek virtual re bêyî Danişîna Pêşkeftî dixebitin pirtir bersivdar dixebite. Dîskên ku di hundurê VM-ê de bi navgîniya RDP ve hatine avêtin di pelrêçê de hene ${HOME}/shared-drives:

Çalakkirina Moda Rûniştina Pêşkeftî ji bo Arch Linux-mêvan di Hyper-V de

Clipboard baş dixebite. Hûn nekarin çapkeran li hundur bişînin; ev ne tenê nayê piştgirî kirin, lê di heman demê de jî şandina dîskê dişkîne. Deng jî naxebite, lê nivîskar hewcedarê vê yekê nebû. Ji bo ku hûn kurtebirên klavyeyê yên mîna Alt+Tab bigirin, hûn hewce ne ku vmconnect li ser ekrana tevahî berfireh bikin.

Если по каким-либо причинам есть желание использовать вместо приложения vmconnect встроенный в Windows RDP-клиент или, например, подключаться к этой машине из другой машины, то нужно будет поменять в файле /etc/xrdp/xrdp.ini port li ser tcp://:3389. Ger makîneya virtual bi Guhestina Default ve girêdayî ye û mîhengên torê bi DHCP-ê distîne, wê hingê hûn dikarin ji mêvandarê pê ve girêdayî bin. название_машины.mshome.net. Hûn dikarin tenê ji serîlêdana vmconnect bi vegirtina Moda Pêşkeftî têkevin TTY.

Çavkaniyên bikaranîn:

  1. Hyper-V - Arch Wiki
  2. Raporên çewtiyê li ser GitHub: 1, 2

Source: www.habr.com

Ji bo malperên bi parastina DDoS, serverên VPS VDS mêvandariya pêbawer bikirin 🔥 Hostinga malperê ya pêbawer bi parastina DDoS, serverên VPS VDS bikirin | ProHoster