Как загрузиться с USB-накопителя в VirtualBox?


72

Вопрос прост и понятен:

Как загрузиться с USB-накопителя в VirtualBox?

РЕДАКТИРОВАТЬ :

Я прикрепил usbк VirtualBox, как показано на скриншоте.

https://i.stack.imgur.com/UPZZo.png

Но загрузка с USB-накопителя невозможна даже после подключения (ссылка) .

Поэтому я хотел бы знать, есть ли другая возможность загрузки с USB-накопителя?


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

@Ravan - не забывать, часто пользователи не прикрепляют в gparted свойство «boot» к usb-флешке. Это в меню «раздел» gparted и там вы можете редактировать флаг, соответственно. метку usb-флешки и активируйте параметр «boot».
dschinn1001

1
@dattutbrus Это не сработает, если вы хотите изменить файлы на USB
Пол

Ответы:


90

Сам по себе VirtualBox не поддерживает загрузку с USB-устройства. Для загрузки с USB-устройства требуется другой загрузчик. Шаги ниже обеспечивают один из возможных способов сделать это:

  1. Загрузить Plop Boot Manager (в настоящее время v5.0.15)
  2. Извлеките файл plpbt.isoиз архива ZIP и сохраните его где-нибудь.
  3. Откройте настройки для виртуальной машины и прикрепите файл ISO:

    введите описание изображения здесь

  4. Добавьте фильтр для устройства USB:

    введите описание изображения здесь

  5. Загрузите виртуальную машину и выберите в меню пункт «USB»:

    введите описание изображения здесь

Если все прошло хорошо, машина должна загрузиться с USB-устройства.


1
Это определенно более простой ответ, чем мой. Мне это нравится! Хотел бы я больше проголосовать. =)
Terrance

3
Этот ответ должен включать то, что вы должны быть частью группы vboxusers .
MusiKk

6
Это не работает для меня. Когда я выбираю USB я жду с его экраном вечно. Любая идея? postimg.org/image/dv8w83pi3
Джон

6
Я хотел добавить, что Plop Boot Manager только официально поддерживает EHCI. Если вы похожи на меня и пытаетесь использовать накопитель USB 3.0 с Plop Boot Manager, он не будет работать. Вы можете попробовать использовать метод, упомянутый в другом посте, но VirtualBox также не очень любит работать с необработанными vmdks с устройств USB 3.0. Если на вашем компьютере есть только порты USB 3, вы можете заказать концентратор USB 2.0 и подключить диск через него. По сути, он будет вести себя как USB 2.0.
Fakedad

3
Если вы объедините это решение с VMDK, вы сможете получить собственную производительность USB. В противном случае это работает только с USB 1.1.
Уилл Бикфорд

50

РЕДАКТИРОВАТЬ: 7 марта 2018

Здесь стоит кое-что отметить. Оставление USB-накопителя в компьютере при перезагрузке может изменить /dev/sdобозначение буквы диска, в результате чего необработанный usb.vmdkфайл будет указывать на неправильный диск, чтобы он не загружался в VirtualBox. В качестве теста я оставил один в моей системе. Это было /dev/sdiдо перезагрузки, после перезагрузки было /dev/sdc. При перезагрузке компьютера для каких-либо изменений, пожалуйста, отключите USB-накопитель перед перезагрузкой. Я смотрю, можно ли создать необработанный диск из UUID диска, поскольку это не изменится.


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

ПРИМЕЧАНИЕ. Вы ДОЛЖНЫ добавить свою учетную запись в vboxusersгруппу для VirtualBox, чтобы увидеть ваш USB. Вы ДОЛЖНЫ также добавить свою учетную запись в diskгруппу, или вы не можете добавить .vmdkфайл на свою виртуальную машину. Добавленные инструкции ниже в РЕДАКТИРОВАТЬ . Это также не копирует USB-накопитель на жесткий диск и использует USB напрямую. Это может быть полезно, если на USB-накопителе есть постоянство, которое вы хотите сохранить. Не все ситуации одинаковы, поэтому это может не сработать для каждого случая.

Во-первых, вам нужно иметь свой USB, который вы создали в вашей системе, и определить, что такое физический диск. Мы будем предполагать, что ваш диск смонтирован как /dev/sdb1. Итак, физический диск будет /dev/sdb.

Затем введите следующее в окне терминала, чтобы создать .vmdkфайл, который указывает на USB-накопитель:

sudo vboxmanage internalcommands createrawvmdk -filename  ~/usb.vmdk -rawdisk /dev/sdb

Или же

sudo VBoxManage internalcommands createrawvmdk -filename  ~/usb.vmdk -rawdisk /dev/sdb

Тогда вы должны увидеть что-то похожее на это:

