Jak uruchomić z dysku USB w VirtualBox?

72

Pytanie jest proste i jednoznaczne:

Jak uruchomić z dysku USB w VirtualBox?

EDYCJA :

I został dołączony usbdo VirtualBox, jak pokazano na zrzucie ekranu.

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

Nie można jednak uruchomić systemu z dysku USB, nawet jeśli jest podłączony (odniesienie) .

Chciałbym więc wiedzieć, czy jest jakaś inna możliwość rozruchu z dysku USB?

Ravan
źródło
Możesz po prostu otworzyć USB, skompresować wszystko do pliku ISO i uruchomić go normalnie.
dat tutbrus
@Ravan - nie zapominając często użytkownicy nie dołączają do pamięci USB właściwości „boot”. Jest to w menu „partycja” gparted i tam możesz edytować flagę odpowiednio. etykieta pendrive'a i aktywuj parametr „boot”.
dschinn1001
1
@dattutbrus To nie zadziała, jeśli chcesz zmienić pliki na USB
Paul

Odpowiedzi:

89

Sam VirtualBox nie obsługuje uruchamiania z urządzenia USB. Do rozruchu z urządzenia USB wymagany jest inny moduł ładujący. Poniższe kroki zapewniają jeden z możliwych sposobów osiągnięcia tego celu:

  1. Pobierz Plop Boot Manager (obecnie v5.0.15)
  2. Wyodrębnij plik plpbt.isoz archiwum ZIP i zapisz go gdzieś.
  3. Otwórz ustawienia maszyny wirtualnej i dołącz plik ISO:

    wprowadź opis zdjęcia tutaj

  4. Dodaj filtr do urządzenia USB:

    wprowadź opis zdjęcia tutaj

  5. Uruchom maszynę wirtualną i wybierz opcję „USB” z menu:

    wprowadź opis zdjęcia tutaj

Jeśli wszystko poszło dobrze, urządzenie powinno teraz uruchomić się z urządzenia USB.

Nathan Osman
źródło
1
To zdecydowanie łatwiejsza odpowiedź niż moja. Lubię to! Chciałbym móc głosować więcej. =)
Terrance
3
Ta odpowiedź powinna zawierać informację, że musisz należeć do grupy vboxusers .
musiKk 15.01.16
6
Nie działa mi. Kiedy wybieram usb, czekam wiecznie z jego ekranem. Dowolny pomysł? postimg.org/image/dv8w83pi3
Jan
6
Chciałem dodać, że Plop Boot Manager oficjalnie obsługuje tylko EHCI. Jeśli jesteś podobny do mnie i próbujesz użyć napędu USB 3.0 z Plop Boot Manager, to nie będzie działać. Możesz spróbować użyć metody wymienionej w innym poście, ale VirtualBox również nie wydaje się bardzo lubić pracy z surowymi vmdks z urządzeń USB 3.0. Jeśli masz tylko 3 porty USB w komputerze, możesz zamówić koncentrator USB 2.0 i podłączyć do niego dysk. Będzie się zachowywał zasadniczo jak dysk USB 2.0.
fakedad
3
Jeśli połączysz to rozwiązanie z VMDK, możesz uzyskać natywną wydajność USB. W przeciwnym razie działa to tylko z USB 1.1.
Will Bickford,
50

EDYCJA: 7 marca 2018 r

Coś do odnotowania tutaj. Pozostawienie dysku USB w komputerze podczas ponownego uruchamiania może zmienić /dev/sdoznaczenie litery dysku, powodując, że usb.vmdkplik raw wskazuje niewłaściwy dysk, więc nie uruchamia się w VirtualBox. Jako test zostawiłem jeden w moim systemie. To było /dev/sdiprzed ponownym uruchomieniem, po ponownym uruchomieniu było /dev/sdc. Po ponownym uruchomieniu komputera w celu wprowadzenia zmian należy usunąć dysk USB przed ponownym uruchomieniem. Zastanawiam się, czy zamiast tego można utworzyć surowy dysk z UUID dysku, ponieważ to się nie zmieni.


