LinuxВиртуализация

Расширенный сеанс Hyper-V

Расширенный сеанс Hyper-V или как его еще называют английские товарищи Enhanced Session Mode. В большинстве случаев для управления виртуальными машинами мы используем средства удаленного доступа. В Windows – это RDP, Powershell, MMC и т.д., в Linux – SSH. Бывают ситуации в которых нельзя, или крайне нежелательно открывать удаленный доступ к виртуальной машине. Например сервера доступные из интернета. Виртуальные машины с другой подсетью, либо защищенные.

Причины могут быть разные. Решение почти всегда одно – подключиться с помощью Диспетчера Hyper-V. Используя прямое подключение к виртуальной машине можно, например, выключить её “жестко” по питанию. Зайти без настройки каких-либо средств удаленного администрирования на самой виртуальной машине.

Используя расширенный сеанс Hyper-V Enhanced Session Mode у нас появляется возможность взаимодействовать с виртуальной машиной по RDP. Т.е. нет необходимости настраивать консоль управления виртуальными машинами. Перечислим основные преимущества ESM.

  • поддержка большого разрешения экрана
  • общий буфер обмена
  • общий доступ к файлам и папкам с возможностью использования перетаскивания (Drag&Drop)
  • доступ к локальным USB-устройствам (мультимедиа, внешние диски, флешки, принтеры и т.п.)
  • использование смарт-карт и прочих plug-and-play устройств

Вообще говоря, использовать RDP протокол для подключения к виртуальной машине отличная идея. Трансляция рабочего стола значительно быстрее, чем при подключении из Hyper-V Manager. Понять что расширенный сеанс Hyper-V включен можно взглянув на значок с изображением мониторов.

Нажав на данную кнопочку можно изменить режим подключения к виртуальной машине с базового на расширенный. Если ESM не активен на сервере, давайте его включим.

Включение Enhanced Session Mode

Включить использование ESM на сервере Hyper-V можно через Powershell либо Диспетчер Hyper-V. Рассмотрим оба варианта.

Включение Enhanced Session Mode из Powershell

Set-VMHost -EnableEnhancedSessionMode $True -Passthru

Данный командлет необходимо выполнить на сервере Hyper-V. После его выполнения расширенный режим Hyper-V будет включен по умолчанию.

Включение Enhanced Session Mode из Диспетчера Hyper-V

В запущенном Диспетчер Hyper-V выбираем необходимый сервер, затем Параметры Hyper-V. Находим Политика режима расширенного сеанса. Ставим галочку Разрешить режим расширенного сеанса.

Расширенный сеанс Hyper-V работает не на всех клиентах. Минимально необходимые требования Microsoft указывает такие:

  • Windows Server 2012 R2 и выше
  • Windows 8.1 и выше
  • Remote Desktop Services включен и запущен
  • Виртуальная машина второй генерации (generation 2)

Также есть возможность использовать расширенный сеанс Hyper-V на некоторых дистрибутивах Linux. Далее в статье мы рассмотрим процесс настройки ESM на ОС Ubuntu. Для работы расширенного режима при соблюдении указанных мер рекомендую установить все обновления. Только после этого можно надеяться на стабильную работу.

Подключение к виртуальной машине

Рассмотрим два варианта подключения к виртуальной машине не Hyper-V сервере. Первый вариант с использованием Диспетчер Hyper-V, второй вариант при помощи RDP.

Подключение к ВМ из Диспетчера Hyper-V

Запустим оснастку Диспетчер Hyper-V и подключимся к нужной виртуальной машине. При подключении откроется окошко с настройками разрешения экрана.

Данное окно будет открывать каждый раз при подключении если не нажать галочку Сохранить параметры для подключения к этой вирт. машине. Перейдя во вкладку Локальные ресурсы можно выбрать какие локальные устройства подключать к данной виртуальной машине.

В параметрах звука можно выбрать что именно пробрасывать на ВМ (микрофон, колонки)

В локальных устройствах и ресурсах можно выбрать проброс дисков с локальной машины, и прочих Plug&Play устройств.

Единожды выбрав настройки проброса устройств можно сохранить их и далее при открытии окна ВМ они будут подключаться автоматически. Файл с сохраненными настройками будет находиться по пути:

%appdata%\Microsoft\Windows\Hyper-V\Client.0

Для каждой ВМ настройки сохраняются в файле формата: vmconnect.rdp.{GUID виртуальной машины}.config

Подключение к ВМ по RDP