RAW host disk access VMDK file /home/ravan/usb.vmdk created successfully.

Примечание. У некоторых людей возникли проблемы с владением вновь созданным файлом. Взять на себя ответственность за новый файл:

sudo chown $USER:$USER ~/usb.vmdk

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

введите описание изображения здесь

РЕДАКТИРОВАТЬ:

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

sudo usermod -a -G vboxusers username

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

Примечание. Добавление пользователя в группу дисков может быть опасным и представлять угрозу безопасности. Это так же опасно, как иметь доступ sudo для записи на сырой диск.

sudo usermod -a -G disk username

Затем вы ДОЛЖНЫ перезагрузить систему, чтобы изменения вступили в силу.

Перед перезагрузкой:

введите описание изображения здесь

После перезагрузки:

введите описание изображения здесь

Надеюсь это поможет!


1
Я получил эту ошибку: VBoxManage: ошибка: VMDK: не удалось открыть файл необработанного диска '/ dev / sdc' VBoxManage: ошибка: код ошибки VERR_WRITE_PROTECT в /build/virtualbox-VDAABr/virtualbox-4.3.36-dfsg/src/VBox/ Хранение / VMDK.cpp (3390) в функции Int vmdkCreateRawImage (PVMDKIMAGE, PVBOXHDDRAW, uint64_t) VBoxManage: ошибка: не удается создать необработанный VMDK диска: VERR_WRITE_PROTECT VBoxManage: ошибка: файл VMDK сырым диск не был создан
John

@John Вы добавили свою учетную запись в diskгруппу, затем вышли из системы и снова вошли в систему или перезагрузили ее после добавления группы?
Терренс

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

2
хорошо работает для меня Замечания: не нужно перезагружаться, только чтобы выйти / войти. Оказавшись в группе дисков, не нужно использовать sudo.
Карл Форнер

1
Я следовал инструкциям, но при попытке загрузить Windows 10 с usb-накопителя в virtualbox появляется сообщение «FATAL: не удалось прочитать с загрузочного носителя! Система остановлена». Какие-либо предложения? Спасибо за помощь!
Arch Linux Tux

15

Я пришел на этот пост всего несколько дней назад. Я не хочу использовать Plop Boot Manager, потому что моя флешка уже загрузочная.

Поэтому я попытался указать USB-флешку на диск VMDK (как в ответе Терранса), создав vboxmanage internalcommands createrawvmdk -filename ~/usb.vmdk -rawdisk /dev/sdb

К сожалению, это отказался работать ... Я chmodи chownна usb.vmdkдиск, и поэтому я смог прикрепить его к виртуальной машине , но она просто не работает.

Наконец, я попробовал другое решение, и это сработало безупречно. Вот оно (спасибо Джану Сантосу за исследования):

  1. Вставьте флешку и идентифицируйте ее (у меня /dev/sdbработает Sabayon Linux);
  2. Создайте .vmdkдиск, преобразовав необработанное устройство (например, USB-накопитель) в диск VirtualBox

    sudo VBoxManage convertfromraw /dev/sdb ./usb.vmdk --format vmdk
    
  3. Теперь у вас есть usb.vmdkдиск, созданный с вашей загрузочной флешки. Я попробовал также ddUSB-флешку к файлу образа и создать .vmdkдиск из файла образа. Он работает, а также .vdiдиски , созданные прежний путь (или из файла изображения)

  4. Теперь дайте права доступа к созданному диску, чтобы VirtualBox мог получить доступ к файлу. Это просто означает , что изменить владельца файла на пользователя , которые находятся в группе vboxusers . Если ваша установка VirtualBox работает нормально, то этот владелец, вероятно, вы:

    sudo chown `whoami`:`whoami` ./usb.vmdk
    
  5. Теперь вам просто нужно подключить usb.vmdkдиск к виртуальной машине. Но он должен быть подключен к контроллеру IDE . Я пытался SATAбез успеха.

Пример виртуальной машины с загрузочным <code> usb.vmdk </ code>, подключенным к контроллеру IDE

На данный момент, вы в порядке.

Просто загрузите новую виртуальную машину, нажмите F12и выберите загрузочный диск.

Наслаждайтесь!


Работает ли это с USB 3.0 (см. Комментарии здесь askubuntu.com/questions/693719/… )?
Сумасшедший о

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

11

Самое простое решение - скопировать содержимое USB-ключа в iso-файл (ну, в следующий раз я просто скачаю iso на нужную машину, USB-ключ в первую очередь не нужен)

dd if=/dev/sdc of=myusbkey.iso

А затем добавьте этот .iso в качестве оптического привода в настройках VirtualBox в разделе «Storage, Controller: IDE» (или, я полагаю, SATA).

Нет необходимости создавать файл .vmdk, VirtualBox поддерживает файлы .iso.


