Bagaimana cara mem-boot dari drive USB di VirtualBox?

72

Pertanyaannya sederhana dan terus terang:

Bagaimana cara mem-boot dari drive USB di VirtualBox?

EDIT :

Saya telah melampirkan usbke VirtualBox seperti yang ditunjukkan pada tangkapan layar.

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

Tetapi tidak mungkin untuk boot dari drive USB bahkan ketika terpasang (referensi) .

Jadi saya ingin tahu apakah ada kemungkinan lain untuk boot dari USB drive?

Ravan
sumber
Anda cukup membuka USB Anda, kompres semuanya menjadi file ISO dan boot secara normal.
dat tutbrus
@Ravan - jangan lupa sering pengguna tidak memasang di gparted properti "boot" ke usb-stick. Ini ada di menu 'partisi' dari gparted dan di sana Anda dapat mengedit resp flag. label usb-stick dan aktifkan parameter "boot".
dschinn1001
1
@dattutbrus Itu tidak akan berfungsi jika Anda ingin mengubah file di USB
Paul

Jawaban:

89

VirtualBox sendiri tidak mendukung booting dari perangkat USB. Untuk mem-boot dari perangkat USB, bootloader lain diperlukan. Langkah-langkah di bawah ini menyediakan satu cara yang mungkin untuk mencapai ini:

  1. Unduh Plop Boot Manager (saat ini v5.0.15)
  2. Ekstrak file plpbt.isodari arsip ZIP dan simpan di suatu tempat.
  3. Buka pengaturan untuk mesin virtual dan lampirkan file ISO:

    masukkan deskripsi gambar di sini

  4. Tambahkan filter untuk perangkat USB:

    masukkan deskripsi gambar di sini

  5. Boot VM dan pilih opsi "USB" di menu:

    masukkan deskripsi gambar di sini

Jika semuanya berjalan dengan baik, mesin sekarang harus boot dari perangkat USB.

Nathan Osman
sumber
1
Ini jelas merupakan jawaban yang lebih mudah daripada saya. Saya suka itu! Saya berharap saya bisa lebih banyak memilih. =)
Terrance
3
Jawaban ini harus mencakup bahwa Anda harus menjadi bagian dari grup pengguna vbox .
musiKk
6
Itu tidak bekerja untuk saya. Ketika saya memilih usb, saya menunggu selamanya dengan layarnya. Ada ide? postimg.org/image/dv8w83pi3
John
6
Saya ingin menambahkan bahwa Plop Boot Manager hanya secara resmi mendukung EHCI. Jika Anda seperti saya, dan Anda mencoba menggunakan drive USB 3.0 dengan Plop Boot Manager, itu tidak akan berfungsi. Anda dapat mencoba menggunakan metode yang disebutkan dalam posting lain, tetapi VirtualBox juga tampaknya tidak terlalu suka bekerja dengan vmdks mentah dari perangkat USB 3.0. Jika Anda hanya memiliki port USB 3 di komputer Anda, Anda dapat memesan hub USB 2.0 dan menghubungkan drive melalui itu. Ini pada dasarnya akan berperilaku seperti drive USB 2.0.
fakedad
3
Jika Anda menggabungkan solusi ini dengan VMDK, Anda bisa mendapatkan kinerja USB asli. Kalau tidak, ini hanya bekerja dengan USB 1.1.
Will Bickford
50

EDIT: 7 Mar 2018

Sesuatu yang perlu diperhatikan di sini. Meninggalkan drive USB di komputer saat Anda reboot dapat mengubah /dev/sdpenunjukan huruf drive yang menyebabkan usb.vmdkfile mentah mengarah ke drive yang salah sehingga tidak bisa boot di VirtualBox. Sebagai tes saya meninggalkan satu di sistem saya. Itu /dev/sdisebelum saya reboot, setelah reboot itu /dev/sdc. Ketika Anda me-reboot komputer Anda untuk perubahan apa pun, harap lepaskan drive USB sebelum melakukan boot ulang. Saya melihat apakah disk mentah dapat dibuat dari UUID drive sebagai gantinya yang tidak akan berubah.


