VMware PCI Passthrough (VMDirectPath): проброс USB контроллера в ВМ
Другой, менее удобный метод предоставления доступа из ВМ к физическому USB устройству — проброс целиком USB контроллера с ESXi хоста. Этот режим называется VMDirectPath. Для его использования чипсет сервера должен поддерживать Intel Directed I/O или AMD I/O Virtualization Technology (AMD IOMMU), и этот режим включен в настройках BIOS/UEFI.
Если на сервере установлен только один USB контроллер, при пробросе его в ВМ, вы не сможете использовать локально подключенные USB устройства хоста (клавиатуру, мышь). В этом случае лучше добавить в сервер дополнительный PCI USB контроллер.
Если на хосте имеется несколько USB контроллеров, вы можете идентифицировать подключенное USB устройство и номер контроллера через ESXi shell. Вывести список USB устройств:
lsusb -v | grep -e Bus -e iSerial
В выводе команду нужно найти строку USB накопителя, например:
Bus 002 Device 003: ID 0280:a00c Toshiba America . Systems, Inc.
Затем по номеру контроллера (Bus02 в этом случае) определяем root hub и его iSerial:
Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 3.0 root hub
iSerial 1 0000:00:1D.0
Если вы не видите ваш USB диск, попробуйте подключить и отключить его физически и посмотреть в логе vmkernel.log, что служба USB Arbitrator определила ваш диск:
tail -f /var/log/vmkernel.log | grep -i USB
2019-12-03T12:06:12.546Z cpu0:33271)<6>usb 4-2: new SuperSpeed USB device number 5 using xhci_hcd
2019-12-03T12:06:12.570Z cpu0:33271)<6>usb 4-2: New USB device found, idVendor=0480, idProduct=b207
2019-12-03T12:06:12.570Z cpu0:33271)<6>usb 4-2: New USB device strings: Mfr=1, Product=2, SerialNumber=3
2019-12-03T12:06:12.570Z cpu0:33271)<6>usb 4-2: Product: External USB 3.0
2019-12-03T12:06:12.570Z cpu0:33271)<6>usb 4-2: Manufacturer: TOSHIBA
2019-12-03T12:06:12.570Z cpu0:33271)<6>usb 4-2: SerialNumber: 20180528012427F
2019-12-03T12:06:12.571Z cpu0:33271)<6>usb 4-2: Vendor: 0x0480, Product: 0xb207, Revision: 0x0315
2019-12-03T12:06:12.571Z cpu0:33271)<6>usb 4-2: Interface Subclass: 0x06, Protocol: 0x50
2019-12-03T12:06:12.571Z cpu0:33271)WARNING: LinScsiLLD: scsi_add_host:573: vmkAdapter (usb-storage) sgMaxEntries rounded to 255. Reported size was 65535
2019-12-03T12:06:12.571Z cpu0:33271)<6>usb-storage 4-2:1.0: interface is claimed by usb-storage
2019-12-03T12:06:12.571Z cpu0:33271)<6>usb 4-2: device is not available for passthrough
2019-12-03T12:06:12.571Z cpu0:33271)<6>usb 4-2: usbfs: registered usb0405
2019-12-03T12:06:15.454Z cpu0:33207)<6>usb-storage 4-2:1.0: suspended
Если USB диск не определяется ESXi хостом, проверьте что служба запущена:
#chkconfig usbarbitrator —list.
Соответственно, мы получили номер USB контроллера, который нужно пробросить в ВМ.
- Чтобы пробросить физический USB контроллер, выберите ESXi хоста, на котором запущена ваша ВМ и перейдите в раздел Manage -> Settings -> PCI Devices -> Edit;
- В списке PCI устройств найдите и выберите нужный USB контроллер по его ID (в моем примере 00:1D.0, контроллер называется C610/X99 series chipset USB Enhanced Host Controller #1 Intel Corporation);
Статус USB контролера должен смениться с Uailable (This device is not currently available for VMs to use) на Available (This device available for VMs to use). Нажмите Ок.
Статус USB контролера должен смениться с Uailable (This device is not currently available for VMs to use) на Available (This device available for VMs to use). Нажмите Ок.
- Для сохранения изменений нужно перезагрузить хост ESXi.
- После загрузки хоста, выключите ВМ и добавьте новое PCI устройство (New Device -> PCI Device -> Add). В выпадающем списке выберите ваш USB контроллер (например 0000:00:1D| Intel Corporation USB Chipset…).Если при добавлении PCI устройства в настройках ВМ появилось предупреждение: «Warning: The VM will not power on until its memory reservation equals its memory size», нужно зарезервировать память для ВМ.
Включите ВМ и убедитесь, что в гостевой ОС появился USB диск. В моем случае в гостевой Windows Server 2012 R2 появился подключенный USB диск «Toshiba External USB 3.0 USB Device».
Включите ВМ и убедитесь, что в гостевой ОС появился USB диск. В моем случае в гостевой Windows Server 2012 R2 появился подключенный USB диск «Toshiba External USB 3.0 USB Device».
В режиме VMDirectPath вы можете пробросить в ВМ до двух PCI устройств.
На ВМ с прокинутым PCI устройством действуют ряд ограничений: вы не можете поставить ВМ на паузу (Suspend), выполнить vMotion на другой хост (логично, т.к. вы привязаны к физическому контроллеру, создавать снапшоты).
Hyper-V также поддерживает режим проброса физических USB устройств в ВМ.
Загрузка с флешек машин на базе обычной BIOS
Запуск виртуальной машины с загрузочных флешек и USB-HDD, если для такой машины выбран тип микропрограммы – обычная BIOS, возможно, некоторым покажется сложноватым. Обычная BIOS не предусматривает пункта загрузки с USB-устройств. Обойти это ограничение можно путём подключения флешки или USB-HDD как внутреннего жёсткого диска виртуальной машины. Как это сделать? Открываем настройки жёсткого диска машины.
Жмём «Добавить».
Кликаем «Жёсткий диск», тип диска выбираем SCSI.
На этапе выбора диска указываем, что мы хотим использовать физический диск. При выборе такового из выпадающего перечня графы «Устройство» выбираем флешку или USB-HDD. Но они будут значиться как устройства типа PhysicalDrive0, PhysicalDrive1, PhysicalDrive3. Чтобы понять, какое из устройств типа PhysicalDrive№ является нужной флешкой или USB-HDD, выбираем в графе «Использование» пункт «Использовать отдельные разделы».
И по наличию разделов и ёмкости носителя, определяем, тот ли это, что нам нужен. Определяем и кнопкой «Назад» возвращаемся на этап выбора диска. В итоге указываем нужный диск типа PhysicalDrive№ и в графе «Использование» ставим уже пункт «Использовать весь диск».
Жмём «Готово».
Закрываем настройки машины и входим в BIOS (так же, как и в BIOS UEFI). Переключаемся на вкладку «Boot». Кнопкой-плюсом выдвигаем пункт загрузки «Hard Drive» на первое место. Затем клавишей Enter раскрываем его перечень устройств и в этом перечне кнопкой-плюсом на первую позицию выдвигаем диск «WMware Virtual SCSI Hard Drive (0:1)». Если к машине ранее было подключено два виртуальных диска, то тогда новый диск на базе физического будет значиться как «WMware Virtual SCSI Hard Drive (0:2)». Ну и так дальше по порядку, если виртуальных дисков у машины больше. В итоге жмём клавишу F10 для сохранения настроек BIOS и выхода.
Проброс USB устройств в Vmware Workstation
Обновлено 06.02.2019
Добрый день! Уважаемые читатели и гости популярнейшего компьютерного портала Pyatilistnik.org. Уверен, что среди моих подписчиков и читателей не мало людей у кого дома установлен гипервизор Vmware Workion 14 и выше, а может и VirtualBox, с помощью которого они запускают внутри своей основной операционной системы, виртуальные машины на различных ОС. Благодаря этому есть возможность на одном железе протестировать много чего, чаще всего это актуально для администраторов, когда они создают целые тестовые стенды или же для программистов. Бывают ситуации, что есть необходимость пробросить внутрь виртуальной машины Vmware Workion USB флешку или USB принтер, а может и звуковую карту и люди не знают, как это можно сделать. Сегодня я покажу процесс подключения периферийных устройств подключенных к вашему компьютеру внутрь виртуальной машины.
Исправляем ” Не удалось подсоединить USB-устройство “.
Для постоянных читателей блога потенциальное решение ошибки особого труда представить из себя не должно. Очевидно, что её результатом снова оказывается ряд налагаемых системой на USB-флешки фильтров. Причём это ошибка может появляться и со стороны хозяйской (в моём случае Windows 10) системы, так и со стороны гостевой. А иногда в обеих сразу (читайте следующий абзац). Решение по сети популярное, но, зачастую, единственное. В соответствии с информацией из статьи Проблемы с USB драйверами: варианты решений проверим настройки реестра через его редактор
regedit.exe
в ключе {36FC9E60-C465-11CF-8056-444553540000} по адресу в реестре
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Class\
проверяем наложение дополнительных фильтров:
Ну точно, видим фильтр UpperFilters в последней строчке среди прочих параметров справа в окне. Смело удаляем, соглашаясь в предупреждением редактора:
После перезагрузки хозяйской Windows 10 запускаем гостевую Windows 7 (в моём случае) и проверяем. В момент появления рабочего стола виртуальной Windows 7 та сразу успешно устанавливает драйвера к флешке, что сопровождается характерным звуковым сигналом. Через пару мгновений в проводнике Windows 7 на VirtualBox я вижу свою флешку:
флешка подключена к виртуальной windows корректно
Всё, ошибка Не удалось подсоединить USB-устройство у многих пользователей больше не появляется.
Сценарии применения проброса устройств в Vmware Workstation
Перед тем. как я вам покажу сам не хитрый процесс, я бы хотел привести несколько сценариев, которые применимы к данной задаче.
Вы создали загрузочную флешку с Windows 10 или ESXI, не важно и хотели бы проверить, ее корректную работу
У вас есть USB-принтер, который в данный момент у вас работает на операционной системе Windows 7. Вам предлагают обновиться до Windows 10, но вы не знаете будет ли ваш старый принтер на нем корректно работать, в данном случае его проброс на виртуальную машину с десяткой сможет ответить на данный вопрос.
Проверка USB-токенов в таких продуктах, как КриптоПРО
Например я так тестировал проблемы с JaCarta ключиком.
Применений очень много и, что самое замечательное, если вы сломаете операционную систему внутри виртуальной машины, то это ни как не повлияет на вашу основную ОС.
How to boot OS from USB on VirtualBox?
Whatever weird it may seem to you, but you may boot guest OS from USB-drive on VirtualBox. Lower I will present the instruction how to do it from Windows host.
Actually, booting from USB is a hidden feature in VirtualBox, which guarantees raw access to drives. This functionality isn’t available in app basic interface, but it’s a part of the VBoxManage command.
The first step, which you should perform prior to booting the external OS from USB-drive, is to connect the appropriate USB-drive with OS installed in it, to the PC. Use Windows + R hotkey combination, type diskmgmt.msc in the Run dialog form and press Enter button. As a result, the Disk Management window will be opened.
Search the USB drive in the Disk Management form and remember the disk number, corresponding to it. For instance, in my case, the USB drive is Disk 1.
Now, close any opened VBox application forms.
After that, open a Command Prompt with Administrator permissions. On Windows 10, use Windows + X combination on the keyboard and select Command Prompt (Admin) item from the menu.
Enter the mentioned command into the command line and press Enter button. This command is dedicated to changing the active path to the VirtualBox default installed path. If you set up the app into the different folder, you will have to specify your own directory instead of mentioned in the example.
cd %programfiles%\Oracle\VirtualBox
Enter the defined command in the command line, replacing # sign with the number of the disk you noted earlier in the Disk Management form, and then press Enter button.
VBoxManage internalcommands createrawvmdk –filename C:\usbdisk.vmdk -rawdisk \\.\PhysicalDrive#
Instead of C:\usbdisk.vmdk you can specify any path you desire. As a result of this command, the VMDK-file will be created, which points to the physical drive you select. After you load the VMDK-object as a drive in VirtualBox, actually the VM will get access to the physical disk of your HDD.
After this iteration is completed, open VirtualBox as administrator. Make a right click on the app shortcut and choose Run as administrator in the context menu. The virtual machine may get access to raw disk drives only with admin rights.
Generate a new VM instance by clicking the New button and process the wizard steps. Choose the OS on the USB-drive when the prompt appears.
When the request is standing visible on the screen to define a hard disk, choose Use an existing virtual hard drive file option, make a click on the button to select a file on the hard disk, and search it – that will be C:\usbdisk.vmdk if you didn’t specify your unique path.
Load the VM and as a consequence the OS from your USB-device should load, in the same way as if you were loading it on a standard PC.
Pay attention to the following fact: the USB device should be the first hard disk in your VM settings, otherwise VirtualBox won’t load from it. Talking in another words, you are not able just to generate a default VM and attach a USB-drive afterwards.
If you are willing to install an OS from the USB, you would require to attach a hard drive later from the VM’s settings form. Make sure that USB logical device is the first drive in the list.
As you can see, beforehand I precisely described, how to use USB devices in VirtualBox. This article will surely come in hand, if you decide to boot from USB in VirtualBox or to attach an external USB drive to the VM.
Загрузка виртуальной машины VMWare с USB диска
Шаг 1: Подключите USB флэшку к вашему компьютеру.
Шаг 2: Запустите VMware Workstation, а потом выберите либо имеющуюся виртуальную машину (из вашего списка), или подключите новую. File -> Open.
Шаг 3: Затем как обычно найдите необходимый .vmx-файл от виртуальной машины, которую требуется загрузить с USB
Шаг 4: Убедитесь что виртуальная машина выключена (Power Off) и перейдите в настройки виртуальной машины VM –Settings.
Или
Шаг 5: Когда откроется меню настроек нажмите на Hard Disk (SCSI) и затем щелкните Add. Затем выберите Hard Disk и щелкните Next.
Шаг 6: Выберите Use a physical disk (for advanced users) и нажмите Next.
Шаг 7: Выберите PhysicalDrive, который соответствует вашей флэшке и нажмите Next. Затем Finish. И наконец OK.
Отступление: как определить какой диск соответствует вашей флэшке? Для этого можно воспользоваться утилитой diskpart
Шаг 8: После того как вы подключили ваш физический USB к виртуальной машине, ее следует загрузить в режим BIOS’a. Для этого нажмите VM -> Power -> Power On to BIOS. (Power on to Firmware в более новых VM Workstation)
Или, в более новых версиях VM Workstation – Power On to Firmware
Шаг 9: После того, как виртуальная машина загрузится в BIOS, выберите вкладку Boot используя стрелки на клавиатуре. Затем переместите добавленный жесткий диск на первую позицию и выйдите из BIOS с сохранением сделанных настроек. После этого виртуальная машина загрузится с подключенной флэшки.
Это выглядит, например, вот так.
Для UEFI немного по другому. Вы попадаете сразу в Boot Manager, выбираете необходимое для загрузки устройство и загружаетесь с него.
Выбираете нужный диск и нажимаете Enter
Как загрузить виртуальную машину с флешки с помощью программы Virtual Machine USB Boot
Привет друзья! Огромное число пользователей персонального компьютера используют виртуальные машины. Дело в том, что это очень удобно, вы можете установить на виртуальную машину любую операционную систему (гостевую) и пользоваться ей как настоящей, инсталлируйте на неё все ваши любимые программы и пользуйтесь ей как обычной системой, если вы заразите её вирусами или по каким-либо причинам она у вас перестанет загружаться, то вы очень просто восстановите её из бэкапа или установите заново, всё это произойдёт без ущерба вашей основной операционной системе (хостовой), установленной на ваш компьютер.
В процессе работы с виртуальной машиной у вас может появиться (и не раз) потребность загрузить её с загрузочной флешки, например, чтобы проверить, является флешка загрузочной или нет. Общепринятый ручной способ создания файла USB.vmdk, связующего флешку и виртуальную машину, не является самым простым, поэтому я предлагаю вам воспользоваться очень простой программой Virtual Machine USB Boot 1.5, уверен, что после прочтения статьи вы удивитесь, как просто она работает. Но в работе программы, особенно с последней операционной системой Windows 10 есть нюансы, так что читайте статью внимательнее.
http://reboot.pro/files/download/339-virtual-machine-usb-boot/
Можете скачать портабельную версию программы, а можете скачать установщик.
Я скачаю портабельную версию, её можно запустить прямо с флешки (на всякий случай выкладываю её на своём облачном хранилище).
После скачивания запускаем программу Virtual Machine USB Boot 1.5.
В главном окне программы жмём Add (Добавить).
В пункте VM name жмём на стрелочку
и выбираем в выпадающем списке название виртуальной машины, которую мы хотим загрузить с флешки. На моём ноутбуке две виртуальные машины: Windows 10 и Windows 7,
я хочу загрузить с флешки Windows 10, поэтому выбираю в списке её.
В пункте Drive to add and boot выбираю загрузочную флешку.
ОК.
ОК.
Важно: теперь, если у вас запущена VirtualBox, её надо закрыть, так как виртуальную машину будет запускать программа Virtual Machine USB Boot 1.5
Жмём START.
ОК.
Да.
Запускается виртуальная машина и выходит ошибка: FATAL: No bootable medium found! System halted.
Друзья, дело в том, что программа Virtual Machine USB Boot 1.5 немного некорректно работает с последней версией виртуальной машины VirtualBox — 5.0.14. и не создаёт автоматически IDE-контроллер для файла vmdk.
Примечание: Для загрузки VirtualBox с USB-флешки программа Virtual Machine USB Boot 1.5 специально создаёт vmdk-файл, именно этот файл соединяет виртуальную машину с USB-флешкой. Данный файл vmdk создаётся в личной папке программы: C:\Users\Имя пользователя\VirtualBox VMs\Windows 10 (название виртуальной машины).
Чтобы не было ошибки «FATAL: No bootable medium found! System halted» при загрузке виртуальной машины с флешки, нам самим нужно создать IDE-контроллер для файла vmdk.
Жмём на кнопку Носители.
Жмём на кнопку в форме ромбика и выбираем Добавить IDE-контроллер.
Контроллер IDE добавлен.
ОК.
Запускаем программу Virtual Machine USB Boot 1.5 заново
ЖмёмSTART.
И виртуальная машина загружается с флешки.
Если вы используете немного устаревшую версию виртуальной машины VirtualBox 4.3.34, то с ней подобных проблем не будет. Программа Virtual Machine USB Boot 1.5 автоматически создаст IDE-контроллер для файла vmdk.
Статья на эту тему:
Как записать образ на флешку с UltraISO
UltraIso – программа платная, но есть возможность бесплатно воспользоваться триал-версией. Чтобы записать образ на флешку с UltraISO, скачайте программу, установите и запустите. Откроется окно программы, разделенное на две основные области. В верхней части отображаются образы дисков, с которыми вы на данный момент работаете, нижняя часть является навигационной, с помощью неё можно найти образы дисков для записи и монтирования на компьютере.
Для записи ISO образа Windows на флешку через UltraISO, потребуется сам ISO образа Windows 10 для флешки и флешка. Важные данные с флешки нужно куда-нибудь сохранить, так как при записи образа вся информация с неё сотрется. Далее нужно открыть в программе образ операционной системы, которую вы хотите записать, в нашем примере будет записываться образ с дистрибутивом Linux. Нажмите на изображение папки со стрелкой. Когда вы откроете образ, в верхнем окне у вас появиться список папок и файлов, которые находятся в образе.
Теперь перейдём непосредственно к созданию загрузочной флешки из ISO образа Windows. Нажмите “Самозагрузка” – “Записать образ жесткого диска”.
В открывшемся окне выберите флешку, на которую будете записывать образ, и нажмите “Записать”. В этом окне вы также можете предварительно отформатировать носитель.
Начнётся процесс записи. Время записи будет зависеть от характеристик вашей флешки и объёма записываемого образа диска.
После того, как образ на флешку с UltraISO будет записан, её можно извлечь из USB порта и использовать для установки операционной системы.
Подключение флешки к Virtualbox
Нередко у любителей поэкспериментировать появляется потребность в использовании USB устройства на виртуальной машине.
Тривиальное подключение через главное меню подразумевает повторяющиеся действия при каждом запуске ВМ, поэтому в этой статье мы разберёмся, как подключить флешку к виртуальной машине Virtualbox с помощью добавления фильтра, который позволит нам пользоваться накопителем без постоянного подключения при запуске.
К виртуальной машине можно подключить внешний usb-накопитель.
Устанавливаем пакет расширений
Прежде всего, необходимо выяснить, какой версии Виртуалбокс мы пользуемся. Сделать это просто. Открываем менеджер, жмём на кнопку «Справка», выбираем пункт «О программе». Снизу в соответствующем поле будет указана необходимая информация. В моём случае это 4.3.12.
Если вы пользуетесь не самой последней, то необходимо спуститься вниз и найти ссылку на старые версии Виртуалбокс (Virtualbox older builds).
В подробной информации нужно найти пакет расширений Extension Pack для всех платформ
Обратите внимание на этот пункт, здесь ошибиться нельзя, иначе плагин не подойдёт для нашей программы. Скачиваем его
В менеджере Виртуалбокс идём в меню «Файл» и «Настройки». Переходим в раздел плагины, нажимаем на значок «Добавить плагин» и ищем наш скачанный файлик. Выбираем, нажимаем «Открыть».
Нас предупреждают, что плагины могут привести к сбоям, обычная пугалка, если согласны, то жмём «Установить». Принимаем лицензионное соглашение, перемещаем ползунок в самый низ, активируется кнопка «Я согласен», жмём на неё.
Плагин успешно установлен, два раза нажимаем на кнопки «Ок».
Добавляем фильтр
Теперь выбираем в списке нашу машину, нажимаем «Настроить», переходим в раздел «USB», для того чтобы отредактировать эти настройки, она должна быть выключена.
Устанавливаем галочку в чекбоксе «Включить контроллер USB 2.0», если у вас более новая версия, то будет доступен 3.0. Жмём на кнопку «Добавить фильтр», ищите в списке своё устройство.
Фильтр добавлен, нажимаем «Ок». Запускаем нашу машину.
Постоянная настройка и одноразовое подключение
Флешка будет доступна только в созданной системе, пока она включена. Когда машина выключена — флешка доступна в реальной. Такой способ подойдёт, если не хочется каждый раз подключать устройство уже внутри работающей машины, хотя сделать это можно.
Как в виртуальной машине открыть флешку? В главном окне Виртуалбокс есть пункт «Свойства», кликаем на него и выбираем пункт «Устройства USB» далее достаточно выбрать нужное устройство, после этого менеджер передаст управление накопителем от операционной системы реальной машины к созданной.
Заключение
Итак, мы разобрались, как в Virtualbox подключить флешку.
Сам процесс совсем несложный и займёт у вас всего несколько минут, если мы захотим отключить автоматическое подключение, то нам будет достаточно только убрать фильтр, и всё.
С каждой новой статьей о виртуальных машинах мы получаем всё больше умений при работе с ними, тренируйтесь, экспериментируйте, и через некоторые время они станут вашим главным оружием при работе с новыми приложениями или утилитами.
Если у вас появились вопросы — задайте их в х!