Этот ответ должен быть наверху.
МакМаттон

Я согласен :-) Но это требует большего количества голосов, все же;)
Дэвид Форе

Дело в том, что если у вас есть раздел с загрузочным образом около 40 ГБ, он сгенерирует файл с таким размером 😅
Sposmen

Правильно, но все другие решения тоже так делают, не так ли?
Дэвид Фор,

1
@DavidFaure Оригинальный ответ об использовании «внутренних команд VBoxManage createrawvmdk ...» просто создает что-то, что вы можете считать эквивалентным ярлыку на USB-накопитель, который вы подключили к системе во время выполнения вышеуказанной команды. Таким образом, вы не получите потенциально огромное изображение USB-накопителя, как упомянуто пользователем 33845
ConceptRat 10.10-18

5

Я бы предложил следующие шаги.

  1. Открытые Диски.
  2. Ищите USB.
  3. Нажмите там, и в верхнем правом углу вы увидите значок настроек, который имеет 3 параллельные линии.
  4. Нажмите там и выберите Создать образ диска ...
  5. Выберите местоположение и нажмите « Создать» . Это создаст файл .img, который вы можете использовать в VirtualBox.

2

Я не хотел запускать Virtualbox от имени пользователя root. Я не хотел, чтобы мой пользователь принадлежал к группе дисков и имел полные права доступа ко всем дискам.

Итак, вот что я получил на работу:

Узнайте, что такое карта памяти. В следующих инструкциях это sdc.

  • Размонтировать флешку

    su -
    chmod 666 /dev/sdc1
    chmod 666 /dev/sdc
    exit # Run the following command as regular user:
    VBoxManage internalcommands createrawvmdk -filename usb.vmdk -rawdisk /dev/sdc
    su - # Back as root again:
    chmod 777 usb.vmdk
    chmod 666 /dev/sdc
    
  • Подключите usb.vmdk к виртуальной машине

    chmod 666 /dev/sdc
    
  • Запустите виртуальную машину
  • После этого сбросьте разрешение sdc1 для безопасности:

    chmod 660 /dev/sdc1
    

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

Я использую Mandriva Linux, но в Ubuntu должно быть примерно так же


Разрешение возиться здесь - очень плохой совет. Прежде всего, вы делаете это как пользователь root, поэтому вам не нужно менять разрешения, чтобы эти команды работали. Во-вторых, лучше добавить соответствующего пользователя в группу дисков, так что это даже не нужно.
Эван Теран

@ Эван Теран Ты даже не пробовал? И да, пользователь является частью группы дисков. Это метод, который я до сих пор использую с моей собственной операционной системой Linux. Уэйн Сэлли Wayne@WayneSallee.com
Уэйн Сэлли

Я не сказал, что это не сработает, я сказал, что это не очень хороший совет. Независимо от групп пользователей, если вы запускаете команды от имени пользователя root, вам даже не нужно гадить с разрешениями, потому что в любом случае доступ с правами root. Кроме того, создание файлов и папок с 777 и 666 является плохой практикой, вы не должны делать вещи доступными для чтения или записи, если в этом нет необходимости.
Эван Теран

@ Evan Teran Не рекомендуется запускать программу от имени пользователя root, который не обязательно должен быть пользователем root. Карта памяти находится на некоторое время, но не на сервере. Это вопрос того, куда вы хотите поставить риск. Я решил поставить риск на карту памяти, а не на систему. Wayne@WayneSallee.com
Уэйн Сали

Исправление: я не поместил своего пользователя в группу дисков. Wayne@WayneSallee.com
Уэйн Сали

1

Если ваш USB-диск является загрузочным диском EFI, Plop Boot Manager не будет работать, так как он не поддерживает загрузку EFI. В этом случае у меня работало использование менеджера загрузки rEFInd ( http://www.rodsbooks.com/refind/ ).

  1. Загрузите rEFInd загрузочный iso с http://sourceforge.net/projects/refind/files/0.11.4/refind-cd-0.11.4.zip/download и распакуйте его.

  2. Откройте настройки виртуальной машины в VirtualBox и прикрепите ISO-файл rEFInd CD.

  3. Убедитесь, что в настройках виртуальной машины на вкладке «Система» включена опция «Включить EFI (только специальные ОС)».

  4. Загрузите виртуальную машину, и вы должны увидеть rEFInd загрузочное меню:

ПЕРВОЕ меню

  1. Подключите USB-накопитель в VirtualBox.

  2. Нажмите клавишу Backspace, чтобы обновить меню, или просто подождите несколько секунд, и в меню должен появиться диск.

  3. Выберите ваш USB-накопитель и нажмите Enter, и ваш USB-накопитель должен начать загрузку.

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.