Як завантажуватися з USB-накопичувача у VirtualBox?


72

Питання просте і прямо:

Як завантажуватися з USB-накопичувача у VirtualBox?

Редагувати :

Я долучився usbдо VirtualBox, як показано на скріншоті.

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

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

Тож я хотів би знати, чи є інша можливість завантажуватися з USB-накопичувача?


Ви можете просто відкрити свій USB, стиснути все в ISO-файл і завантажити його нормально.
dat tutbrus

@Ravan - не забувати, часто користувачі не додають gparted властивості "boot" до usb-stick. Це в меню "розділ" gparted і там ви можете редагувати прапор відповідно. мітка usb-stick і активує параметр "boot".
dschinn1001

1
@dattutbrus Це не спрацює, якщо ви хочете змінити файли на USB
Пол,

Відповіді:


89

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

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

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

  4. Додайте фільтр для USB-пристрою:

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

  5. Завантажте VM та виберіть у меню опцію "USB":

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

Якщо все пішло добре, тепер машина повинна завантажуватися з USB-пристрою.


1
Це, безумовно, легша відповідь, ніж моя. Мені це подобається! Я б хотів, щоб я міг більше підкреслити. =)
Терранс

3
Ця відповідь повинна містити те, що ви повинні бути частиною групи vboxusers .
musiKk

6
Це не працює для мене. Коли я вибираю usb, я вічно чекаю його екрана. Будь-яка ідея? postimg.org/image/dv8w83pi3
Іван

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

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файл до своєї віртуальної машини. Додані інструкції нижче в EDIT . Це також не копіює 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, оскільки мій USB-накопичувач уже завантажився.

Тому я спробував вказати USB-накопичувач на диск VMDK (як у відповіді Terrance), створивши vboxmanage internalcommands createrawvmdk -filename ~/usb.vmdk -rawdisk /dev/sdb

На жаль, це відмовився працювати ... Я chmodі chownна usb.vmdkдиск, і тому я зміг прикріпити його до віртуальної машини , але вона просто не працює.

Нарешті, я спробував інше рішення, і це спрацювало бездоганно. Ось це (спасибі Геану Сантосу за дослідження):

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

    sudo VBoxManage convertfromraw /dev/sdb ./usb.vmdk --format vmdk
    
  3. Тепер у вас є usb.vmdkдиск, створений із завантажувальної USB-накопичувачі. Я також спробував ddUSB-паличку до файлу зображення та створив .vmdkдиск із файлу зображення. Він працює, як і .vdiдиски, створені колишнім способом (або з файлу зображення)

  4. Тепер надайте дозволи на створений диск, щоб VirtualBox отримав доступ до файлу. Це просто означає змінити власника файлу на користувача, який знаходиться в групі vboxusers . Якщо ваша установка VirtualBox працює нормально, ніж цей власник, мабуть, ви:

    sudo chown `whoami`:`whoami` ./usb.vmdk
    
  5. Тепер вам просто потрібно приєднати usb.vmdkдиск до віртуальної машини. Але він повинен бути приєднаний до контролера IDE . Я намагався SATAбез успіху.

Приклад VM із завантажувальним <code> usb.vmdk </code>, приєднаним до контролера IDE

На даний момент у вас все в порядку.

Просто завантажте новий VM, натисніть F12і виберіть завантажувальний привід.

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


Чи працює це з USB 3.0 (див. Тут коментарі askubuntu.com/questions/693719/… )?
горіх про natty

Я щойно перевірив, і ви в основному скопіювали свій накопичувач usb-накопичувача, а не використовуєте оригінальний USB-накопичувач таким чином.
Федкомп

11

Найпростіше рішення - скопіювати вміст ключа USB у файл iso (ну, наступного разу я просто завантажу ізо на потрібну машину, в першу чергу не потрібен ключ USB)

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

А потім додайте це .iso в якості оптичного накопичувача в налаштуваннях VirtualBox, під Storage, Controller: IDE (або SATA, я думаю).

Не потрібно створювати .vmdk файл, VirtualBox підтримує .iso файли.


Ця відповідь має бути вгорі.
МакМуттон

Я погоджуюсь :-) Але для цього потрібно більше оновлень;)
David Faure

Справа в тому, що якщо у вас є розділ із завантажувальним зображенням розміром близько 40 Гб, він створить файл такого розміру 😅
Sposmen

Правильно, але всі інші рішення теж роблять це, чи не так?
Девід Форе

1
@DavidFaure Оригінальна відповідь про використання "VBoxManage internecommands createrawvmdk ..." просто створює те, що ви могли б вважати еквівалентним ярликом USB-накопичувача, який ви підключили до системи під час виконання вищевказаної команди. Таким чином, ви не закінчите потенційно величезним зображенням USB-накопичувача, як згадував user33845
ConceptRat

5

Я б запропонував наступні кроки.

  1. Відкрити диски.
  2. Шукайте USB.
  3. Клацніть туди, і у верхньому правому куті ви побачите значок налаштувань, який має 3 паралельних лінії.
  4. Клацніть там і оберіть Створити образ диска ...
  5. Виберіть місце та натисніть Створити . Це створить .img файл, який ви можете використовувати у VirtualBox.

2

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

Тож ось що я почав працювати:

Дізнайтеся, що таке SD пам'ять. У наступних інструкціях це sdc.

  • Відключення пам'яті Stick

    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 Sallee Wayne@WayneSallee.com
Wayne Sallee

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

@ Evan Teran, це не дуже рада запускати програму як root, що не потрібно мати root. Пам'ять зберігається лише на деякий час, і її немає на сервері. Це питання, де ви хочете поставити ризик. Я вирішу ризикувати на пам'ять, а не на систему. Wayne@WayneSallee.com
Wayne Sallee

Виправлення: я не ставлю свого користувача до групи дисків. Wayne@WayneSallee.com
Wayne Sallee

1

Якщо ваш USB-накопичувач - це завантажувальний накопичувач EFI, диспетчер завантаження Plop не працюватиме, оскільки він не підтримує завантаження EFI. У мене в такому випадку працював диспетчер завантаження rEFInd ( http://www.rodsbooks.com/refind/ ).

  1. Завантажте файл завантажувальної версії rEFInd з 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:

меню REFInd

  1. Приєднайте свій USB-накопичувач у VirtualBox.

  2. Натисніть на зворотну простір, щоб оновити меню або просто зачекайте кілька секунд, і диск повинен з’явитися в меню.

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

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.