Настройка первоначального подключения к виртуальной машине по RDP чуть сложнее чем из диспетчера Hyper-V. Создадим файл RDP подключения и назовем его wm.rdp и добавим следующие строки

full address:s:whs19
pcb:s:94471c5d-4d66-416a-a9b2-b80e3a2bfd21
server port:i:2179
negotiate security layer:i:0
  • full address:s: – имя Hyper-V сервера. У меня это whs19
  • pcb:s: – идентификатор виртуальной машины. В моем случае: 94471c5d-4d66-416a-a9b2-b80e3a2bfd21
  • server port:i: – порт используемый для подключения 2179 должен быть открыт в брендмауере. Его не меняем.

Указываете свои данные и сохраняете файл.

Узнать идентификатор ВМ можно так

Get-Vm|select VMname, VMid

Готово. Можно использовать данный файл для подключения по RDP из любого места где есть доступ к серверу.

Расширенный сеанс Hyper-V на Linux

Официально Microsoft не заявляет о поддержке расширенного сеанса на Linux. Но есть пакеты настройки позволяющие включить данный режим на некоторых ОС. Настройку буду делать на Ubuntu 20.04, работать должно и на более ранних версиях. Обязательное требование: виртуальная машина должна быть второй генерации (generation 2).

Устанавливаем виртуальную машину, в настройках ставим generation 2

После создания виртуальной машины с Ubuntu заходим Параметры -> Безопасность и снимаем галочку Включить безопасную загрузку

При установке операционной системы необходимо выбрать Require my password to Log in. Если выбрать вход без пароля расширенный режим Hyper-V работать не будет.

После окончания установки поставьте все последние обновления на операционную систему. Приступим к установке необходимого софта. Запустим терминал и скачаем файл установки в домашнюю директорию пользователя.

wget https://raw.githubusercontent.com/Microsoft/linux-vm-tools/master/ubuntu/18.04/install.sh

Установим права на запуск для скачанного скрипта

sudo chmod +x install.sh

Запустим скрипт install.sh

sudo ./install.sh

Перезагрузим компьютер

sudo reboot

Повторно запустим скрипт install.sh

sudo ./install.sh

Если по окончанию работы скрипта у вас вылезла ошибка также как у меня

Необходимо вручную изменить настройки в файле /etc/xrdp/xrdp.ini

sudo nano /etc/xrdp/xrdp.ini

Меняем настройки на указанные ниже

port=vsock://-1:3389
use_vsock=false

Сохраняем и выключаем виртуальную машину. Если указанной выше ошибки нет, все равно рекомендую проверить указанные параметры.

Заходим на сервер Hyper-V и выполняем командлет

Set-VM -VMName ubuntu -EnhancedSessionTransportType HvSocket

где ubuntu – название виртуальной машины на Hyper-V сервере

Включаем виртуальную машину. После подключения к ней появится окошко выбора разрешения. Верный знак что расширенный режим включен.

Раскрыв меню Показать параметры можно выбрать что подключить при входе (диск, флеш, буфер и т.п.).

При полной загрузке машины появится окно входа в систему от xrdp. Вводим свой логин и пароль. Если все настроено верно, откроется рабочий стол.

Пример настройки можно посмотреть на видео

С использованием расширенного режима Hyper-V работать с Linux намного удобнее. Полноценный буфер обмена, подключение жестких дисков, флеш и прочих устройств.

Спасибо за внимание, до новых встреч.

Поделиться:
Подписаться
Уведомить о
guest
10 комментариев
Старые
Новые Популярные
Межтекстовые Отзывы
Посмотреть все комментарии
иван
иван
2 лет назад

Исправляем черный экран.

sudo nano /etc/xrdp/startwm.sh

Внесите изменения в файле startwm.sh:

unset DBUS_SESSION_BUS_ADDRESS
unset XDG_RUNTIME_DIR

Вячеслав
Вячеслав
2 лет назад

А для Alt Linux возможно включить расширенный режим?

Роман
Роман
1 год назад
Ответить на  Вячеслав

На AstraLinux Orel завел.

Роман
Роман
1 год назад

На AstraLinux Orel завел, правда в ручную все файлы поправил.

Влад
Влад
1 год назад

После авторизации в xrdp ubuntu 20.04.1 не грузится, остается голубой экран. В базовый режим переходит и работает нормально.

Как исправить?

еdd
еdd
9 месяцев назад
Ответить на  admin

не работает . фффффффффффффффф топку

Дмитрий
Дмитрий
1 год назад

как побороть эту историю
Windows server 2016

Снимок экрана 2023-01-03 220508.jpg