Od VirtualBox nie ładuje do pamięci USB, można utworzyć .vmdkplik, który wskazuje na dysku USB do uruchamiania do niego.

UWAGA: MUSISZ dodać swoje konto użytkownika do vboxusersgrupy, aby VirtualBox mógł zobaczyć twoje USB. MUSISZ także dodać swoje konto do diskgrupy, w przeciwnym razie nie możesz dodać .vmdkpliku do maszyny wirtualnej. Dodano instrukcje poniżej w EDIT . Nie powoduje to również skopiowania dysku USB na dysk twardy i bezpośrednie użycie USB. Może to być pomocne, jeśli na USB chcesz zachować trwałość. Nie każda sytuacja jest taka sama, więc może nie działać w każdym przypadku.

Po pierwsze, musisz mieć swoje USB utworzone w systemie i ustalić, co to jest dysk fizyczny. Zakładamy, że twój dysk jest zamontowany jako /dev/sdb1. Tak więc fizyczny napęd byłby /dev/sdb.

Następnie wpisz następujące polecenie w oknie terminala, aby utworzyć .vmdkplik wskazujący dysk USB:

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

Lub

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

Powinieneś zobaczyć coś podobnego do tego:

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

Uwaga: niektóre osoby miały problemy z własnością nowo utworzonego pliku. Przejmij na własność nowy plik:

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

Następnie wszystko, co musisz zrobić, to dodać .vmdkplik do wirtualnej maszyny VirtualBox i upewnić się, że możesz go uruchomić.

wprowadź opis zdjęcia tutaj

EDYTOWAĆ:

Aby dodać użytkownika do vboxusersgrupy, uruchom następujące polecenie:

sudo usermod -a -G vboxusers username

Aby dodać użytkownika do diskgrupy, uruchom następujące polecenie:

Uwaga: dodanie użytkownika do grupy dysków może być niebezpieczne i stanowić zagrożenie bezpieczeństwa. Jest tak niebezpieczne, jak dostęp sudo do zapisu na surowy dysk.

sudo usermod -a -G disk username

Następnie MUSISZ Zrestartować system, aby zmiany zostały wprowadzone.

Przed ponownym uruchomieniem:

wprowadź opis zdjęcia tutaj

Po ponownym uruchomieniu:

wprowadź opis zdjęcia tutaj

Mam nadzieję że to pomoże!

Terrance
źródło
1
Mam ten błąd: VBoxManage: błąd: VMDK: nie można otworzyć pliku dysku raw '/ dev / sdc' VBoxManage: błąd: kod błędu VERR_WRITE_PROTECT na /build/virtualbox-VDAABr/virtualbox-4.3.36-dfsg/src/VBox/ Przechowywanie / VMDK.cpp (3390) w funkcji int vmdkCreateRawImage (PVMDKIMAGE, PVBOXHDDRAW, uint64_t) VBoxManage: błąd: nie można utworzyć surowego VMDK dysku: VERR_WRITE_PROTECT VBoxManage: błąd: plik VMDK surowy dysk nie został utworzony
John
@John Czy dodałeś swoje konto do diskgrupy, a następnie wylogowałeś się i ponownie zalogowałeś lub uruchomiłeś ponownie po dodaniu grupy?
Terrance
Tak, ponownie uruchamiam go i zdarzenie, jeśli uruchomię go, ponieważ wynik roota jest taki sam ...
Jan
2
działa dobrze dla mnie. Uwagi: nie trzeba restartować, wystarczy się wylogować / zalogować. W grupie dysków nie trzeba używać sudo.
Karl Forner,
1
Postępowałem zgodnie z instrukcjami, ale przy próbie uruchomienia Windows 10 z napędu USB w virtualboxie jest napisane „FATAL: Nie można odczytać z nośnika rozruchowego! System zatrzymany”. Jakieś sugestie? Dziękuję za pomoc!
Arch Linux Tux,
15

Przyszedłem do tego postu zaledwie kilka dni temu. Nie chcę używać Plop Boot Manager, ponieważ moja pamięć USB jest już możliwa do uruchomienia.

