Как пробросить usb на виртуальной машине. Проброс USB-диска в виртуальную машину Hyper-V. Пример под спойлером.

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

Таким образом, желание использовать жесты типов «постукивание», «толкание», «масштабирование» и «панорамирование» на виртуальных рабочих столах становится все больше. Когда дело доходит до поддержки периферийных устройств на виртуальных рабочих столах, вам нужно изучить возможности. Даже если у вас есть списки поддерживаемых функций, он не заменяет реальные тесты в вашей собственной среде виртуального рабочего стола. Тесты в сети также необходимы.

Дополнительное программное обеспечение сторонних производителей

Это может быть, например, если для программного обеспечения требуется ключ для его выполнения. Он должен быть отключен с точки зрения хоста через управление томами. Он отлично подходит для создания виртуальных машин и тестирования различных операционных систем. Однако виртуальная машина не имеет физических компонентов, и иногда нам нужно их использовать. Мы покажем вам несколько способов сделать это как из конфигурации виртуальной машины, так и при ее запуске.

ВАЖНО. Сменные, то есть removable-устройства мы прокинуть в ВМ не сможем, хотя и есть некоторые ухищрения на этот счёт, но сейчас не об этом. Наш алгоритм работоспособен только для USB, которые показываются как fixed. Мы не сможем сделать снапшот для таких дисков.

Приступаем к манипуляциям




Затем просмотрите варианты вверху. Нажмите на него, как показано на рисунке. Изображение # 1 - Нажмите кнопку «Настройки». После нажатия кнопки «Настройки» вы получите окно конфигурации вашей виртуальной машины. Там вы увидите несколько категорий слева.




Одна из этих кнопок имеет знак зеленого цвета. Нажмите эту кнопку, как показано на рисунке.


Из этого списка выберите те, к которым вы хотите, чтобы ваша гостевая система также могла получить доступ, щелкнув их, как показано на рисунке #. Когда вы выбираете одно или несколько устройств, вы заметите, что они переходят в основной раздел экрана конфигурации, в область, где указано «Фильтры устройств». Там вы увидите имя устройства и отмеченную рамку. Это означает, что вы настроены на включение устройства на вашей виртуальной машине.

ВАЖНО. Вовсе не обязательно отключать ВМ перед добавлением жёсткого диска . Для этого существует специальная технология горячего добавления и горячего удаления.

  1. Подключаемся к ВМ через rdp или просто открываем консоль. Заходим в управление дисками. Если новый на месте, значит мы всё делаем правильно. Проверяем в сети ли он. Если нет, то исправляем это, как и раньше, вызовом контекстного меню. Точек монтирования и букв наши разделы не имеют, надо это дело исправлять. Кликаем на любой из разделов правой кнопкой и выбираем пункт «Изменить букву диска или путь к нему…». Выбираем любую свободную.

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




Для этого вы можете использовать главное меню виртуальной машины. Это меню доступно до тех пор, пока вы не находитесь в полноэкранном режиме. В меню наверху есть несколько вариантов, один из которых говорит «Устройства». Нажмите на нее, как показано на рисунке #.



Когда вы выберете «Устройства», вам будет показан список с несколькими параметрами.





С помощью этого устройства вы можете использовать свое устройство на виртуальной машине. Эта опция особенно полезна, когда вы работаете в полноэкранном режиме. Чтобы сделать это, ваша виртуальная машина перемещает мышь в нижний центр экрана. Когда вы сделаете это через несколько секунд, панель инструментов будет снята. Одним из вариантов на панели инструментов является «Устройства».

Один из читателей блога — Vovets666 опробовал бесплатное ПО USBIP и предложил написать про него статью.

Дисклаймер:
все описанное ниже – мое личное видение проблемы и способов ее решения, не являющееся истиной в последней инстанции. Вполне возможно, существуют и другие варианты, я с удовольствием про них послушаю. В качестве инструкции по работе с ПО использованы материалы, найденные в интернете, уже и не помню где… Кроме того, являясь админом — виндузятником, с Linux я знаком довольно поверхностно, работал в условиях дедлайна и времени на изучение матчасти/танцы с бубнами особо много не имел, поэтому описываю, как сделал, чтобы работало, и уверен, что есть и другие способы.

Изображение # 9 - Нажмите опцию Устройства. Нажмите на это, как вы видите на изображении #.


Чтобы включить их в гостевой системе или на вашей виртуальной машине, выберите нужную, щелкнув по ней, как показано на рисунке #.


Любые вопросы, которые вы можете оставить в разделе комментариев. Мы также приглашаем вас следить за нами в социальных сетях.

