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

Цель разработки - заставить 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. Я предварительно установлю и проверю работоспособность сразу нескольких флешек с разными операционными системами: Андроид, Кали Линукс и Windows. После этого проверим насколько загрузочная флешка в VirtualBox работоспособна.

Долго распаляться не буду по поводу того, как удобна мобильная операционная флешка, всегда с собой носимая. Благо, для того, чтобы любая из ОС-ей всегда была с собой, нужно всего одно устройство – USB носитель. И компьютер, на котором нам позволят флешку запустить. Остальное детали.

Но сразу после создания флешки с носимой ОС её необходимо протестировать. Для этого вполне подойдёт виртуальная машина VirtualBox. Однако небольшие трудности для некоторых составляет именно процесс создания загрузочной флешки на VB. Не мудрено – функция до сих пор не выведена разработчиками в графический интерфейс, хотя давно и абсолютно работоспособна.

Что нам понадобится?

  • флешка с установленной ОС
  • виртуальная платформа VirtualBox

Работать будем из хозяйской Windows.

ВНИМАНИЕ. Все открытые окна VirtualBox ЗАКРЫТЬ

Флешку – в порт. diskmgmt.msc из строки Выполнить попадаем в консоль Управления дисками в Windows. Смотрим, где ваша флешка в списке дисков. Обнаружить её будет легко: соответствующий размер и другой порядковый номер (физические диски Windows нумерует, напомню, начиная с 0 ). У меня один HDD (Диск 0 ) и флешка (Диск 1 ):

Собственно нам нужна только цифра, порядковый номер диска. 1 – запомним её; она появится чуть позже в конце команды на создание файла диска виртуальной машины VMDK для проверяемой флешки.

Запускаем . В ней переходим в каталог с установленной виртуальной платформой:

Cd %programfiles%\Oracle\VirtualBox

и даём команду на создание файла диска виртуальной машины VMDK для нашей флешки в корне диска С (название файла и путь расположения могут быть любыми):

VBoxManage internalcommands createrawvmdk -filename C:\флешка.vmdk -rawdisk \\.\PhysicalDrive1

Воспользуемся проводником Windows и посмотрим на файл, на месте ли:

да куда он денется-то…

Пришло время для виртуальной машины. Запустим от имени админа. И создадим новую машину вот так, с указанием на созданный файл флешка.vmdk :

Запускаем . Загрузочная флешка в VirtualBox с Андроидом на борту работает:

Сразу обращаю ваше внимание на то, что в настройках виртуальной машины в разделе Носители первым загрузочным устройством должен быть именно созданный вами файл диска виртуальной машины VMDK. Это обязательное условие, если вы захотите не просто протестировать флешку в качестве LiveCD носителя, но и захотите установить систему на виртуальную машину для полной проверки работоспособности в качестве установочной флешки. Но для этого какую бы ОС вы не пытались установить, вам понадобится для неё виртуальный жёсткий диск . Его легко создать в том же меню Носители , щёлкнув по значку Добавить жёсткий диск . И во время установки ОС на виртуальный HDD в VirtualBox указать на него. Для Андроида я выбрал так:

На что обратить внимание?

  • Если у вас возникли вопросы по установке Андроид на компьютер, обратитесь к одноимённой ссылке в абзаце выше.
  • Размеры виртуального диска при установке ОС-ей разные, но мы тестим флешку, а значит для пространства берём минимальные требования. Но вот на характеристики производительности советую не скупиться (объёмы видео и RAM возьмите побольше), чтобы избежать проблем во время установки и не грешить на работоспособность вашей загрузочной флешки.
  • После установки ОС на виртуальный диск в VirtualBox с флешки файл флешка.vmdk должен быть УДАЛЁН ИЗ СПИСКА виртуальных носителей (а то загрузка с флешки будет преследовать вас по кругу).

В этой заметке я расскажу, как подключить 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.

Последние несколько лет для целей настольной виртуализации я использую исключительно 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 и видим новый пункт в меню загрузки. Это и есть наша флешка.

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