Виртуальная машина с флешки. Виртуальная загрузочная флешка для виртуальных машин

30.12.2020 Звуковые устройства

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

Этот трюк позволит не только загружаться с установочного USB — что, на мой взгляд, довольно бессмысленно, поскольку на флешку записывается.ISO образ, которой намного проще подключить к виртуальному компьютеру в VirtualBox. Если подключить USB диск или флешку к гостевой системе в качестве обычного диска, то можно делать такие интересные вещи как:

  • загрузка с физического SATA диска через USB переходник
  • установка Windows на USB диск или флешку

Если у вас нет возможности подключить SATA диск непосредственно в компьютер — например, к ноутбуку — но вам очень нужно загрузиться именно в операционную систему, которая развёрнута на нём, то описанный здесь трюк поможет это сделать: через USB переходник подключите SATA диск к компьютеру, а затем USB диск подключите к виртуальной машине в качестве обычного диска, как это показано в этой инструкции.

По поводу второго пункта — установка Windows на USB носитель — если вы хотите установить Linux на флешку (не записать Live-образ, а именно установить полноценную систему), то для установки необязательно проделывать показанный здесь трюк — поскольку Linux прекрасно устанавливается на переносной носитель. Но в Windows стоит запрет для установки на USB диски и флешки.

Я покажу как загрузиться с USB в Windows и Linux. Принцип одинаковый в обеих этих операционных системах, но чуть различаются команды из-за специфики ОС.

Как в VirtualBox загрузиться с USB в Windows

Подсоедините USB флешку или диск к компьютеру. Затем нажмите Win+r и выполните diskmgmt.msc .

Найдите вашу флешку и запомните номер диска:

К примеру, на моём скриншоте флешка имеет номер 2.

Закройте все окна VirtualBox, если они открыты.

В открывшемся окне введите:

Теперь перейдите в папку, где у вас установлена VirtualBox. Если эта программа установлена в директорию по умолчанию, то команда для перехода:

Cd %programfiles%\Oracle\VirtualBox

Если вы выбрали другое расположение для VirtualBox, то отредактируйте предыдущую команду соответствующим образом.

Теперь в командной строке вставьте следующую команду, в которой замените # на номер диска, который мы посмотрели чуть выше, затем нажмите Enter:

VBoxManage internalcommands createrawvmdk -filename C:\usb.vmdk -rawdisk \\.\PhysicalDrive#

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

VBoxManage internalcommands createrawvmdk -filename C:\usb.vmdk -rawdisk \\.\PhysicalDrive2

Если всё прошло успешно, должна появиться надпись:

RAW host disk access VMDK file C:\usb.vmdk created successfully.

Обратите внимание, что вы можете заменить C:\usb.vmdk на любое расположение файла по своему желанию.

Эта команда создаёт файл диска виртуальной машины (VMDK) указывающий на физический диск, который вы выбрали. Когда вы загружаете VMDK файл в качестве диска в VirtualBox, то VirtualBox на самом деле будет иметь доступ к физическому диску.

Теперь откройте VirtualBox от администратора — это обязательно, иначе не сработает как надо. Для этого нажмите кнопку Пуск , наберите VirtualBox и выберите «Запуск от имени администратора »:

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

Теперь в VirtualBox создайте новую виртуальную машину, выберите соответствующую операционную систему и когда дойдёт дело до выбора жёсткого диска, вместо создания нового, выберите Использовать существующий виртуальный жёсткий диск :

Теперь откройте файл C:\usb.vmdk (или другой, если вы сохранили его в другом месте или под другим именем):

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

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

Как в VirtualBox загрузиться с USB в Linux

Чтобы понимать принцип, прочитайте предыдущий раздел про Windows. В Linux, чтобы узнать имя USB диска выполните команду:

Sudo fdisk -l

В моём случае у диска имя /dev/sdb .

Для создания файла виртуального диска, указывающее на реальный диск, выполните команду вида:

Sudo VBoxManage internalcommands createrawvmdk -filename /root/usb.vmdk -rawdisk /dev/sd#

Где вместо # впишите букву соответствующего диска. Пример для моих условий:

Sudo VBoxManage internalcommands createrawvmdk -filename /root/usb.vmdk -rawdisk /dev/sdb

В этой команде вы можете заменить /root/usb.vmdk на другое расположение по своему усмотрению.

Для запуска VirtualBox с правами администратора выполните команду:

Sudo VirtualBox

Всё остальное — создание виртуальной машины и выбор в качестве жёсткого диска существующий виртуальный диск — в точности как в Windows.

Цель разработки - заставить VirtualBox работать без установки и запускаться откуда угодно, например с USB-носителя. Интересно, что утилита полностью написана на скриптах AutoIt (все исходники открыто лежат , но из-за этого, правда, и выглядит не очень изящно. Но главное-то - результат. Итак, скачиваем приложение (у меня это Portable-VirtualBox_v4.1.6-Starter_v6.4.8-Win_all.exe) и запускаем его - программа предложит выбрать путь для распаковки. После этого можно запустить Portable-VirtualBox.exe. Все настройки выставляются автоматически, исправлять что-то вручную (например, пути) не требуется. Появившееся окно - это так называемый лончер. Он появляется один раз и предназначен для загрузки последнего дистрибутива VirtualBox и извлечения оттуда нужных файлов. Интересно, что на этом этапе файлы можно еще и особым образом упаковать, чтобы они занимали меньше места на USB-флешке (хотя при нынешних размерах флешек это едва ли актуально). Жмем на кнопку «Download installation files of VirtualBox», выбираем разрядность системы (например, «Extract the files for 32-Bit system») и ждем, пока лончер сделает все свое дело. Чтобы установщик адаптировал пути под систему (поправил нужные параметры в конфиге VirtualBox.xml), бинарник Portable-VirtualBox.exe нужно запустить еще раз. Вуаля - у нас в распоряжении есть полноценная VirtualBox. Без какой-либо установки в систему.


В трее появится иконка VirtualBox, с помощью которой можно управлять виртуальной машиной и дополнительно настраивать ее. В гостевых ОС по умолчанию работает и USB, и сеть. Но чтобы выпустить гостевую ОС во внешнюю сеть (инет), придется провести некоторые дополнительные манипуляции. В трее надо выбрать «Settings -> Network» и включить опцию «Start VirtualBox with network support». Далее нужно перезапустить Portable-VirtualBox и согласиться на установку драйвера. Процесс организован так, что при завершении работы с виртуальной машиной всё, что было установлено в систему, удаляется. Файлы гостевой ОС разумно разместить прямо на флешке вместе с VirtualBox. У меня эта система одна, поэтому ее можно запускать сразу, без дополнительных манипуляций, указав в параметрах ее имя:

Portable-VirtualBox.exe "leopard"

Учитывая, что виртуальная машина всегда находится не в выключенном состоянии, а в режиме «Save the state», ее запуск происходит очень быстро. Поэтому она всегда готова к работе без лишнего геморроя. И где угодно.

Как загрузить флешку в Virtualbox и проверить рабочая она или нет

Привет! Сегодня мы будем учиться загружаться с флешки в Virtualbox . Это очень удобно. Например, можно протестировать загрузочную флешку или посмотреть, как загружается флешка в UEFI системе (в virtualbox есть такая возможность но её я пока не тестировал)
Оказалось, всё не так уж и супер просто. В Virtualbox без шаманизма нет такой возможности. Поэтому делаем в статье всё по шагам и у вас выйдет выставить загрузку с usb в Virtulbox .
Первым делом откройте с помощью администратора командную строку. Введите cmd , затем правой клавишей — открыть с помощью администратора

Теперь нам надо узнать какой номер нашей флешки в системе. Вставьте флешку с которой вы хотите загрузиться потом в Virtualbox в компьютер. Теперь в командной строке вводим, сперва diskpart , затем list disk


Как видно, моя флешка с которой я хочу загрузиться – это номер 2 . Запомните это вам пригодиться.
Теперь, надо создать виртуальный файл жёсткого диска, только в нашем случае это будет наша флешка. То есть, наша задача создать образ, который потом мы сможем указать в настройках Virtualbox.
Для этого, первым делом вы должны знать где именно установлен Virtualbox. Если вы устанавливали в стандартную папку ваш Virtuablox то эта папка C:Program FilesOracleVirtualBox. Лучше зайдите и проверьте ведь это важно при следующих шагах.


Теперь запускаем от администратора ещё раз командную строку. Вводим:
Сперва cd C:Program FilesOracleVirtualBox (жмём Enter)


Теперь
VBoxManage internalcommands createrawvmdk -filename C:USB-download-virtualbox.vmdk -rawdisk \.PhysicalDrive2

Где PhysicalDrive2 потому, что моя флешка это номер 2 , в вашем случае цифра ваша. C:USB-download-virtualbox.vmdk – это путь и имя файла.vmdk (виртуальный файл нашей флешки). Через 30 секунд после нажатия Enter должно появиться сообщение, что.vmdk успешно создан.


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


Открываем с помощью админа Virtualbox

Теперь, в настройках новой машины, где мы будем грузиться с флешки в Virtualbox , переходим в Настроить – Носители – Где контроллеры IDE пр. кл. мыши – Добавить жёсткий диск Выбрать существующий диск . Выбираем USB-download-virtualbox.vmdk. Жмём OK.


Самое интересное, что я когда выбирал, грузиться как жёсткий диск, у меня выбивало ошибку. Missing Mbr helper. Поэтому я выставил как Cd-rom. Надеюсь ошибок не будет при установке. Коль шо сюда обязательно отпишу.
В общем я для вас записал видео где всё понятно и видно и всё выходит. Кстати таким же образом можно выставить внешний hdd если он загрузочный. Спасибо за внимание!

Ошибки и решение загрузки с Usb в Virtualbox. Missing MBR Helper.


Сперва я подумал, как вы, наверное, что загрузочная запись повреждена. Но, как такое может быть если флешка загрузочная везде работает (опробована так сказать в деле 100 раз), а в Virtualbox нет. А на моей флешке все инструменты есть для решения практически всех проблем. Разве, что ремонтировать пылесос она не умеет =D. Итак, методом проб и ошибок.
Выставить надо вот так. Я не знаю почему. Но, когда я сменил SATA1 на SATA0 эта ошибка исчезла у той же флешки. Кстати, после того, как выставил грузиться с IDE (аля Сидиром) у меня не загрузился ни один установщик, ничё. Поэтому я продолжил копать. Вот как надо выставить, чтобы заработало без ошибки Missing MBR Helper.




Пробую установку Xp. Дошло до установки и разбивки жёсткого диска. Учитывая, что это Xp. Когда доходит до этого момента без ошибок, то процентов на 80 система уже успешно ляжет. Я продолжать не буду.


Начну 7-ку. Пока всё гладко




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


И тут бах. Ошибка. Да сколько ж можно


Во время работы виртуальной машины произошла ошибка! Подробности ошибки приводятся ниже. Вы можете попытаться исправить ситуацию и возобновить работу виртуальной машины.
The I/O cache encountered an error while updating data in medium «ahci-0-0» (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.Подумал я, может кэш включить надо. Включаю


Смотрим. Вроде пошло. И снова бац. Да, что ж такое то =D


Пробую Live Cd запустить. Ура. Хоть это пошло дело. Но, практически на загрузке, машина ловит статус прервана. Совсем не то, что я думал =(. Я уже накрутил себе в голове, сейчас я установлю систему и буду ковырять через флешку. Облом короче…
В общем можно смело подвести итог

  1. Мне так и не удалось установить систему с флешки, это значит, что продемонстрировать вам флешку я не смогу
  2. Любая запущенная с флешки LiveCD до загрузки срывается, и машина Virtualbox гаснет
  3. Метод, как загрузить флешку с Virtualbox годится но НЕ ПРАКТИЧЕН
  4. Если есть предложения, вы знаете как устанавливать с флешки систему (с мультизагрузочной флешки на Virtualbox пишите в комментариях)
  5. Статья считается не полной ибо до конца не рабочая

Все популярные гипервизоры для Windows — Hyper-V , VirtualBox , VMware – предусматривают запуск виртуальных машин (ВМ) с загрузочных ISO -образов и флешек. Запуск ВМ с последних не в каждом случае будет процессом без заморочек: без танцев с бубном с флешек UEFI запускаются только ВМ на базе ПО EFI в программах VirtualBox и VMware . Как упростить запуск ВМ с флешек в остальных случаях?


Для этого можно создать так называемую виртуальную флешку – всё содержимое реального USB -носителя перенести на виртуальный жёсткий диск и, соответственно, запускать ВМ с него. Но содержимое необходимо переносить вместе со структурой физической флешки — чтобы виртуальный диск унаследовал все разделы, если их несколько (например, в случае с Mac OS или Chrome OS) , а также атрибуты загрузочного устройства (если это не носитель UEFI) . Сделать это можно как минимум двумя способами, описанными ниже.

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

1. Программа R-Drive Image

Первый способ создания виртуальной флешки – это перенос структуры и содержимого реального USB -носителя на виртуальный диск с помощью программы-бэкапера . Открываем параметры существующей ВМ и кликаем .

Добавляем ещё один диск.

Тип контроллера оставляем по умолчанию.

Создаём новый диск. Указываем его размер: пусть он будет примерно таким, как размер флешки, но немногим всё же пусть отличается. Это нужно чтобы не спутать устройства при клонировании. Сохраняем в виде одного файла.

Указываем путь размещения. Жмём .

Запускаем ВМ , подключаем к ней реальную флешку. В гостевой ОС устанавливаем триал -версию программы . В её окне выбираем «Копировать Диск на Диск» .

В графе «Источник» выбираем реальную флешку. В графе «Приемник» — только что созданный виртуальный диск.

И – «Начать» .

По завершении клонирования выходим из программы.

Теперь в проводнике гостевой ОС у нас появилось два идентичных устройства.

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

2. Программа Rufus

Второй способ создания виртуальной флешки – это использование возможностей программы Rufus 3.1 . В обновлённой версии 3.х эта программа, в довесок к существующим функциям создания загрузочных USB -устройств, научилась клонировать реальные флешки в файлы VHD . А VHD совместим и с Hyper-V , и с VirtualBox , и VMware . Запускаем Rufus 3.1 в хост-системе. Выбираем нужный USB -носитель, если их несколько подключено, в графе «Устройство» . Далее жмём кнопку в виде дискетки.

Указываем путь хранения файла VHD .

Ждём завершения операции и закрываем Rufus .

3. Подключение виртуальной флешки и запуск с неё

Итак, виртуальная флешка создана, как её подключить к ВМ и, соответственно, запустить?

В параметрах ВМ кликаем жёсткий диск .

Выбираем существующий.

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

На EFI -машинах входим в BIOS – либо используем кнопку на панели инструментов гипервизора, либо при запуске ВМ жмём F2 .

В окне загрузчика выбираем Hard Drive с тем номером, под которым он числится в общем перечне подключённых виртуальных дисков, но в исчислении с нуля. В нашем случае виртуальная флешка является вторым диском ВМ , потому в EFI -прошивке она значится как Hard Drive 1.0 .

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

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

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

Но не все так плохо и способ загрузиться с флешки все таки нашелся, правда несколько неудобный. Для того, чтобы загрузить виртуальную машину 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-файл. Кстати, таким образом мы можем подключить к виртуалке любой системный диск.

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

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

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