Заметки о Windows и других программных продуктах Microsoft...

Загрузка c USB в Oracle VirtualBox

Загрузка c USB в Oracle VirtualBox

Последние несколько лет для целей настольной виртуализации я использую исключительно Oracle VirtualBox. Программа очень удобна, проста в настройке и абсолютно бесплатна. Однако есть в VirtualBox один недостаток, о котором я недавно узнал. Оказывается, что осуществить загрузку виртуальной машины с внешнего USB-носителя стандартными средствами интерфейса в VirtualBox нельзя.

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

экран загрузки VirtualBox

 

Но не все так плохо и способ загрузиться с флешки все таки нашелся, правда несколько неудобный. Для того, чтобы загрузить виртуальную машину VirtualBox с внешнего USB-носителя, необходимо создать связующий vmdk-файл. Через этот файл и будет осуществляться связь виртуальной машины с внешним USB-диском.

Процесс

Первым делом вставляем в компьютер флешку. Затем запускаем командную консоль (обязательно с правами администратора) и вводим команду diskpart. Затем командой list disk выводим список физических дисков, подключенных к системе. Опытным путем (напр. по размеру) находим флешку и запоминаем номер диска. В моем случае это диск 2. Вводим exit для выхода из утилиты diskpart.

Для создания файла *.vmdk воспользуемся консольной утилитой vboxmanage.exe, входящей в состав VirtualBox. Переходим в каталог программы:

cd ″C:\Program Files\Oracle\VirtualBox″

И создаем в папке C:\VM файл usb.vmdk:

VBoxManage.exe internalcommands createrawvmdk -filename c:\VM\usb.vmdk -rawdisk \\.\PhysicalDrive2

PhysicalDrive2 — это номер диска, который мы запомнили и под которым флешка видна в системе. Этот параметр  указывает на то, с каким физическим диском связать vmdk-файл. Кстати, таким образом мы можем подключить к виртуалке любой системный диск.

создание файла-привязки

 

Ну а дальше все просто. Открываем VirtualBox менеджер и идем в свойства виртуальной машины.

открываем свойства виртуальной машины в VirtualBox

 

На вкладке «Носители» добавляем созданный usb.vmdk в качестве виртуального диска. Добавлять можно как к IDE, так и к SATA контроллеру, особой разницы нет.

подключаем новый диск к виртуальной машине в VirtualBox

 

Обратите внимание на реальный размер диска. Он меньше килобайта, т.к. vmdk-файл содержит лишь данные для связи с USB-диском.

свойства диска в виртуальной машине VirtualBox

 

Стартуем виртуалку, жмем F12 и видим новый пункт в меню загрузки. Это и есть наша флешка.

выбор варианта загрузки в VirtualBox

 

Все вышеописанное проверялось на операционных системах Windows 7 и Windows 8 х64. Версия VirtualBox 4.1.16.

 
 
Комментарии
facepeeler

Missing MBR-helper 🙁

Спасибо, получилось!

лалка

Всё пашет, только при этом флешка не должна быть подключена к виртуальной машине в качестве usb устройства, а только как диск (по этой статье)

Роман

Спасибо, мне помогло.

Аналогично. Missing MBR Helper

Missing MBR Helper означает, что повреждена загрузочная запись. VirtualBox здесь непричем, скорее всего загрузочный образ сделан криво 🙂

Спасибо тебе, добрый человек! Сэкономил мне кучу времени и нервов! Работает всё.

Павел

А у меня ошибку выдавал. не может создать новый файл usb.vmdk Решилось просто. Созда каталог c:\VM и все нормально. Вдруг кому нужно будет…

Спасибо)

Никита Степанов

Тоже спасибо, помогло.

Если выдает ошибку Missing MBR-helper, то надо подключить этот диск первым, к порту SATA 0, а не как у автора в примере к SATA 1, тогда нормально грузиться

Спасибо! Очень помогло!!!

