Ngaktifake Mode Sesi sing Ditingkatake kanggo Arch Linux-tamu ing Hyper-V

Ngaktifake Mode Sesi sing Ditingkatake kanggo Arch Linux-tamu ing Hyper-V

Nggunakake mesin virtual ing Linux ing Hyper-V sing wis disiyapake langsung saka kothak iki minangka pengalaman sing rada kurang nyaman tinimbang karo tamu Windows-машинами. Причиной тому является то, что Hyper-V все же изначально не предназначался для десктопного пользования; нельзя просто взять, поставить пакет гостевых дополнений и получить работоспособное графическое ускорение, буфер обмена, общие директории и другие радости жизни, как это происходит в VirtualBox.

Hyper-V dhewe nyedhiyakake sawetara layanan integrasi - Dadi, tamu bisa nggunakake layanan salinan bayangan host (VSS), tamu bisa ngirim sinyal mati, tamu bisa nyinkronake wektu sistem karo host virtualisasi, file bisa diijolke saka inang karo mesin virtual (Copy-VMFile в PowerShell). Для некоторых гостевых операционных систем, в числе которых, конечно, находится и Windows, в приложении Virtual Machine Connection (vmconnect.exe) Mode Sesi Enhanced kasedhiya, bisa digunakake liwat protokol RDP lan ngidini sampeyan nransfer piranti disk lan printer menyang mesin virtual, uga nggunakake clipboard sing dienggo bareng.

Enhanced Session Mode из коробки работает в Windows в Hyper-V сразу после установки. С гостями на Linux нужно устанавливать RDP-сервер, поддерживающий vsock (специальное виртуальное сетевое адресное пространство в Linux, предназначенное для коммуникации с гипервизором). Если для Ubuntu в приложении VMCreate, идущим с Hyper-V на настольных редакциях Windows, есть специальный подготовленный шаблон виртуальной машины, в котором работающий с vsock RDP-сервер XRDP wis diinstal, banjur karo distribusi liyane kurang lan kurang cetha - contone, penulis kirim iki получилось включить ESM в Fedora. Здесь же мы активируем Enhanced Session Mode для виртуальной машины с Arch Linux.

Nginstal layanan integrasi

Kabeh luwih utawa kurang prasaja ing kene, kita mung kudu nginstal paket kasebut hyperv saka gudang komunitas:

% sudo pacman -S hyperv

Ayo ngaktifake layanan VSS lan ijol-ijolan metadata lan file:

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

Nginstal XRDP

gudang 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

Ing wektu nulis artikel iki, release paling anyar saka XRDP, kang diinstal dening script makepkg.shsing disaranake ing repositori yaiku 0.9.11, kang parsing rusak vsock://-alamat, supaya sampeyan kudu nginstal XRDP saka Git lan driver Xorg kanggo saka AUR kanthi manual. Patch XRDP sing ditawakake ing AUR uga rada ketinggalan jaman, mula sampeyan kudu ngowahi PKGBUILD lan tembelan kanthi manual.

Ayo clone repositori karo PKGBUILDs saka AUR (biasane prosedur iki, bebarengan karo mbangun, otomatis dening program kaya Yay, nanging penulis nindakake kabeh prosedur iki ing sistem sing resik):

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

Ayo nginstal XRDP dhewe dhisik. Ayo mbukak file kasebut PKGBUILD sembarang editor teks.

Ayo ngowahi paramèter mbangun. PKGBUILD kanggo mbangun XRDP saka Git ora kalebu dhukungan vsock nalika mbangun, mula ayo aktifake dhewe:

 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
 }

