Aktifake Mode Sesi Enhanced kanggo tamu Arch Linux ing Hyper-V

Aktifake Mode Sesi Enhanced kanggo tamu Arch Linux ing Hyper-V

Nggunakake mesin virtual Linux ing Hyper-V metu saka kothak iku pengalaman rada kurang nyaman saka nggunakake mesin tamu Windows. Alesan kanggo iki yaiku Hyper-V asline ora dimaksudake kanggo panggunaan desktop; sampeyan ora bisa mung nginstal paket tambahan tamu lan entuk akselerasi grafis fungsional, clipboard, direktori bareng lan kabungahan urip liyane, kaya sing kedadeyan ing 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 ing PowerShell). Kanggo sawetara sistem operasi tamu, kalebu, mesthi, Windows, ing aplikasi Sambungan Mesin Virtual (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.

Mode Sesi Enhanced dianggo metu saka kothak ing Windows ing Hyper-V sanalika sawise instalasi. Kanthi tamu ing Linux, sampeyan kudu nginstal server RDP sing ndhukung vsock (ruang alamat jaringan virtual khusus ing Linux sing dirancang kanggo komunikasi karo hypervisor). Yen kanggo Ubuntu ing aplikasi VMCreate sing dilengkapi Hyper-V ing edisi desktop Windows, ana template mesin virtual khusus sing disiapake ing ngendi server RDP nggarap vsock. XRDP wis diinstal, banjur karo distribusi liyane kurang lan kurang cetha - contone, penulis kirim iki Aku bisa ngaktifake ESM ing Fedora. Ing kene kita bakal ngaktifake Mode Sesi Enhanced kanggo mesin virtual 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 ing GitHub nyedhiyakake skrip sing ngotomatisasi proses instalasi lan konfigurasi XRDP kanggo Arch Linux lan Ubuntu. Ayo nginstal Git, yen durung diinstal, bebarengan karo kompiler lan piranti lunak liyane kanggo mbangun manual, banjur kloning repositori:

% 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, sing ngatur unit lan skrip peluncuran XRDP ing sangisore path file sing digunakake ing Arch Linux, uga ngemot tembelan kanggo skrip 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.

Aktifake Mode Sesi Enhanced kanggo tamu Arch Linux ing Hyper-V
Aktifake Mode Sesi Enhanced kanggo tamu Arch Linux ing Hyper-V

Ayo nyambung. Kita bakal weruh jendhela login XRDP:

Aktifake Mode Sesi Enhanced kanggo tamu Arch Linux 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:

Aktifake Mode Sesi Enhanced kanggo tamu Arch Linux 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.

Yen sakperangan alesan sampeyan pengin nggunakake klien RDP sing dibangun ing Windows tinimbang aplikasi vmconnect utawa, contone, nyambung menyang mesin iki saka mesin liyane, sampeyan kudu ngganti file kasebut. /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

Add a comment