Karena VirtualBox tidak bisa boot ke drive USB, Anda dapat membuat .vmdkfile yang menunjuk ke drive USB Anda untuk melakukan booting ke sana.

CATATAN: Anda HARUS menambahkan akun pengguna Anda ke vboxusersgrup untuk VirtualBox untuk melihat USB Anda. Anda juga HARUS menambahkan akun Anda ke diskgrup, atau Anda tidak dapat menambahkan .vmdkfile ke Mesin Virtual Anda. Instruksi tambahan di bawah ini dalam EDIT . Ini juga tidak menyalin drive USB ke hard drive dan menggunakan USB secara langsung. Ini bisa membantu jika ada kegigihan pada USB yang ingin Anda simpan. Tidak setiap situasi sama sehingga ini mungkin tidak berfungsi untuk setiap kasus.

Pertama, Anda harus memiliki USB yang Anda buat di sistem Anda, dan menentukan apa drive fisiknya. Kami akan menganggap bahwa drive Anda dipasang sebagai /dev/sdb1. Jadi, dorongan fisiknya /dev/sdb.

Selanjutnya, ketikkan yang berikut dari jendela terminal untuk membuat .vmdkfile yang menunjuk ke drive USB:

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

Atau

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

Maka Anda akan melihat sesuatu yang mirip dengan ini:

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

Catatan: Beberapa orang memiliki masalah kepemilikan file yang baru dibuat. Ambil kepemilikan file baru:

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

Maka yang harus Anda lakukan adalah menambahkan .vmdkfile ke VirtualBox Virtual Machine Anda dan memastikan bahwa Anda dapat boot ke sana.

masukkan deskripsi gambar di sini

SUNTING:

Untuk menambahkan pengguna Anda ke vboxusersgrup, jalankan perintah berikut:

sudo usermod -a -G vboxusers username

Untuk menambahkan pengguna Anda ke diskgrup, jalankan perintah berikut:

Catatan: Menambahkan pengguna Anda ke grup disk dapat berbahaya dan berisiko keamanan. Ini sama berbahayanya dengan memiliki akses sudo untuk menulis ke disk mentah.

sudo usermod -a -G disk username

Maka Anda HARUS REBOOT sistem Anda agar perubahan berlaku.

Sebelum reboot:

masukkan deskripsi gambar di sini

Setelah reboot:

masukkan deskripsi gambar di sini

Semoga ini membantu!

Terrance
sumber
1
Saya mendapat kesalahan ini: VBoxManage: error: VMDK: tidak dapat membuka file disk mentah '/ dev / sdc' VBoxManage: error: Kode galat VERR_WRITE_PROTECT di /build/virtualbox-VDAABr/virtualbox-4.3.36-dfsg/src/VBox/ penyimpanan / VMDK.cpp (3390) dalam fungsi int vmdkCreateRawImage (PVMDKIMAGE, PVBOXHDDRAW, uint64_t) VBoxManage: error: tidak dapat menciptakan baku VMDK disk yang: VERR_WRITE_PROTECT VBoxManage: error: The disk mentah File vmdk tidak dibuat
John
@ John Apakah Anda menambahkan akun Anda ke diskgrup kemudian keluar dan kembali atau reboot setelah Anda menambahkan grup?
Terrance
Ya saya reboot dan acara jika saya menjalankannya karena hasil root sama ...
John
2
bekerja dengan baik untuk saya. Keterangan: tidak perlu reboot, cukup dengan logout / login. Setelah berada di grup disk, seseorang tidak perlu menggunakan sudo.
Karl Forner
1
Saya mengikuti instruksi, tetapi ketika mencoba untuk boot Windows 10 dari usb-drive di virtualbox dikatakan "FATAL: Tidak bisa membaca dari media boot! Sistem dihentikan." Ada saran? Terima kasih untuk bantuannya!
Arch Linux Tux
15

Saya datang ke posting ini hanya beberapa hari yang lalu. Saya tidak ingin menggunakan Plop Boot Manager, karena stik USB saya sudah dapat di-boot.