Ing tembelan arch-config.diff, правящем юниты и скрипты запуска XRDP под пути к файлам, используемым в Arch Linux, содержится в том числе патч к скрипту instfiles/xrdp.sh, sing nalika nulis iki dibusak saka distribusi XRDP, dadi tembelan kudu diowahi kanthi manual:

  [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

Ayo ngumpulake lan nginstal paket kanthi printah % makepkg --skipchecksums -si (kunci --skipchecksums dibutuhake kanggo mateni verifikasi checksum file sumber, amarga kita nyunting kanthi manual).

Ayo menyang direktori xorgxrdp-devel-git, sawise iku kita mung ngumpul paket karo printah % makepkg -si.

Ayo menyang direktori linux-vm-tools/arch lan mbukak script install-config.sh, sing nyetel setelan XRDP, PolicyKit lan PAM:

% sudo ./install-config.sh

Script nginstal setelan warisan use_vsock, sing ora digatekake wiwit versi 0.9.11, mula ayo ngowahi file konfigurasi /etc/xrdp/xrdp.ini kanthi manual:

 ;   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

Tambah menyang file ~/.xinitrc ngluncurake manajer jendhela / lingkungan desktop sing disenengi, sing bakal dieksekusi nalika server X diwiwiti:

% echo "exec i3" > ~/.xinitrc

Ayo mateni mesin virtual. Kita ngaktifake transportasi vsock kanggo mesin virtual kanthi nglakokake printah ing ngisor iki ing PowerShell minangka administrator:

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

Ayo nguripake mesin virtual maneh.

Sambungan

Sanalika layanan XRDP diwiwiti sawise sistem diwiwiti, aplikasi vmconnect bakal ndeteksi iki lan item kasebut bakal kasedhiya ing menu. View -> Sesi Ditingkatake. Nalika milih item iki, kita bakal dijaluk nyetel resolusi layar, lan ing tab Sumber Daya Lokal Ing dialog sing mbukak, sampeyan bisa milih piranti sing arep diterusake menyang sesi RDP.

Ngaktifake Mode Sesi sing Ditingkatake kanggo Arch Linux-tamu ing Hyper-V
Ngaktifake Mode Sesi sing Ditingkatake kanggo Arch Linux-tamu ing Hyper-V

Ayo nyambung. Kita bakal weruh jendhela login XRDP:

Ngaktifake Mode Sesi sing Ditingkatake kanggo Arch Linux-tamu ing Hyper-V

Ketik jeneng pangguna lan sandhi.

Gunakake

Keuntungan saka manipulasi kasebut katon: sesi RDP luwih responsif tinimbang nalika nggarap tampilan virtual tanpa Sesi Enhanced. Disk dropped ing VM liwat RDP kasedhiya ing direktori ${HOME}/shared-drives:

Ngaktifake Mode Sesi sing Ditingkatake kanggo Arch Linux-tamu ing Hyper-V

Papan klip dianggo kanthi becik. Sampeyan ora bisa nerusake printer ing njero; iki ora mung didhukung, nanging uga ngilangi disk forwarding. Swara uga ora bisa, nanging penulis ora perlu iki. Kanggo njupuk trabasan keyboard kaya Alt + Tab, sampeyan kudu nggedhekake vmconnect menyang layar wutuh.

Если по каким-либо причинам есть желание использовать вместо приложения vmconnect встроенный в Windows RDP-клиент или, например, подключаться к этой машине из другой машины, то нужно будет поменять в файле /etc/xrdp/xrdp.ini port ing tcp://:3389. Yen mesin virtual disambungake menyang Ngalih Default lan nampa setelan jaringan liwat DHCP, sampeyan bisa nyambung menyang saka host ing название_машины.mshome.net. Sampeyan mung bisa mlebu menyang TTY saka aplikasi vmconnect kanthi mateni Mode Enhanced.

Sumber sing digunakake:

  1. Hyper-V - Arch Wiki
  2. Laporan bug ing GitHub: 1, 2

Source: www.habr.com

Tuku hosting sing dipercaya kanggo situs kanthi proteksi DDoS, server VPS VDS 🔥 Tuku hosting situs web sing bisa dipercaya nganggo proteksi DDoS, server VPS VDS | ProHoster