ProHoster > Blog > administración > Habilite el modo de sesión mejorado para invitados de Arch Linux en Hyper-V
Habilite el modo de sesión mejorado para invitados de Arch Linux en Hyper-V
El uso de máquinas virtuales Linux en Hyper-V listas para usar es algo menos cómodo que con máquinas Windows invitadas. La razón de esto es que Hyper-V no estaba diseñado originalmente para uso de escritorio; no puede simplemente seguir adelante e instalar el paquete de adiciones de invitados y obtener aceleración de gráficos viable, portapapeles, directorios compartidos y otras alegrías de la vida, como sucede en VirtualBox.
Hyper-V en sí proporciona múltiples servicios de integración - por lo tanto, los invitados pueden usar el servicio de instantáneas (VSS) del host, los invitados pueden enviar una señal de apagado, los invitados pueden sincronizar la hora del sistema con el host de virtualización, los archivos se pueden intercambiar con la máquina virtual desde el host (Copy-VMFile en PowerShell). Para algunos sistemas operativos invitados, incluido, por supuesto, Windows, en la aplicación Conexión de máquina virtual (vmconnect.exe) Está disponible el modo de sesión mejorado, que funciona a través del protocolo RDP y le permite reenviar dispositivos de disco e impresoras a la máquina virtual, así como usar el portapapeles compartido.
El modo de sesión mejorado funciona de forma inmediata en Windows en Hyper-V inmediatamente después de la instalación. Con invitados en Linux, debe instalar un servidor RDP que admita vsock (un espacio de direcciones de red virtual especial en Linux diseñado para comunicarse con el hipervisor). Si es para Ubuntu, la aplicación VMCreate que viene con Hyper-V en las ediciones de escritorio de Windows tiene una plantilla de máquina virtual especial preparada en la que se ejecuta un servidor RDP con vsock XRDP ya preinstalado, luego con otras distribuciones es cada vez menos claro, por ejemplo, el autor esta publicación resultó habilitar ESM en Fedora. Aquí también habilitamos el modo de sesión mejorado para la máquina virtual Arch Linux.
Instalación de servicios de integración
Aquí todo es más o menos simple, solo necesitamos instalar el paquete hyperv del repositorio de la comunidad:
% sudo pacman -S hyperv
Habilitar servicios VSS, intercambiar metadatos y archivos:
% for i in {vss,fcopy,kvp}; do sudo systemctl enable hv_${i}_daemon.service; done
Instalación de XRDP
repositorio linux-vm-herramientas en GitHub proporciona scripts que automatizan el proceso de instalación y configuración de XRDP para Arch Linux y Ubuntu. Instale Git, si aún no está instalado, junto con el compilador y otro software para compilaciones manuales, y luego clone el repositorio:
En el momento de escribir este artículo, la versión más reciente de XRDP, que está instalada por el script makepkg.shpropuesto en el repositorio es 0.9.11, en el que se rompe el análisisvsock://-direcciones, por lo que debe instalar XRDP desde Git y el controlador Xorg para ello desde AUR manualmente. El parche para XRDP que se ofrece en AUR también está un poco desactualizado, por lo que tendrá que editar el PKGBUILD y el parche manualmente.
Clonamos los repositorios con PKGBUILDs del AUR (normalmente este procedimiento, junto con el montaje, está automatizado por programas como Hurra, pero el autor hizo todo este procedimiento en un sistema limpio):
Primero instalemos XRDP. Abramos el archivo PKGBUILD cualquier editor de texto.
Editemos los parámetros de compilación. El PKGBUILD para compilar XRDP desde Git no incluye compatibilidad con vsock en la compilación, así que habilitémoslo nosotros mismos:
en un parche arch-config.diff, que edita unidades y secuencias de comandos de inicio XRDP en las rutas de los archivos utilizados en Arch Linux, contiene, entre otras cosas, un parche para la secuencia de comandos instfiles/xrdp.sh, que al momento de escribir fue borrado de la distribución XRDP, por lo que habrá que editar el parche manualmente:
Cree e instale el paquete con el comando % makepkg --skipchecksums -si (llave --skipchecksums es necesario para deshabilitar la verificación de la suma de verificación de los archivos fuente, ya que los editamos manualmente).
vamos al directorio xorgxrdp-devel-git, después de lo cual simplemente construimos el paquete con el comando % makepkg -si.
vamos al directorio linux-vm-tools/arch y ejecutar el script install-config.sh, que establece la configuración de XRDP, PolicyKit y PAM:
% sudo ./install-config.sh
El script instala la configuración heredada use_vsock, que se ignora desde la versión 0.9.11, así que editemos el archivo de configuración /etc/xrdp/xrdp.ini a mano:
; 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
Agregar al archivo ~/.xinitrc iniciando su administrador de ventanas/entorno de escritorio preferido, que se ejecutará cuando se inicie el servidor X:
% echo "exec i3" > ~/.xinitrc
Apaguemos la máquina virtual. Habilite el transporte vsock para la máquina virtual ejecutando el siguiente comando en PowerShell como administrador:
Tan pronto como se inicie el servicio XRDP después de que se inicie el sistema, la aplicación vmconnect lo determinará y el elemento del menú estará disponible. Ver -> sesión mejorada. Cuando seleccione este elemento, se le pedirá que configure la resolución de la pantalla y en la pestaña Recursos locales en el cuadro de diálogo que se abre, puede seleccionar los dispositivos reenviados dentro de la sesión RDP.
Conectémonos. Veremos la ventana de inicio de sesión de XRDP:
Introduzca su nombre de usuario y contraseña.
el uso de
El beneficio de estas manipulaciones es notable: la sesión RDP funciona con mucha más capacidad de respuesta que cuando se trabaja con una pantalla virtual sin sesión mejorada. Los discos reenviados dentro de la VM a través de RDP están disponibles en el directorio ${HOME}/shared-drives:
El portapapeles funciona bien. No puede arrojar impresoras adentro, esto no solo no es compatible, sino que también interrumpe el reenvío del disco. El sonido tampoco funciona, pero el autor no lo necesitaba. Para capturar atajos de teclado como Alt + Tabulador, debe expandir vmconnect a pantalla completa.
Si por alguna razón desea utilizar el cliente RDP integrado en Windows en lugar de la aplicación vmconnect o, por ejemplo, conectarse a esta máquina desde otra máquina, deberá cambiar el archivo /etc/xrdp/xrdp.iniport en tcp://:3389. Si la máquina virtual está conectada al conmutador predeterminado y recibe la configuración de red a través de DHCP, puede conectarse a ella desde el host en название_машины.mshome.net. Solo puede iniciar sesión en TTY desde la aplicación vmconnect desactivando el modo mejorado.