Как в VirtualBox загрузиться с USB
В этой заметке я расскажу, как подключить 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, если они открыты.
Далее нам нужно открыть командную строку как администратор. Для этого нажмите Win+x и выберите «Windows PowerShell (администратор)».
Теперь перейдите в папку, где у вас установлена VirtualBox. Если эта программа установлена в директорию по умолчанию, то команда для перехода:
cd $Env:programfilesOracleVirtualBox
Если вы выбрали другое расположение для 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 обойтись без прав root, нужно добавить пользователя (себя) в группу disk:
sudo usermod -a -G disk $USER
После этого перезагрузитесь.
Если вы не добавите себя в группу disk, то вам нужно будет запускать VirtualBox от пользователя root или с sudo, иначе вы столкнётесь с ошибкой:
VD: error VERR_ACCESS_DENIED opening image file '/home/mial/VirtualBox VMs/usb.vmdk' (VERR_ACCESS_DENIED).
В Linux, чтобы узнать имя USB диска выполните команду:
sudo fdisk -l
В моём случае у диска имя /dev/sdb.
Для создания файла виртуального диска, указывающее на реальный диск, выполните команду вида:
VBoxManage internalcommands createrawvmdk -filename '~/VirtualBox VMs/usb.vmdk' -rawdisk /dev/sdX
Где вместо X впишите букву соответствующего диска. Пример для моих условий:
sudo VBoxManage internalcommands createrawvmdk -filename '~/VirtualBox VMs/usb.vmdk' -rawdisk /dev/sdb
В этой команде вы можете заменить ‘~/VirtualBox VMs/usb.vmdk’ на другое расположение по своему усмотрению.
Всё остальное — создание виртуальной машины и выбор в качестве жёсткого диска существующий виртуальный диск — в точности как в Windows.
Обратите внимание, что файл usb.vmdk — это простой текстовый файл, который вы можете переместить в любое расположение и даже отредактировать.
Вместо имени вида /dev/sdX вы можете использовать постоянное имя на основе by-id, например:
VBoxManage internalcommands createrawvmdk -filename flash.vmdk -rawdisk '/dev/disk/by-id/usb-Samsung_Flash_Drive_0325121050019952-0:0'
Это позволит вам избежать ошибки недоступности диска если его имя изменится. Например, если вы перед флешкой для VirtualBox подключите какую-то другую флешку или USB диск и имя диска изменится с /dev/sdb на /dev/sdc. Подробности смотрите в статье «Постоянные имена для файловых устройств».
Настоятельно рекомендуется ознакомиться с Руководством по VirtualBox
Связанные статьи:
- Как установить и использовать Vagrant в Linux и Windows (67.5%)
- VirtualBox не видит USB устройств (58.6%)
- Windows перестала загружаться в виртуальной машине после обновления до VirtualBox 7 (РЕШЕНО) (52.4%)
- После обновления до VirtualBox 7 в гостевой ОС Windows стали прозрачными или невидны некоторые области программ (РЕШЕНО) (52.4%)
- Гостевая ОС Windows зависает в VirtualBox 7 (РЕШЕНО) (52.4%)
- Ошибка VirtualBox «NS_ERROR_FAILURE (0x80004005)» (РЕШЕНО) (RANDOM — 50%)
https://zalinux.ru/?p=2048