Próbowałem więc skierować pamięć USB na dysk VMDK (jak w odpowiedzi Terrance'a), tworząc vboxmanage internalcommands createrawvmdk -filename ~/usb.vmdk -rawdisk /dev/sdb

Niestety, ten odmówił pracy ... Ja chmodi chownten usb.vmdkdysk, a więc udało mi się dołączyć go do maszyny wirtualnej, ale to po prostu nie działa.

Wreszcie wypróbowałem inne rozwiązanie i to zadziałało bezbłędnie. Oto on (dzięki Gean Santos za badania):

  1. Włóż pamięć USB i zidentyfikuj ją (moja /dev/sdb, z systemem Sabayon Linux);
  2. Utwórz .vmdkdysk, konwertując surowe urządzenie (np. Pamięć USB) na dysk VirtualBox

    sudo VBoxManage convertfromraw /dev/sdb ./usb.vmdk --format vmdk
    
  3. Teraz masz usb.vmdkdysk utworzony z rozruchowej pamięci USB. Próbowałem także ddpamięci USB do pliku obrazu i utworzyć .vmdkdysk z pliku obrazu. Działa, podobnie jak .vdidyski utworzone w poprzedni sposób (lub z pliku obrazu)

  4. Teraz nadaj uprawnienia do utworzonego dysku, aby VirtualBox mógł uzyskać dostęp do pliku. Oznacza to po prostu zmianę właściciela pliku na użytkownika z grupy vboxusers . Jeśli Twoja instalacja VirtualBox działa OK, to prawdopodobnie byłby to właściciel:

    sudo chown `whoami`:`whoami` ./usb.vmdk
    
  5. Teraz wystarczy podłączyć usb.vmdkdysk do maszyny wirtualnej. Ale musi być podłączony do kontrolera IDE . Próbowałem SATAbezskutecznie.

Przykład maszyny wirtualnej z bootowalnym <code> usb.vmdk </code> podłączonym do kontrolera IDE

W tym momencie jesteś w porządku.

Po prostu uruchom nową maszynę wirtualną, naciśnij F12i wybierz dysk rozruchowy.

Cieszyć się!

Marcio H Zuchini
źródło
Czy to działa z USB 3.0 (patrz komentarze askubuntu.com/questions/693719/... )?
orzechowy o natty
Właśnie sprawdziłem, a ty w zasadzie skopiowałeś pamięć USB, a nie używasz oryginalnej pamięci USB w ten sposób.
Fedcomp
11

Najłatwiejszym rozwiązaniem jest skopiowanie zawartości klucza USB do pliku ISO (cóż, następnym razem po prostu pobiorę ISO na odpowiednim komputerze, w pierwszej kolejności nie potrzebujesz klucza USB)

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

A następnie dodaj to .iso jako napęd optyczny w ustawieniach VirtualBox, w obszarze Pamięć, kontroler: IDE (lub SATA, jak sądzę).

Nie trzeba tworzyć pliku .vmdk, VirtualBox obsługuje pliki .iso.

David Faure
źródło
Ta odpowiedź powinna być na górze.
McMutton,
Zgadzam się :-) Ale to wymaga jeszcze większego poparcia;)
David Faure
Chodzi o to, że jeśli partycja ma rozruchowy obraz o wielkości około 40 GB, wygeneruje plik o takim rozmiarze 😅
Sposmen
Racja, ale wszystkie inne rozwiązania również to robią, prawda?
David Faure
1
@DavidFaure Oryginalna odpowiedź na temat używania „VBoxManage internalcommands createrawvmdk ...” po prostu tworzy coś, co można by uznać za skrót do napędu USB podłączonego do systemu w momencie uruchomienia powyższej komendy. Więc nie kończy się na potencjalnie ogromnym obrazie pamięci USB, o którym wspomniał użytkownik 33845
ConceptRat
5