Итак, имеем виртуальные машины — серверы 1С, поднятые на MSWindowsServer 2008R2. Для работы ПО необходимы подключенные к ним серверные HASP-ключи. Непосредственно подключить их на ВМ на Hyper-V, как известно, нельзя. Задача: каким-то образом пробросить HASP-ключи на виртуальные машины, желательно с использованием минимума дополнительного железа и стоимости лицензий.

Доля в социальных сетях. Виртуализация, то есть технология, которая позволяет вам создавать виртуальную версию устройства или ресурса, такого как сервер, устройство хранения, сеть или даже операционная система, существует уже много лет. Он предлагает так много преимуществ, что трудно себе представить, что однажды мы жили в «просто физическом» мире. Но будьте осторожны - виртуализация также имеет определенные недостатки.

Есть два способа поднять эту тему.


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

(Оффтоп: у 1С в последнее время появилась возможность программного лицензирования ПО, без использования HASP-ключей (что-то вроде активации с использование пин-кодов). Но есть нюансы: обмен на лицензию с программной активацией не бесплатный, при изменении конфигурации машины необходима повторная активация, по истечении определенного лимита разрешение на активацию остается на усмотрение техподдержки, что совсем не айс. Посему было решено использовать старый способ с HASP-ключами).

Управление IP адресом

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

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


Вы можете сделать это, если знаете размер диска, чтобы узнать о своем хост-компьютере, нажмите «Компьютер», найдите свой съемный диск, щелкните правой кнопкой мыши, чтобы отобразить контекстное меню, и перейдите в «Свойства».

Рассматривались варианты:

— способ, предоставляемый компанией Микрософт (правда, для других целей):
RemoteFX+RDP7.1. Не устроил по причинам: необходимо оборудование с поддержкой RemoteFX, на сервере 1С должны быть подняты дополнительные сервисы (служба доступа к удаленному рабочему столу), с хоста на виртуалку должна постоянно висеть сессия RDP, через которую пробрасывается ключ, необходима клиентская лицензия на доступ к RDS. Возможно, в каком-либо из пунктов этого списка я и ошибаюсь, но общее их количество зарубило способ на корню.




Чтобы проверить это, перейдите на виртуальную машину, щелкните правой кнопкой мыши на компьютере, выберите «Управление» или «Администрирование» и перейдите в «Управление компьютером». Значок «Красная стрелка» означает, что диск находится в автономном режиме, щелкните правой кнопкой мыши диск и выберите «В сети» из контекстного меню, которое отображается.

Как только диск будет в сети, ему будет присвоена буква диска. Как только это будет сделано, выйдите из системы и войдите в систему, поскольку устройства должны появиться в обычном режиме. В дополнение к порту вам необходимо определить метод аутентификации, который требует большего внимания. Третий вариант «Гость» - это еще один экспериментальный вариант, который пытается аутентифицироваться непосредственно на учетных записях пользователей, зарегистрированных в гостевой системе.

— аппаратные устройства сторонних производителей. Недостатки: стоят денег, к тому же у некоторых устройств наблюдались проблемы с совместимостью с используемыми ОС (к примеру,Ubox 4100, который у нас есть) и которые производитель решать не собирался. Сейчас проблемы вроде как решены (в других моделях), но осадок остался.

— ПО сторонних производителей. Недостатки: требуют наличия отдельной машины для работы в качестве сервера USB-устройств и, как правило, платные. После поиска
приемлемого софта оказалось, что из всего обнаруженного ПО бесплатным для коммерческого применения является только пакет USBIP. На нем и остановился.

Поместите как можно больше видеопамяти

В некоторых случаях это может не работать должным образом или представлять несколько проблем, всякий раз, когда это происходит, лучшим решением является возврат к опции «Внешний».

Установка гостевых надстроек

Это, однако, связано с необходимостью связывать физические и виртуальные машины. Теперь не только это возможно, но вы можете сделать это «на лету», не ставя физических и виртуальных машин в сеть. Эта ценная и в некоторых случаях незаменимая функциональность обусловлена ​​новым «расширенным режимом сеанса»; Тем не менее, это связано с улучшением соединения виртуальной машины, которое позволяет виртуальной машине подключаться к удаленному рабочему столу, позволяя перенаправлять локальные ресурсы.

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

Пакет USBIP () для работы требует наличия 2х настроенных машин: сервера (к нему непосредственно подключается ключ) и клиента (на него этот ключ пробрасывается). Серверная
часть USBIP существует только под Linux, клиентская – под Linux и Windows (включая 7 и 2008R2).

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

Приступаем к манипуляциям

Во-вторых, давайте вспомним, что функция, которую мы увидим, работает только с гостевыми компьютерами последнего поколения. В окне «Настройки» в разделе «Сервер» выберите «Расширенные критерии режима сеанса», а затем нажмите галочку «Разрешить расширенный сеанс».

1) Установка сервера (машины, в которую подключено USB устройство).