У меня при старте висит на «Start booting from usb device…» В чем может быть проблема?

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

ребята привет ..помогите ..у меня при вводе( VBoxManage.exe internalcommands createrawvmdk -filename c:\VM\usb.vmdk -rawdisk \\.\PhysicalDrive2)пишет vbox manage error vmdk ,could not create nev file c vm,vmdk

Командная строка запущена от имени администратора ?

да запущена..ни как не получается..помоги

Поскольку исходных данных мало, то могу только предположить:
1) Неправильно указан номер диска.
2) Не создана папка, в которой создается vmdk-файл, либо нет права на запись в эту папку.
3) Флешка уже используется какой либо программой и поэтому недоступна.

cd ″C:\Program Files\Oracle\VirtualBox″ у меня при копирования этого фаила КС в место кавычек появляются вопр.знаки ..я нажимаю на энтр в месте с ними выдает синтакт.ошибка убираю вроде нормально до этго фаила VBoxManage.exe internalcommands createrawvmdk -filename c:\VM\usb.vmdk -rawdisk \\.\PhysicalDrive2..пробовал ставить кавычки все равно не помогает .очень надо помоги друг

Из вашего описания не очень понятно, в чем затык. Пришлите мне скриншот ошибки через форму обратной связи.

Errorlevel

вин 7, Oracle VM VirtualBox Version 4.3.4 Edition выдал ошибку размера образа или диска, что исправить ? вот текст
Не удалось открыть файл виртуального жёсткого диска C:\V\usb.vmdk.

Permission problem accessing the file for the medium ‘C:\V\usb.vmdk’ (VERR_ACCESS_DENIED).

Код ошибки: VBOX_E_FILE_ERROR (0x80BB0004)
Компонент: Medium
Интерфейс: IMedium {05f2bbb6-a3a6-4fb9-9b49-6d0dda7142ac}
Вызванный интерфейс: IVirtualBox {fafa4e17-1ee2-4905-a10e-fe7c18bf5554}
Код ошибки метода: VBOX_E_OBJECT_NOT_FOUND (0x80BB0001)

Судя по ошибке, Virtualbox не может получить доступ к файлу. Возможно у пользователя, его запустившего, недостаточно прав, или путь указан неверно.

Евгений

У меня не подключается созданий usb.vmdk , выдаёт ошибку(( Пробовал исправить невышло(( Код ошибки :
Не удалось открыть файл виртуального жёсткого диска C:\VM\BootableUSB.vmdk.

Permission problem accessing the file for the medium ‘C:\VM\BootableUSB.vmdk’ (VERR_ACCESS_DENIED).

Код ошибки: VBOX_E_FILE_ERROR (0x80BB0004)
Компонент: Medium
Интерфейс: IMedium {05f2bbb6-a3a6-4fb9-9b49-6d0dda7142ac}
Вызванный интерфейс: IVirtualBox {fafa4e17-1ee2-4905-a10e-fe7c18bf5554}
Код ошибки метода: VBOX_E_OBJECT_NOT_FOUND (0x80BB0001)

Проверьте, доступен ли файл по указанному пути, есть ли у текущего пользователя права на его открытие. Попробуйте запустить VirtualBox с правами администратора. Также можно попробовать перенести файл .vmdk в папку, в которой лежат все остальные виртуальные диски.

виталя

единственное что не получается это запуск vb от администратора (

Надо запускать WM с правими админа.

виталя

Код ошибки: VBOX_E_FILE_ERROR (0x80BB0004) то же самое выдает пробовал наверное все кроме того что надо! помогите надо usb тестить часто

Как вариант, попробуйте запустить проверку диска chkdsk (или fsck, если Линукс), может и поможет.
А вообще ошибка BOX_E_FILE_ERROR (0x80BB0004) означает, что указанный файл недоступен. Произойти это может по различным причинам — файл поврежден, путь к файлу указан неправильно, у текущего пользователя недостаточно прав для его открытия и т.п. Проблема может быть как с vmdk-файлом, так и с флешкой.

Найс! Спасибки за ХОВТУшечку=) Помогло настроить загрузку с флешки для проверки самой флешки=)

Решил собрать все ответы:Для того, чтобы загрузить виртуальную машину VirtualBox с внешнего USB-носителя, необходимо создать связующий vmdk-файл. Через этот файл и будет осуществляться связь виртуальной машины с внешним USB-диском.

Процесс

Первым делом вставляем в компьютер флешку. Затем запускаем командную консоль (обязательно с правами администратора) и вводим команду diskpart. Затем командой list disk выводим список физических дисков, подключенных к системе. Опытным путем (напр. по размеру) находим флешку и запоминаем номер диска. В моем случае это диск X. Вводим exit для выхода из утилиты diskpart.

1) Запускаем cmd :

diskpart — list disk — запоминаем номер диска USB — exit

2) Cоздаем на диске С папку VM «C:\VM»

3) Для создания файла *.vmdk воспользуемся консольной утилитой vboxmanage.exe, входящей в состав VirtualBox:

запускаем командную строку от имени Администратора CMD и вводим:

«C:\Program Files\Oracle\VirtualBox\VBoxManage.exe» internalcommands createrawvmdk -filename С:\VM\usb.vmdk -rawdisk \\.\PhysicalDriveX

PhysicalDriveX — это номер диска, который мы запомнили и под которым флешка видна в системе.

5) Останавливаем все процессы связанные с виртуальными машинами!!!
6) Запускаем VirtualBox , создаем новую виртуальную машину , и в свойствах — носители добавляем контроллер SATA , указав путь к файлу usb.vmdk.
7) В свойствах этого контроллера ставим SATA0 ,
а в свойствах виртуального жесткого диска (Win7.vdi) ставим SATA1

8) При запуске виртуальной машины жмем F12 и цифрами или буквами на клавиатуре!!! выбираем загрузку

Дмитрий

Как отключить?

Надо зайти в свойства ВМ и в разделе «Носители» отключить виртуальный диск.

aaalekseyyy

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

Дополнение №1.

Если в ответ на ввод команды:

VBoxManage.exe internalcommands createrawvmdk -filename «%USERPROFILE%\VirtualBox VMs\My Virtual Machine\usb.vmdk» -rawdisk \\.\PhysicalDrive2

Выскакивает следующая ошибка:

VBoxManage.exe: error: Failed to create the VirtualBox object!
VBoxManage.exe: error: Code CO_E_SERVER_EXEC_FAILURE (0x80080005) — Server execution failed (extended info not available)
VBoxManage.exe: error: Most likely, the VirtualBox COM server is not running or failed to start.

То для решения этой проблемы необходимо проверить следующие параметры:

1. «VirtualBox Менеджер» должен быть запущен от имени Администратора.
2. USB диск в виртуальной машине должен быть отсоединен, а сама виртуальная машина выключена.
3. Командная строка запущена от имени Администратора.
4. По пути к создаваемому файлу не должно быть русских букв и пробелов (если есть пробелы, то весь путь необходимо взять в кавычки, это важно).

После выполнения всех условий в ответ на команду:

VBoxManage.exe internalcommands createrawvmdk -filename «%USERPROFILE%\VirtualBox VMs\My Virtual Machine\usb.vmdk» -rawdisk \\.\PhysicalDrive2

Вы должны получить ответ:

RAW host disk access VMDK file «%USERPROFILE%\VirtualBox VMs\My Virtual Machine\usb.vmdk» created successfully

Дополнение №2.

По умолчанию диск MBR находится на SATA-контроллере “0”. Это выставляется в настройках виртуальной машины. Для того, что бы автоматически подхватывалась загрузка с USB (если он загрузочный), нужно виртуальный диск usb.vmdk в настройках виртуальной машины поставить на SATA-контроллер “0”, а виртуальный HDD на SATA-контроллер “1”.

