Проброс USB устройств в виртуальную машину Hyper-V

Одним из существенных недостатков Hyper-Vперед другими гипервизорами (например, ESXi или Proxmox) являются отсутствие полноценной возможности пробрасывать USB устройства с хоста в виртуальные машины. Начиная с версии Hyper-V 2012 R2 появился ряд изменений, касающихся возможностей USB Passthrouth, однако этот функционал все еще уступает возможностям конкурентов. В этой статье мы расскажем об особенностях проброса USB устройств в Hyper-V.

Особенности USB Passthrough в Hyper-V

Под термином USB passthrough понимается возможность проброса USB устройства из хостового гипервизора (или по сети с другого сервера/устройства) в виртуальную машину. С помощью USB passthrough вы можете прокинуть внутрь ВМ токен, USB ключ, модем или любое другое оборудование, подключенное через USB порт.

Плохая новость в том, что в Hyper-V нет нормальной поддержки проброса USB устройств, вы не сможете пробросить любое USB устройство с физического хоста в виртуальную машину (в VMWare с этим на порядок лучше – см. статью USB passthrough в VMWare ESXi). Есть несколько встроенных возможностей использования USB устройства в Hyper-V, но у всех них есть существенные ограничения. На данный момент можно использовать следующие технологии для проброса USB устройства в Hyper-V.

  • Проброс USB дисков с хоста Hyper-V;
  • Расширенные возможности консоли Hyper-V — Enhanced Session Mode;
  • Проброс USB устройства через RDP сессию;
  • Использование программного/аппаратного средства для проброса USB по сети (USB over IP).
Последний сценарий предполагает использование сторонних решений для реализации USB over IP. Это может быть сетевой USB хаб, программное решение по пробросу USB устройства через TCP/IP сеть с другого сервера. Большинство популярных коммерческих решений — платные (AnywhereUSB, DigiUSBAW). Из бесплатных можно отметить VirtualHere USB (бесплатна для одного ключа и одного сервера) и довольно старый opensource проект usbip.sourceforge.net (серверная часть реализуется на Linux, на Windows ставится клиент).

Проброс USB диска в виртуальную машину Hyper-V

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

Примечание.

  1. Данная инструкция работает только для USB дисков, которые в системе видятся как fixed, т.е. флешки, смарт-карты и прочие removable-устройства прокинуть внутрь виртуальной машины не получится ( хотя есть небольшой трюк, позволяющий заставить Windows видеть сменное устройство как жесткий диск);
  2. Для таких дисков невозможно создать снапшот/чекпоинт.

  1. Подключите внешний USB диск к хосту Hyper-V (это может быть как любой хост с Windows и установленной ролью Hyper-V, так и Free Hyper-V Server). Диск появится в системе и ему будет назначена буква диска (если буква диска не назначилась, см. статью);
  2. Откройте консоль управления дисками Disk Management (diskmgmt.msc) на хосте Hyper-V. Щелкните правой кнопкой мыши по диску (левая колонка, в нашем примере USB диск размером 20 Гб имеет идентификатор Disk 1) и выберите Offline. перевести usb диск на хосте hyper-v в офлайн
    Если у вас используется Windows Server Core или Hyper-V Server, в которых отсутствуют некоторых графические оснастки, вы можете управлять локальными дисками с помощью PowerShell модуля управления дисками. Следующие команды могут вывести список физических дисков на хосте и перевести указанный диск в режим offline: Get-Disk
    Get-Disk -Number 1 |Set-Disk -IsOffline:$true
    powershell перевести usb диск в оффлайн

  3. Запустите консоль Hyper-V Manager. Откройте свойства виртуальной машины, в которую вы хотите пробросить USB диск. Добавьте новый диск в разделе SCSI Controller. Укажите, что это физический диск (Physical hard disk). В выпадающем меню выберите ваш USB диск (он будет выглядеть как-то так: Disk 1 20.00 Gb Bus 0 Lun 0 Target 1).
    Примечание. Не нужно выключить виртуальную машину при добавлении SCSI жесткого диска. Для SCSI устройства поддерживается горячее добавление и удаление дисков (hot-add и hot-remove).
    проброс USB диска в виртуальную машину hyper-v
  4. Теперь покажем, как получить доступ к USB диску на Hyper-V хосте из гостевой ОС виртуальной машины на примере Windows. Откройте консоль виртуальной машины или подключитесь к ней по RDP(как включить rdp). Авторизуйтесь в гостевой ОС. Запустите диспетчер дисков. ОС должна увидеть новый диск. Если он находится в оффлайн статусе, щелкните по нему провой кнопкой и выберите Online. На данный момент разделам на диске не назначены буквы дисков или точки монтирования. Чтобы исправить это, щелкните ПКМ по разделу на диске и в контекстном меню выберите Change Drive Letter and Paths. Назначьте разделу любую свободную букву диска или укажите точку монтирования. изменить букву usb диска