Jadi saya mencoba mengarahkan USB stick ke disk VMDK (seperti pada jawaban Terrance) dengan membuat vboxmanage internalcommands createrawvmdk -filename ~/usb.vmdk -rawdisk /dev/sdb

Sayangnya, ini menolak untuk bekerja ... saya chmoddan chownpara usb.vmdkdisk, dan jadi saya bisa pasangkan ke VM tapi itu hanya tidak bekerja.

Akhirnya, saya mencoba solusi lain dan yang ini berfungsi dengan sempurna. Ini dia (terima kasih kepada Gean Santos untuk penelitian ini):

  1. Masukkan USB stick dan kenali itu (milikku /dev/sdb, jalankan Sabayon Linux);
  2. Buat .vmdkdisk dengan mengonversi perangkat mentah (yaitu stik USB) ke disk VirtualBox

    sudo VBoxManage convertfromraw /dev/sdb ./usb.vmdk --format vmdk
    
  3. Sekarang Anda memiliki usb.vmdkdisk yang dibuat dari USB stick bootable Anda. Saya juga mencoba ddUSB stick ke file gambar dan membuat .vmdkdisk dari file gambar. Ini bekerja, serta .vdidisk yang dibuat dengan cara sebelumnya (atau dari file gambar)

  4. Sekarang, berikan izin ke disk yang dibuat agar VirtualBox dapat mengakses file. Itu hanya berarti mengubah pemilik file menjadi pengguna yang ada di grup vboxusers . Jika instalasi VirtualBox Anda berjalan OK, dari pemilik ini mungkin, Anda:

    sudo chown `whoami`:`whoami` ./usb.vmdk
    
  5. Sekarang, Anda hanya perlu melampirkan usb.vmdkdisk ke Mesin Virtual. Tetapi harus dilampirkan ke pengontrol IDE . Saya berusaha SATAtanpa hasil.

Contoh VM dengan bootable <code> usb.vmdk </code> dilampirkan ke pengontrol IDE

Pada titik ini, Anda baik-baik saja.

Cukup boot VM baru, tekan F12dan pilih drive yang dapat di-boot.

Nikmati!

Marcio H Zuchini
sumber
Apakah ini bekerja dengan USB 3.0 (lih. Komentar di sini askubuntu.com/questions/693719/… )?
gila tentang rapi
Saya baru saja memeriksa dan pada dasarnya Anda menyalin drive stick usb Anda, dan tidak menggunakan stick usb asli dengan cara ini.
Fedcomp
11

Solusi termudah adalah menyalin isi kunci USB ke file iso (well, lain kali saya hanya akan mengunduh iso di mesin yang tepat, tidak ada kunci USB yang diperlukan di tempat pertama)

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

Dan kemudian tambahkan .iso ini sebagai drive optik dalam pengaturan VirtualBox, di bawah Storage, Controller: IDE (atau SATA, saya kira).

Tidak perlu membuat file .vmdk, VirtualBox mendukung file .iso.

David Faure
sumber
Jawaban ini harus di atas.
McMutton
Saya setuju :-) Tetapi itu membutuhkan lebih banyak suara positif;)
David Faure
Masalahnya di sini adalah jika Anda memiliki partisi dengan gambar yang dapat di-boot sekitar 40GB, ia akan menghasilkan file dengan ukuran itu 😅
Sposmen
Benar, tetapi semua solusi lain juga melakukannya, bukan?
David Faure
1
@ Davidvida Jawaban asli tentang menggunakan "VBoxManage internalcommands createrawvmdk ..." hanya menciptakan sesuatu yang dapat Anda anggap setara dengan pintasan ke drive USB yang telah Anda lampirkan ke sistem pada saat Anda menjalankan perintah di atas. Jadi Anda tidak berakhir dengan gambar berpotensi besar dari stik USB seperti yang disebutkan oleh user33845
ConceptRat
5

