ProHoster > Blog > administração > Habilitar Modo de Sessão Aprimorado para convidados do Arch Linux no Hyper-V
Habilitar Modo de Sessão Aprimorado para convidados do Arch Linux no Hyper-V
O uso de máquinas virtuais Linux no Hyper-V pronto para uso é uma experiência um pouco menos confortável do que com máquinas convidadas do Windows. A razão para isso é que o Hyper-V não foi originalmente projetado para uso em desktop; você não pode simplesmente ir em frente e instalar o pacote Guest Additions e obter aceleração gráfica viável, área de transferência, diretórios compartilhados e outras alegrias da vida, como acontece no VirtualBox.
O próprio Hyper-V fornece vários serviços de integração - assim, os convidados podem usar o serviço de cópia de sombra (VSS) do host, os convidados podem enviar um sinal de desligamento, os convidados podem sincronizar a hora do sistema com o host de virtualização, os arquivos podem ser trocados com a máquina virtual do host (Copy-VMFile no PowerShell). Para alguns sistemas operacionais convidados, incluindo, é claro, o Windows, no aplicativo Virtual Machine Connection (vmconnect.exe) Está disponível o Modo de sessão aprimorado, que funciona por meio do protocolo RDP e permite encaminhar dispositivos de disco e impressoras para a máquina virtual, além de usar a área de transferência compartilhada.
O modo de sessão aprimorado funciona imediatamente no Windows no Hyper-V logo após a instalação. Com convidados no Linux, você precisa instalar um servidor RDP que suporte vsock (um espaço de endereço de rede virtual especial no Linux projetado para se comunicar com o hypervisor). Se para o Ubuntu, o aplicativo VMCreate que vem com o Hyper-V nas edições de desktop do Windows tem um modelo de máquina virtual preparado especial no qual um servidor RDP rodando com vsock XRDP já pré-instalado, então com outras distribuições é cada vez menos claro - por exemplo, o autor esta postagem acabou habilitando o ESM no Fedora. Aqui também ativamos o Modo de sessão aprimorado para a máquina virtual Arch Linux.
Instalando serviços de integração
Tudo é mais ou menos simples aqui, só precisamos instalar o pacote hyperv do repositório da comunidade:
% sudo pacman -S hyperv
Habilite os serviços VSS, troque metadados e arquivos:
% for i in {vss,fcopy,kvp}; do sudo systemctl enable hv_${i}_daemon.service; done
Instalação do XRDP
repositório ferramentas linux-vm no GitHub fornece scripts que automatizam o processo de instalação e configuração do XRDP para Arch Linux e Ubuntu. Instale o Git, se ainda não estiver instalado, junto com o compilador e outros softwares para compilações manuais e depois clone o repositório:
No momento da redação deste artigo, a versão mais recente do XRDP, que é instalada pelo script makepkg.shproposto no repositório é 0.9.11, em que a análise é quebradavsock://-addresses, então você tem que instalar o XRDP do Git e o driver Xorg para ele do AUR manualmente. O patch para XRDP oferecido no AUR também está um pouco desatualizado, então você terá que editar o PKGBUILD e o patch manualmente.
Clonamos os repositórios com PKGBUILDs do AUR (geralmente esse procedimento, junto com a montagem, é automatizado por programas como yay, mas o autor fez todo esse procedimento em um sistema limpo):
Vamos instalar o próprio XRDP primeiro. Vamos abrir o arquivo PKGBUILD qualquer editor de texto.
Vamos editar os parâmetros de construção. O PKGBUILD para construir XRDP a partir do Git não inclui suporte a vsock na construção, então vamos habilitá-lo nós mesmos:
Em um patch arch-config.diff, que edita unidades e scripts de inicialização XRDP nos caminhos para arquivos usados no Arch Linux, contém, entre outras coisas, um patch para o script instfiles/xrdp.sh, que na hora de escrever foi deletado da distribuição XRDP, então o patch terá que ser editado manualmente:
Compile e instale o pacote com o comando % makepkg --skipchecksums -si (chave --skipchecksums é necessário para desativar a verificação da soma de verificação dos arquivos de origem, pois os editamos manualmente).
Vamos ao diretório xorgxrdp-devel-git, após o qual simplesmente construímos o pacote com o comando % makepkg -si.
Vamos ao diretório linux-vm-tools/arch e execute o script install-config.sh, que define as configurações de XRDP, PolicyKit e PAM:
% sudo ./install-config.sh
O script instala a configuração herdada use_vsock, que é ignorado desde a versão 0.9.11, então vamos editar o arquivo de configuração /etc/xrdp/xrdp.ini manualmente:
; 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
Adicionar ao arquivo ~/.xinitrc iniciando seu gerenciador de janelas/ambiente de área de trabalho preferido, que será executado quando o servidor X for iniciado:
% echo "exec i3" > ~/.xinitrc
Vamos desligar a máquina virtual. Habilite o transporte vsock para a VM executando o seguinte comando no PowerShell como administrador:
Assim que o serviço XRDP for iniciado após a inicialização do sistema, o aplicativo vmconnect determinará isso e o item de menu ficará disponível. Ver -> Sessão aprimorada. Ao selecionar este item, seremos solicitados a definir a resolução da tela e, na guia Recursos locais na caixa de diálogo que se abre, você pode selecionar os dispositivos encaminhados dentro da sessão RDP.
Vamos nos conectar. Veremos a janela de login do XRDP:
Digite seu nome de usuário e senha.
Usar
O lucro dessas manipulações é perceptível: a sessão RDP funciona muito mais responsiva do que ao trabalhar com uma tela virtual sem sessão aprimorada. Os discos encaminhados dentro da VM via RDP ficam disponíveis no diretório ${HOME}/shared-drives:
A área de transferência está funcionando bem. Você não pode jogar impressoras dentro, isso não só não é suportado, mas também quebra o encaminhamento de disco. O som também não funciona, mas o autor não precisava. Para capturar atalhos de teclado como Alt + Tab, você precisa expandir vmconnect para tela cheia.
Se, por algum motivo, houver o desejo de usar o cliente RDP embutido no Windows em vez do aplicativo vmconnect ou, por exemplo, conectar-se a esta máquina de outra máquina, será necessário alterar o arquivo /etc/xrdp/xrdp.iniport em tcp://:3389. Se a máquina virtual estiver conectada ao switch padrão e receber configurações de rede via DHCP, você poderá se conectar a ela a partir do host em название_машины.mshome.net. Você só pode fazer login no TTY a partir do aplicativo vmconnect desativando o Modo Avançado.