Все! Вы напрямую пробросили внешний USB диск внутрь виртуальной машины Hyper-V и можете его использовать.

Важно. Для предотвращения потери данных, прежде чем физически извлечь жесткий диск из USB порта хоста Hyper-V, убедитесь, что никакие приложения внутри виртуальной машине к этому диску не обращаются.

Для безопасного извлечения USB диск можно открыть консоль Hyper-V Manager и перейти в окно настроек виртуальной машины. В разделе SCSI Controller выберите жесткий диск, который нужно удалить и нажмите Remove. Сохраните изменения. После этого жесткий диск можно физически извлечь из USB порта хоста Hyper-V.

Проброс USB устройств через Enhanced Session Mode в Hyper-V

В версии Hyper-V, представленной в Windows Server 2012 R2/ 8.1 практически любые USB устройства можно прокинуть внутрь виртуальной машины с помощью технологии Enhanced Session Mode (ESM). Для подключения используется утилита Hyper-V Manager vmconnect.exe . Она позволяет подключится к консоли виртуальной машины и выбрать USB устройства, которые нужно пробросить.

Сначала нужно включить Enhanced Session Mode в настройках сервера Hyper-V. Это можно сделать с помощью PowerShell:

Set-VMHost -EnableEnhancedSessionMode $true

Или в меню Hyper-V Settings -> Enhanced Session Mode.

включить Enhanced Session Mode в hyperv

Перезапустите службу Hyper-V Virtual Machine Management:
Get-Service vmms | Restart-Service

В разделе Integration Services настроек ВМ нужно включить опцию Guest Services.

Для проброса USB устройства через Enhanced Session Mode нужно запустить консоль Hyper-V, выбрать ВМ и нажать Connect. Либо вы можете запустить утилиту vmconnect.exe (Virtual Machine Connection), указать Hyper-V сервер и имя ВМ (утилита поддерживает некоторые параметры командной строки, поэтому вы можете отдавать пользователям настроенный bat файл).

утилита подключения к консоли виртуальной машины vmconnect.exe (Virtual Machine Connection)

Ели ВМ поддерживает Enhanced Session Mode, появится окно, похожее на свойства RDP подключения. Нажмите Show Option -> Local Resources -> Local device and resources -> More.

настройки подключения к ВМ на hyper-v

Выберите USB устройства на вашем компьютере, которое нужно пробросить в ВМ. Если устройства, которое вам нужно, сейчас не подключено, выберите опции Other supported Plug and Play (PnP) devices и Devices that I plug in later.

проброс usb устройства в виртуальную машину hyper-v через enhanced session mode

Теперь все подключённые к вашему компьютеру USB устройства будут автоматически доступны в консольной сессии виртуальной машины Hyper-V.

Основные возможности и ограничения Enhanced Session Mode

  • В качестве гостевых ОС поддерживается только Windows (начиная с Windows 8.1/Windows Server 2012 R2);
  • Вам не нужен прямой доступ к ВМ. Все подключения выполняются через Hyper-V хост (вы подключаетесь к нему через сеть по порту TCP 2179), а подключение к ВМ выполняется через шину VMBus;
  • На компьютере пользователя должен быть установлен Hyper-V Manager
Данный метод похож на возможность проброса USB устройств через RDP сессию. Мы не будет рассматривать его подробнее. проброс usb через rdp

Методы проброса USB устройства через сеть (USB over IP или в RDP сессии) позволяют сохранить доступ к USB ключу при миграции виртуальной машины на другой хост (Hyper-V Live Migration /vMotion).


Предыдущая статья Следующая статья


Комментариев: 17 Оставить комментарий

Оставить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Я не робот( Обязательно отметьте)