Sugerowałbym następujące kroki.

  1. Otwórz dyski.
  2. Poszukaj USB.
  3. Kliknij tam, aw prawym górnym rogu zobaczysz ikonę ustawień, która ma 3 równoległe linie.
  4. Kliknij i wybierz Utwórz obraz dysku ...
  5. Wybierz lokalizację i kliknij Utwórz . Stworzy plik .img, którego możesz użyć w VirtualBox.
Madhurjya Dasgupta
źródło
2

Nie chciałem uruchamiać Virtualboksa jako root. Nie chciałem, aby mój użytkownik należał do grupy dysków i miał pełne uprawnienia do wszystkich dysków.

Oto co mam do pracy:

Dowiedz się, co to jest SD Memory Stick. W poniższych instrukcjach jest to sdc.

  • Odinstaluj kartę pamięci

    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
    
  • Dołącz maszynę wirtualną usb.vmdk

    chmod 666 /dev/sdc
    
  • Uruchom maszynę wirtualną
  • Po zakończeniu zresetuj uprawnienia sdc1 dla bezpieczeństwa:

    chmod 660 /dev/sdc1
    

Na powyższym widać, że musiałem kilka razy zresetować uprawnienia dla karty pamięci, ponieważ za każdym razem będzie ona resetowana do rootowania.

Używam Mandriva Linux, ale w Ubuntu powinno być mniej więcej tak samo

Wayne Sallee
źródło
Pozwolenie na zabawę tutaj jest bardzo złą radą. Po pierwsze, robisz to jako root, więc tak naprawdę nie musisz zmieniać uprawnień, aby te polecenia działały. Po drugie, lepiej dodać odpowiedniego użytkownika do grupy dysków, aby nie było nawet konieczne.
Evan Teran
@ Evan Teran Czy próbowałeś tego? I tak, użytkownik jest częścią grupy dysków. Jest to metoda, której używam do dziś w moim systemie operacyjnym Linux. Wayne Sallee [email protected]
Wayne Sallee
Nie powiedziałem, że to nie zadziała, powiedziałem, że to nie jest dobra rada. Niezależnie od grup użytkowników, jeśli uruchamiasz komendy jako root, nie powinieneś nawet musieć ignorować uprawnień, ponieważ i tak masz dostęp do roota. Ponadto tworzenie plików i folderów w wersjach 777 i 666 to zła praktyka, nie powinieneś sprawiać, aby świat był czytelny lub zapisywalny, chyba że jest to konieczne.
Evan Teran
@ Evan Teran nie zaleca się uruchamiania programu jako root, który nie musi być rootem. Karta pamięci jest włączona tylko na chwilę i nie znajduje się na serwerze. To kwestia miejsca, w którym chcesz ryzykować. Wybieram ryzyko na karcie pamięci, a nie na systemie. [email protected]
Wayne Sallee
Korekta: Nie umieściłem mojego użytkownika w grupie dysków. [email protected]
Wayne Sallee
1

Jeśli twój dysk USB jest dyskiem rozruchowym EFI, Plop Boot Manager nie będzie działał, ponieważ nie obsługuje rozruchu EFI. W takim przypadku działało mi użycie menedżera rozruchu rEFInd ( http://www.rodsbooks.com/refind/ ).

  1. Pobierz rEFInd bootowalną iso ze strony http://sourceforge.net/projects/refind/files/0.11.4/refind-cd-0.11.4.zip/download i rozpakuj ją.

  2. Otwórz ustawienia maszyny wirtualnej w VirtualBox i dołącz plik ISO CD rEFInd.

  3. Upewnij się, że opcja „Włącz EFI (tylko specjalne systemy operacyjne)” w ustawieniach maszyny wirtualnej w zakładce „System” jest włączona.

  4. Uruchom maszynę wirtualną i powinieneś zobaczyć menu startowe rEFInd:

Menu ODNIESIENIA

  1. Podłącz dysk USB w VirtualBox.

  2. Naciśnij klawisz Backspace, aby odświeżyć menu lub poczekaj kilka sekund, a dysk powinien pojawić się w menu.

  3. Wybierz dysk USB i naciśnij klawisz Enter, a dysk USB powinien zacząć się uruchamiać.

Leszek Szary
źródło