В качестве сервера используем машину с установленным Linux. Я использовал Linux Ubuntu v.11.04 (сборка Lubuntu, которая декларируется как наименее требовательная к ресурсам) как наиболее простую (для меня) систему: ставится без каких-либо проблем, автоматически подцепляет новые подключаемые USB устройства, после установки по умолчанию инсталлированы необходимые компоненты, кроме того, USBIP присутствует в репозитарии. С целью экономии на оборудовании эта машина создана как виртуальная, поднятая на существующем хосте ESXi 4.1 и в нее в свою очередь проброшен ключ HASP с хоста стандартным для ESXi способом.

Мы делаем то же самое в разделе «Пользователь», нажав «Расширенный режим сеанса» и отметьте параметр «Использовать расширенный сеанс», по умолчанию которого указаны те же критерии. На этом этапе мы можем подключиться к виртуальной машине, и всплывающее окно покажет нам настройки сеанса. Мы нажмем на стрелку «Показать параметры».

Также перейдите на вкладку Локальные ресурсы. Нам показывают локальные ресурсы, которые перенаправляются на виртуальную машину. На этом этапе мы помещаем галочку на устройствах и ресурсах, которые мы намерены использовать в удаленном сеансе. Будет видно соединение с устройством, обозначенным первой свободной буквой.

Установка проблем не вызвала: ставим систему, подключаем к сети, выдаем IP, через менеджер пакетов устанавливаем USBIP и необходимые для работы компоненты. Кроме того были установлены VMware tools (так как данная машина – ВМ на ESXi).

На всякий случай напомню, как это делается:

Из оснастки VMware подключаем диск с ПО (Inventory -> Virtual Machine -> Guest -> Install/Upgrade VMware Tools). С этого диска распаковываем архив с ПО на рабочий стол. Запускаем терминал и в нем набираем:

<имя пользователя>@<имя машины>:~$ sudo <путь до файла>\vmware-install.pl —default

2) Настройка сервера USB ключей.

Запускаем терминал. Дальнейшие действия – из командной строки.

· Загружаем следующие модули.

<имя пользователя>@<имя машины>:~$ sudo modprobe usbip

<имя пользователя>@<имя машины>:~$ sudo modprobe usbip_common_mod

· Запускаем usbip в качестве системного демона:

<имя пользователя>@<имя машины>:~$ sudo usbipd D

получаем:

Bind usbip.ko to a usb device to be exportable!

<имя пользователя>@<имя машины>:~$

Внимание! Необходимо сначала запустить демон, а лишь затем подключать устройства, иначе могут возникнуть ошибки на клиенте при подключении. (см. примечания)

· Для просмотра подключенных USB устройств выполняем команду

<имя пользователя>@<имя машины>:~$ lsusb

получаем список подключенных USB устройств с их идентификаторами вида:

Bus XXX Device YYY: ID VendorID:DeviceID < название устройства >

что-то вроде:

Bus 002 Device 004: ID 0529:0001 Aladdin Knowledge Systems HASP v0.06

Bus 002 Device 003: ID 0e0f:0002 VMware, Inc. Virtual USB Hub

Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

Запоминаем сочетание VendorID:DeviceID

· Выполняем команду:

<имя пользователя>@<имя машины>:~$ sudo usbip_bind_driver —list

USBIP проверяет список подключенного оборудования и выводит его с указанием их bus-ID вида:

— busid 2-1 (0529:0001)

2-1:1.0 -> none

— busid 2-2 (0e0f:0002)

2-2:1.0 -> hub

……..

В данном случае bus-ID, указывающий на нужное нам USB устройство: «2-1».

· Теперь подключаем устройство к серверу. Набираем:

<имя пользователя>@<имя машины>::~$ sudo usbip_bind_driver —usbip 2-1

получаем:

** (process:1483): DEBUG: 2-1:1.0 -> none

** (process:1483): DEBUG: write «add 2-1» to /sys/bus/usb/drivers/usbip/match_busid

** Message: bind 2-1 to usbip, complete!

Устройство подключено к USBIP, доступ с локальной машины-сервера к нему теряется.

· Также можно посмотреть, какие устройства подключены к USBIP в данный момент. Для этого набираем:

<имя пользователя>@<имя машины>:~$ sudo usbip_bind_driver —list

Получаем:

— busid 2-1 (0529:0001)

2-1:1.0 — > usbip

— busid 2-2 (0e0f:0002)

2-2:1.0 -> hub

Устройство с bus-ID 2-1 подключено к USBIP. Система может передавать данные об этом USB устройстве с вашей системы удаленным клиентам.

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

Параметры USBIP – linux сервера Usage: usbip_bind_driver

-?, —help вызов
справки
—usbip busid make a device exportable
-other busid use a device by a local
driver
—list print usb devices and their
drivers
—list2 print usb devices and their
drivers in parseable mode
—allusbip make all devices exportable

