
Ús de màquines virtuals a Linux a Hyper-V des del primer moment és una experiència una mica menys còmoda que amb la funció de convidat Windows-машинами. Причиной тому является то, что Hyper-V все же изначально не предназначался для десктопного пользования; нельзя просто взять, поставить пакет гостевых дополнений и получить работоспособное графическое ускорение, буфер обмена, общие директории и другие радости жизни, как это происходит в VirtualBox.
Hyper-V en si proporciona - Per tant, els convidats poden utilitzar el servei de còpia d'ombra (VSS) de l'amfitrió, els convidats poden enviar un senyal d'apagada, els convidats poden sincronitzar l'hora del sistema amb l'amfitrió de virtualització, els fitxers es poden intercanviar amb la màquina virtual des de l'amfitrió (Copy-VMFile в PowerShell). Для некоторых гостевых операционных систем, в числе которых, конечно, находится и Windows, в приложении Virtual Machine Connection (vmconnect.exe) El mode de sessió millorat està disponible, que funciona mitjançant el protocol RDP i us permet reenviar dispositius de disc i impressores a la màquina virtual, així com utilitzar el porta-retalls compartit.
Enhanced Session Mode из коробки работает в Windows в Hyper-V сразу после установки. С гостями на Linux нужно устанавливать RDP-сервер, поддерживающий vsock (специальное виртуальное сетевое адресное пространство в Linux, предназначенное для коммуникации с гипервизором). Если для Ubuntu в приложении VMCreate, идущим с Hyper-V на настольных редакциях Windows, есть специальный подготовленный шаблон виртуальной машины, в котором работающий с vsock RDP-сервер ja preinstal·lat, després amb altres distribucions és cada cop menys clar, per exemple, l'autor получилось включить ESM в Fedora. Здесь же мы активируем Enhanced Session Mode для виртуальной машины с Arch Linux.
Instal·lació de serveis d'integració
Aquí tot és més o menys senzill, només cal instal·lar el paquet hyperv del repositori de la comunitat:
% sudo pacman -S hypervHabilita els serveis VSS, intercanvia i fitxers:
% for i in {vss,fcopy,kvp}; do sudo systemctl enable hv_${i}_daemon.service; doneInstal·lació XRDP
repositori на 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/archEn el moment d'escriure aquest article, la versió més recent de XRDP, instal·lada per l'script makepkg.shsuggerit al repositori és 0.9.11, vsock://-adreces, de manera que heu d'instal·lar XRDP des de Git i el controlador Xorg per a això des d'AUR manualment. El pedaç per a XRDP que s'ofereix a l'AUR també està una mica obsolet, de manera que haureu d'editar el PKGBUILD i el pedaç manualment.
Clonem els dipòsits amb PKGBUILD de l'AUR (normalment aquest procediment, juntament amb el muntatge, s'automatitza mitjançant programes com , però l'autor va fer tot aquest procediment en un sistema net):
% git clone https://aur.archlinux.org/xrdp-devel-git.git
% git clone https://aur.archlinux.org/xorgxrdp-devel-git.gitPrimer instal·lem XRDP. Obrim el fitxer PKGBUILD qualsevol editor de text.
Editem els paràmetres de construcció. El PKGBUILD per crear XRDP des de Git no inclou suport vsock a la construcció, així que habilitem-lo nosaltres mateixos:
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
}En un pegat arch-config.diff, правящем юниты и скрипты запуска XRDP под пути к файлам, используемым в Arch Linux, содержится в том числе патч к скрипту instfiles/xrdp.sh, que en el moment d'escriure de la distribució XRDP, de manera que el pegat s'haurà d'editar manualment:
[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 -0600Creeu i instal·leu el paquet amb l'ordre % makepkg --skipchecksums -si (clau --skipchecksums és necessari per desactivar la verificació de la suma de verificació dels fitxers font, ja que els hem editat manualment).
Anem al directori xorgxrdp-devel-git, després del qual simplement construïm el paquet amb l'ordre % makepkg -si.
Anem al directori linux-vm-tools/arch i executeu l'script install-config.sh, que estableix la configuració de XRDP, PolicyKit i PAM:
% sudo ./install-config.shL'script instal·la la configuració heretada use_vsock, que s'ignora des de la versió 0.9.11, així que editem el fitxer de configuració /etc/xrdp/xrdp.ini manualment:
; 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_nodelayAfegeix al fitxer ~/.xinitrc llançant el vostre gestor de finestres/entorn d'escriptori preferit, que s'executarà quan s'iniciï el servidor X:
% echo "exec i3" > ~/.xinitrcApaguem la màquina virtual. Habiliteu el transport vsock per a la màquina virtual executant l'ordre següent a PowerShell com a administrador:
PS Admin > Set-VM -VMName НАЗВАНИЕ_МАШИНЫ -EnhancedSessionTransportType HvSocketTornem a encendre la màquina virtual.
Afegeix
Tan aviat com s'iniciï el servei XRDP després que s'iniciï el sistema, l'aplicació vmconnect ho determinarà i l'element del menú estarà disponible. Veure comanda -> Sessió millorada. Quan seleccioneu aquest element, se'ns demanarà que establim la resolució de la pantalla i a la pestanya Recursos locals Al diàleg que s'obre, podeu seleccionar els dispositius reenviats dins de la sessió RDP.


Connectem-nos. Veurem la finestra d'inici de sessió XRDP:

Introduïu el vostre nom d'usuari i contrasenya.
Utilitzar
El benefici d'aquestes manipulacions és notable: la sessió RDP funciona molt més sensible que quan es treballa amb una pantalla virtual sense sessió millorada. Els discs reenviats dins de la màquina virtual mitjançant RDP estan disponibles al directori ${HOME}/shared-drives:

El porta-retalls funciona bé. No podeu tirar impressores dins, això no només no és compatible, sinó també . El so tampoc funciona, però l'autor no el necessitava. Per capturar dreceres de teclat com Alt + Tab, heu d'ampliar vmconnect a pantalla completa.
Если по каким-либо причинам есть желание использовать вместо приложения vmconnect встроенный в Windows RDP-клиент или, например, подключаться к этой машине из другой машины, то нужно будет поменять в файле /etc/xrdp/xrdp.ini port en tcp://:3389. Si la màquina virtual està connectada al commutador predeterminat i rep la configuració de la xarxa mitjançant DHCP, podeu connectar-hi des de l'amfitrió a название_машины.mshome.net. Només podeu iniciar sessió a TTY des de l'aplicació vmconnect desactivant el mode millorat.
Fonts utilitzades:
- Informes d'errors a GitHub: ,
Font: www.habr.com
