
Menggunakan mesin virtual pada Linux Pengalaman menggunakan Hyper-V secara default sedikit kurang nyaman dibandingkan dengan versi guest. Windows-машинами. Причиной тому является то, что Hyper-V все же изначально не предназначался для десктопного пользования; нельзя просто взять, поставить пакет гостевых дополнений и получить работоспособное графическое ускорение, буфер обмена, общие директории и другие радости жизни, как это происходит в VirtualBox.
Hyper-V sendiri menyediakan - jadi, tamu dapat menggunakan layanan penyalinan bayangan (VSS) dari host, tamu dapat mengirim sinyal mati, tamu dapat menyinkronkan waktu sistem dengan host virtualisasi, file dapat ditukar dengan mesin virtual dari host (Copy-VMFile в PowerShell). Для некоторых гостевых операционных систем, в числе которых, конечно, находится и Windows, в приложении Virtual Machine Connection (vmconnect.exe) Tersedia Mode Sesi yang Disempurnakan, yang berfungsi melalui protokol RDP dan memungkinkan Anda meneruskan perangkat disk dan printer ke mesin virtual, serta menggunakan clipboard bersama.
Enhanced Session Mode из коробки работает в Windows в Hyper-V сразу после установки. С гостями на Linux нужно устанавливать RDP-сервер, поддерживающий vsock (специальное виртуальное сетевое адресное пространство в Linux, предназначенное для коммуникации с гипервизором). Если для Ubuntu в приложении VMCreate, идущим с Hyper-V на настольных редакциях Windows, есть специальный подготовленный шаблон виртуальной машины, в котором работающий с vsock RDP-сервер sudah pra-instal, lalu dengan distro lain semakin tidak jelas - misalnya, pembuatnya получилось включить ESM в Fedora. Здесь же мы активируем Enhanced Session Mode для виртуальной машины с Arch Linux.
Menginstal layanan integrasi
Semuanya kurang lebih sederhana di sini, kita hanya perlu menginstal paketnya hyperv dari repositori komunitas:
% sudo pacman -S hypervAktifkan layanan VSS, tukar dan file:
% for i in {vss,fcopy,kvp}; do sudo systemctl enable hv_${i}_daemon.service; doneInstalasi XRDP
gudang на 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/archPada saat penulisan ini, rilis terbaru XRDP, yang diinstal dengan skrip makepkg.shdiusulkan dalam repositori adalah 0.9.11, vsock://-alamat, jadi Anda harus menginstal XRDP dari Git dan driver Xorg untuk itu dari AUR secara manual. Tambalan untuk XRDP yang ditawarkan di AUR juga agak ketinggalan jaman, jadi Anda harus mengedit PKGBUILD dan tambalan secara manual.
Kami mengkloning repositori dengan PKGBUILD dari AUR (biasanya prosedur ini, bersama dengan perakitan, diotomatiskan oleh program seperti , tetapi penulis melakukan seluruh prosedur ini pada sistem yang bersih):
% git clone https://aur.archlinux.org/xrdp-devel-git.git
% git clone https://aur.archlinux.org/xorgxrdp-devel-git.gitMari kita instal XRDP sendiri terlebih dahulu. Mari kita buka filenya PKGBUILD editor teks apapun.
Mari kita edit parameter build. PKGBUILD untuk membangun XRDP dari Git tidak menyertakan dukungan vsock di dalam build, jadi mari kita aktifkan sendiri:
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 tambalan arch-config.diff, правящем юниты и скрипты запуска XRDP под пути к файлам, используемым в Arch Linux, содержится в том числе патч к скрипту instfiles/xrdp.sh, yang pada saat penulisan dari distribusi XRDP, jadi tambalan harus diedit secara 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 -0600Bangun dan instal paket dengan perintah % makepkg --skipchecksums -si (kunci --skipchecksums diperlukan untuk menonaktifkan verifikasi checksum dari file sumber, karena kami mengeditnya secara manual).
Mari kita pergi ke direktori xorgxrdp-devel-git, setelah itu kita cukup membuat paket dengan perintah % makepkg -si.
Mari kita pergi ke direktori linux-vm-tools/arch dan jalankan skrip install-config.sh, yang menetapkan pengaturan XRDP, PolicyKit, dan PAM:
% sudo ./install-config.shSkrip menginstal setelan lawas use_vsock, yang diabaikan sejak versi 0.9.11, jadi mari kita edit file konfigurasinya /etc/xrdp/xrdp.ini secara 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_nodelayTambahkan ke file ~/.xinitrc meluncurkan pengelola jendela/lingkungan desktop pilihan Anda, yang akan dijalankan saat server X dimulai:
% echo "exec i3" > ~/.xinitrcMari kita matikan mesin virtual. Aktifkan transportasi vsock untuk VM dengan menjalankan perintah berikut di PowerShell sebagai administrator:
PS Admin > Set-VM -VMName НАЗВАНИЕ_МАШИНЫ -EnhancedSessionTransportType HvSocketMari hidupkan mesin virtual lagi.
Подключение
Segera setelah layanan XRDP dimulai setelah sistem dimulai, aplikasi vmconnect akan menentukan ini dan item menu akan tersedia. Liha -> Sesi yang ditingkatkan. Saat Anda memilih item ini, kami akan diminta untuk mengatur resolusi layar, dan di tab Sumber Daya Lokal pada dialog yang terbuka, Anda dapat memilih perangkat yang diteruskan di dalam sesi RDP.


Mari terhubung. Kami akan melihat jendela masuk XRDP:

Masukkan nama pengguna dan kata sandi Anda.
Menggunakan
Keuntungan dari manipulasi ini terlihat: sesi RDP bekerja jauh lebih responsif daripada saat bekerja dengan tampilan virtual tanpa Sesi yang Ditingkatkan. Disk yang diteruskan di dalam VM melalui RDP tersedia di direktori ${HOME}/shared-drives:

Papan klip berfungsi dengan baik. Anda tidak dapat membuang printer ke dalam, ini tidak hanya tidak didukung, tetapi juga . Suaranya juga tidak berfungsi, tetapi penulis tidak membutuhkannya. Untuk menangkap pintasan keyboard seperti Alt + Tab, Anda perlu memperluas vmconnect ke layar penuh.
Если по каким-либо причинам есть желание использовать вместо приложения vmconnect встроенный в Windows RDP-клиент или, например, подключаться к этой машине из другой машины, то нужно будет поменять в файле /etc/xrdp/xrdp.ini port pada tcp://:3389. Jika mesin virtual terhubung ke Default Switch dan menerima pengaturan jaringan melalui DHCP, maka Anda dapat menghubungkannya dari host di название_машины.mshome.net. Anda hanya dapat masuk ke TTY dari aplikasi vmconnect dengan mematikan Enhanced Mode.
Sumber yang digunakan:
- Laporan bug di GitHub: ,
Sumber: www.habr.com