Saya menyarankan langkah-langkah berikut.

  1. Buka Disk.
  2. Cari USB.
  3. Klik di sana dan di sudut kanan atas Anda akan melihat ikon pengaturan yang memiliki 3 garis paralel.
  4. Klik di sana dan pilih Buat Gambar Disk ...
  5. Pilih lokasi dan klik Buat . Ini akan membuat file .img yang dapat Anda gunakan di VirtualBox.
Madhurjya Dasgupta
sumber
2

Saya tidak ingin menjalankan Virtualbox sebagai root. Saya tidak ingin pengguna saya berasal dari grup disk, memiliki izin penuh untuk semua disk.

Jadi inilah yang harus saya kerjakan:

Cari tahu apa itu memory stick. Dalam instruksi berikut ini sdc.

  • Lepas memori 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
    
  • Pasang mesin virtualbox usb.vmdk

    chmod 666 /dev/sdc
    
  • Mulai mesin virtualbox
  • Setelah selesai, reset izin sdc1 untuk keamanan:

    chmod 660 /dev/sdc1
    

Di atas Anda dapat melihat bahwa saya harus mengatur ulang izin untuk memory stick beberapa kali, karena itu akan diatur kembali ke root setiap kali.

Saya menggunakan Mandriva Linux, tetapi harus hampir sama di Ubuntu

Wayne Sallee
sumber
Izin bermain-main di sini adalah saran yang sangat buruk. Pertama-tama, Anda melakukannya sebagai root, jadi Anda tidak benar-benar perlu mengubah izin untuk membuat perintah itu berfungsi. Kedua, lebih baik menambahkan pengguna yang sesuai ke dalam grup disk sehingga tidak perlu.
Evan Teran
@ Evan Teran Apakah Anda pernah mencobanya? Dan ya, pengguna adalah bagian dari grup disk. Ini adalah metode yang masih saya gunakan sampai sekarang dengan sistem operasi linux saya sendiri. Wayne Sallee [email protected]
Wayne Sallee
Saya tidak mengatakan itu tidak akan berhasil, saya mengatakan itu bukan nasihat yang baik. Terlepas dari grup pengguna, jika Anda menjalankan perintah sebagai root, Anda bahkan tidak perlu bercampur dengan izin karena bagaimanapun juga akses root. Selain itu, membuat file dan folder dengan 777 dan 666 adalah praktik yang buruk, Anda seharusnya tidak membuat hal-hal dunia dapat dibaca atau ditulis kecuali jika perlu.
Evan Teran
@ Evan Teran itu bukan saran yang baik untuk menjalankan program sebagai root, yang tidak perlu menjadi root. Memory stick hanya untuk sementara, dan tidak di server. Ini masalah di mana Anda ingin menempatkan risiko. Saya memilih untuk menempatkan risiko pada memory stick daripada sistem. [email protected]
Wayne Sallee
Koreksi: Saya belum memasukkan pengguna saya ke grup disk. [email protected]
Wayne Sallee
1

Jika drive USB Anda adalah drive yang dapat dibooting EFI, Plop Boot Manager tidak akan berfungsi karena tidak mendukung booting EFI. Apa yang berhasil bagi saya dalam kasus seperti itu adalah menggunakan boot manager rEFInd ( http://www.rodsbooks.com/refind/ ).

  1. Unduh rEFInd iso yang dapat di-boot dari http://sourceforge.net/projects/refind/files/0.11.4/refind-cd-0.11.4.zip/download dan hapus zipnya .

  2. Buka pengaturan mesin virtual di VirtualBox dan lampirkan file ISO CD reEnd.

  3. Pastikan opsi "Aktifkan EFI (khusus OS)" di pengaturan mesin virtual di tab "Sistem" diaktifkan.

  4. Boot mesin virtual dan Anda akan melihat menu boot resEnd:

menu reFInd

  1. Pasang drive USB Anda di VirtualBox.

  2. Tekan backspace untuk menyegarkan menu atau tunggu beberapa detik dan drive akan muncul di menu.

  3. Pilih drive USB Anda dan tekan enter dan drive USB Anda harus mulai booting.

Leszek Szary
sumber