«Дополнение №2.

По умолчанию диск MBR находится на SATA-контроллере “0”. Это выставляется в настройках виртуальной машины. Для того, что бы автоматически подхватывалась загрузка с USB (если он загрузочный), нужно виртуальный диск usb.vmdk в настройках виртуальной машины поставить на SATA-контроллер “0”, а виртуальный HDD на SATA-контроллер “1”.»

Вот это самое главное, решает Missing MBR Helper!

евген

Привет!слушай а как добавить sata контролер если он не подсвечивается при создании

евген

спасибо!всё получилось!ты просто бог!!!!!!

aaalekseyyy- да ты красава, спасибо

Максим

Большое спасибо!! Просто и ясно. Всё получилось.

Дмитрий

Всё сходится — ребеночек не наш… сделал уже раз 20 по инструкции — всё под админом, выбираю 2) загрузка через AHCI контроллер, получаю FATAL: No bootable medium found! System halted.
флешка загрузочная. форматированная как USB-HDD, другие машины реальные с нее грузятся, канал 0, виртуальный жесткий IDE , VM 4.3.12

Дмитрий

в VM менеджере пишет реальный размер 3,77 виртуальный размер 3,77 мбтб в свойствах проводника 640 байт

Дмитрий

фу блин решилось, пошла загрузка. почему то стоял фильтр в разделе USB фильтры устройств USB

Сергей

Спасибо! Чтобы работало на Windows-7 64bit, нужно запускать Virtualbox от имени администратора

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

The I/O cache encountered an error while updating data in medium "ahci-0-1" (rc=VERR_ACCESS_DENIED). Make sure there is enough free space on the disk and that the disk is working properly. Operation can be resumed afterwards.

ID ошибки: BLKCACHE_IOERR
Важность: Нефатальная ошибка

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

Кэширование операций для SATA контролера включите

Спасибо автору! Всё работает как надо!

«Стартуем виртуалку, жмем F12 и»…на черном экране сверху надпись:»У Вас включена настройка Автозахват клавиатуры..», а посреди экрана окно: «Работа ВМ может привести к возникновению ошибки описываемой ниже.. Some audio devices(PCM_in) could not be opened. Guest applications generating audio output or depending on audio input may hand. Make sure your host audio device is working properly. Check the logfile for error messages of the audio subsystem. ID ошибки: HostAudioNotResponding» Помогите пожалуйста, третий раз начинаю с нуля и третий раз одна и та же ошибка.

Можно попробовать установить/обновить Guest Additions.

Когда я запускаю командную строку способом: Пуск > cmd > правый клик на cmd.exe > запуск от имени администратора, то у меня появляется такая надпись…C:\Windows\system32>. А когда запускаю командную строку способом Win+R > cmd > OK, то появляется такая надпись…C:\Users\User>. Отсюда вопрос: Скажите пожалуйста, это одно и то же, или эти запуски от имени администратора чем то отличаются? И ещё, если не затруднит: Во всех ли случаях надо выходить из командной строки — Exit > Enter или можно просто нажать сверху «Х»?

Отличия в домашней директории, для запуска программ без разницы. По поводу выхода из консоли — как удобнее так и делайте. Команда Exit актуальна в основном для скриптов.

Евгений

Спасибо большое! Мне помогло.
Столкнулся с двумя нюансами. На диске С уже должен быть создан каталог VM и флешка не должна быть подключена к виртуальной машине в качестве USB носителя. И все заработало.

Василий

Ребят я немного не понял смысл этого метода.. файл с образом то на компьютере находится? Смысл тогда делать мост для загрузки ?

Василий

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

В данном случае мост нужен для того, чтобы флешка определилась как стационарный жесткий диск. А вообще, далеко не все операционные системы умеют грузиться со съемных устройств.