3) Настройки клиента MS Windows

· Скачиваем дистрибутив. Нам понадобятся обе версии – 0.1 и 0.2.

· Устанавливаем USB/IPEnumenator. Он устанавливается как произвольное системное устройство с драйверами на диске. Драйвера берем из дистрибутива версии 0.2:

Для Windows XP:

1. Распаковываем файлы в локальную папку.

2. В Панели Управления жмем «Установка Оборудования», в открывшемся Окне Приветствия Мастера жмем «Далее».

3. Выбрать «Да, устройство уже подсоединено» -> «Далее».

4. Выбрать «Добавление нового устройства»-> «Далее».

5. Выбрать «Установка оборудования, выбранного из списка вручную» -> «Далее».

7. Выбрать «Установить с диска», -> «Просмотр», выбрать папку с разархивированным драйвером -> «ОК».

9. «Мастер готов к установке нового оборудования» -> Выбрать «Далее» -> Готово».

Для Window 7 (и 2008r2):

1. Для разрешения установки неподписанных драйверов: запускаем cmd от
администратора и выполняем «bcdedit /settestsigningon».

2. Распаковываем файлы в локальную папку..

3. Открываем «Диспетчер Устройств».

4. Правой кнопкой на «имя компьютера» -.«Установить старое устройство» (или выбрать в меню «Действие»).

5. В открывшемся Окне Приветствия Мастера жмем «Далее».

6. Выбрать «Установка оборудования, выбранного из списка вручную» -> «Далее».

8. Выбрать «Установить с диска», -> «Просмотр», выбрать папку с разархивированным драйвером -> «ОК».

10. «Мастер готов к установке нового оборудования» -> Выбрать «Далее» -> «Готово».

Все указанные действия также описаны в идущем с пакетом USBIP файле «usage» на английском языке.

· Подключаем USB устройства, обозначенные как экспортируемые на нужном нам сервере. Для подключения используем USBIP из дистрибутива версии 0.1

Запускаем cmd. Смотрим, какие устройства готовы к подключению:

path-to-usbip:> usbip.exe -l

(server-ip – IP адрес сервера USB устройств из пункта 2)

C :\ usbip > usbip l 192.168.1.13

usbip dbg: usbip_network.c: 229 (tcp_connect) trying 192.168.1.13 port 3240

usbip dbg: usbip_network.c: 249 (tcp_connect) connected to 192.168.1.13:3240

— 192.168.1.13

usbip dbg: usbip.c: 423 (query_exported_devices) exportable 2 devices

2-1: unknown vendor: unknown product (0529:0001)

: /sys/devices/pci0000:00/0000:00:11.0/0000:02:02.0/usb2/2-1

: unknown class / unknown subclass / unknown protocol (ff/00/00)

: 0 — unknown class / unknown subclass / unknown protocol (ff/00/00)

В результате видим, что на сервере 192.168.1.13 готово к подключению устройство с bus-ID 2-1 – то, которые мы настроили в пункте 2. Устройств может быть и больше.

path to usbip :> usbip . exe a < server ip > USB ID

USB-ID в нашем случае 2-1.

Получаем многабукв (листинг параметров) и в завершение:

new usb device attached to usbvbus port 2

USB устройство должно появиться в системе клиента. Окно терминала желательно не закрывать.

Параметры USBIP – windows клиента Usage: usbip

a, —attach Attach a remote USB device
-x, —attachall Attach all remote USB
devices on the specific host
-d, —detach Detach an imported USB
device
-l, —list List exported USB devices
p, —port List virtual USB port status
-D, —debug Print debugging information
-v, —version Show version
-?, -h, —help Print this help

Примечания: Возникавшие проблемы и их решение:

1. Я использовал версию системы 11.04 на ядре 2.6. После обновления системы до версии 11.10 (ядро 3.0.4) usbip работать перестал – выдал ошибку, что компонент не найден. Пришлось восстанавливать машину и отказываться от обновлений. С другой стороны, так как это служебная узкоспециализированная машина и доступ к ней ограничен, это было признано не критичным.

2. Поначалу hasp-ключи отказывались подключаться к клиенту, выдавая ошибку. В ходе экспериментов было установлено, что сначала необходимо запустить usbip -демон, а уже затем подсоединять к машине ключи. В дальнейшем ошибки исчезли, подключаться ключи стали в любом порядке, повторить ошибки не удалось. Это как раз одна из тех странностей, про которые я упоминал.

3. После перезагрузки ВМ клиента — сервера 1С иногда не получается подключить к нему некоторые из ключей – выдает ошибки. Возможно, это связано с зависшими на сервере HASP сессиями обмена с usb-устройствами. Лечится перезагрузкой сервера HASP и повторным пробросом ключей на клиент.