Василий

Кирилл, подскажите каким образом обычную ХР можно загрузить c usb-флешки на любом компьютере? Можете оставить свои контакты, а то в комментариях общение долго происходить будет.

На сайте есть форма обратной связи, через нее быстрее.
По поводу загрузки — из всего семейства Windows работать с флешки на разных компьютерах умеет только Windows 8\8.1 редакций не ниже Professional. Для этого в них есть специальная опция «Windows to Go». Да и то, флешка подойдет не любая 🙂
XP загрузить с флешки можно разве что в сильно урезанном варианте, типа диска аварийного восстановления. Подробнее о создании загрузочных дисков можно узнать например здесь: http://bootcd.narod.ru/

поможет winsetupfromUsb софт

Василий

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

Смысл в том, чтобы загрузить виртуальную машину VirtualBox с загрузочной флешки.

Евгений

Заметил одну неприятность, когда перезагружаешь комп чаще всего вышеописанную операцию нужно повторять, пришлось убить часок и создал приложение с интерфейсом для комфортного выполнения данной функции) если кому нужно пишите на ящик jeacedition@mail.ru скину

Александр

работает, но по сути сделать ничего с такого диска нельзя- ни установить windows, ни live cd запустить. Не стоит на эти манипуляции тратить время.

Помогите пож! не могу подключить флешку к VB. ра ньше на mandriva все работало ОК, а теперь на mageia пишет всегда «нет подключенных устройств». гостевая win7. дополненя гостевой ОС установлены. в группах юзер прописан.
не могу понять что не так(((

В дистрибутивах Linux не силен. Могу предположить, что эта ОС не поддерживается как хостовая система для virtualbox, по крайней мере, в списке поддерживаемых систем она отсутствует.

Спасибо, поигрался с контролером и помогло. Вот тут об ошибках, которые могут возникнуть
httpДВЕТОЧЕКИ//remontcompaТОЧЕКАru/446-zagruzka-c-usb-v-virtualbox.html

Всёё хорошо, но и проблемы тоже есть.
1. при установки windows7, загрузчик записывается на флэшку. если al’ire достсть, тогда windows не загружается
2. короче нужно ещё что то шаманить
3. какой в этом интерес? тестируешь флэшку с windows и на эту же флэшку загрузчик

Загрузочный образ установочного диска можно подключить как СD привод на хост-системе, и в гостевой выбрать загрузку с CD.
И не надо танцев с бубном.

Аркадий

Та же самая команда под Linux (проверялась на Ubuntu):
sudo vboxmanage internalcommands createrawvmdk -filename /path/to/file.vmdk -rawdisk /dev/diskname

Автор молодец! нет зря мы хаим нашу молодеж ишь ты какие они выверты препдносят
но сказано «Лучшее враг хорошего»
Я некогда не заморачивался с загрузкой с USB в VirtualBox
использую как в добрые старые времена Plop Boot Manager
подключаю образ plpbt.iso затем USB в меню загруженого Plop выбираю загрузку с USB
и все… ставится все что есть на мультизагрузочной флешке….

Александр. Интересно было узнать про PBM, но в моем случае он не работает. А вариант Аркадия идет на ура. И мне он кажется проще, чем plop.

Светлый

Вылетала ошибка VERR_ACCESS_DENIED

т.к. UAC настраиваю себе обычного пользователя и второго — Админа, пока не изменил свойства программы vboxmanage.exe в запуск с правами Администратора — ничего не получалось.
запущеная cmd не делегирует права админа вызываемой программе. (конечно. Откуда им взяться у неё :))
Всем удачи
Cоздать файл получилось только

после всех описанных танцев с бубном ты смеешь писать «Программа очень удобна, проста в настройке»?

Дмитрий

Получаю ошибку:
VERR_ACCESS_DENIED

Чтобы не выхватить такую ошибку нужно VirtualBox запустить от Администратора