Ubuntu: How to boot from a USB drive in VirtualBox?



Question:

The question is simple and straight forward:

How to boot from an USB drive in VirtualBox?

EDIT:

I have attached usb to VirtualBox as shown in the screenshot.

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

But it is not possible to boot from an USB drive even when attached (reference).

So I would like to know if there is any other possiblity to boot from an USB drive?


Solution:1

VirtualBox itself does not support booting from a USB device. In order to boot from a USB device, another bootloader is required. The steps below provide one possible way to accomplish this:

  1. Download Plop Boot Manager (currently v5.0.15)
  2. Extract the file plpbt.iso from the ZIP archive and save it somewhere.
  3. Open the settings for the virtual machine and attach the ISO file:

    enter image description here

  4. Add a filter for the USB device:

    enter image description here

  5. Boot the VM and select the "USB" option in the menu:

    enter image description here

If all went well, the machine should now boot from the USB device.


Solution:2

Since VirtualBox does not boot to USB drives, you can create a .vmdk file that points to your USB drive for booting to it.

NOTE: You MUST add your user account to the vboxusers group for VirtualBox to see your USB. You MUST also add your account to the disk group as well, or you cannot add the .vmdk file to your Virtual Machine. Added instructions below in EDIT.

First, you need to have your USB you created in your system, and determine what the physical drive is. We are going to assume that your drive is mounted as /dev/sdb1. So, the physical drive would be /dev/sdb.

Next, type in the following from a terminal window to create the .vmdk file that points to the USB drive:

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

Then you should see something similar to this:

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

Then all you should have to do is to add the .vmdk file to your VirtualBox Virtual Machine and make sure that you can boot to it.

enter image description here

EDIT:

To add your user to the vboxusers group, run the following command:

sudo usermod -a -G vboxusers username  

To add your user to the disk group, run the following command:

Note: Adding your user to the disk group can be dangerous and a security risk. It is as dangerous as having sudo access to write to a raw disk.

sudo usermod -a -G disk username  

Then you MUST REBOOT your system in order for the changes to take effect.

Before reboot:

enter image description here

After reboot:

enter image description here

Hope this helps!


Solution:3

I came to this post just few days ago. I don't want to use Plop Boot Manager, because my USB stick is already bootable.

So I tried to point the USB stick to a VMDK disk (as in Terrance answer) by creating vboxmanage internalcommands createrawvmdk -filename ~/usb.vmdk -rawdisk /dev/sdb

Unfortunately, this refused to work... I chmod and chown the usb.vmdk disk, and so I was able to attach it to a VM but it simply didn't work.

Finally, I tried another solution and this one has worked flawlessly. Here it is (thanks to Gean Santos for the research):

  1. Insert USB stick and identify it (mine is /dev/sdb , running Sabayon Linux);
  2. Create a .vmdk disk by converting the raw device (i.e. the USB stick) to a VirtualBox disk

    sudo VBoxManage convertfromraw /dev/sdb ./usb.vmdk --format vmdk  
  3. Now you have a usb.vmdk disk created from your bootable USB stick. I tried also dd the USB stick to an image file and create the .vmdk disk from the image file. It works, as well as .vdi disks created the former way (or from the image file)

  4. Now, give permissions to the created disk in order VirtualBox can access the file. It just means change the file owner to an user that are in vboxusers group. If your VirtualBox install is running OK, than this owner would be, probably, you:

    sudo chown `whoami`:`whoami` ./usb.vmdk  
  5. Now, you just have to attach the usb.vmdk disk to a Virtual Machine. But it must be attached to an IDE controller. I tried SATA with no success.

A VM example with a bootable <code>usb.vmdk</code> attached to an IDE controller

At this point, you're OK.

Just boot the new VM, press F12 and choose the bootable drive.

Enjoy!


Solution:4

The easiest solution is to copy the contents of the USB key into an iso file (well, next time I'll just download the iso on the right machine, no USB key needed in the first place)

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

And then add this .iso as an optical drive in the VirtualBox settings, under Storage, Controller: IDE (or SATA, I guess).

No need to make a .vmdk file, VirtualBox supports .iso files.


Solution:5

I did not want to run Virtualbox as root. I did not want my user to be of the disk group, having full permissions to all disks.

So here is what I got to work:

Find out what sd the memory stick is. In the following instructions it's sdc.

  • Unmount memory Stick

    su  chmod 666 /dev/sdc1  chmod 666 /dev/sdc  VBoxManage internalcommands createrawvmdk -filename usb.vmdk -rawdisk /dev/sdc  chmod 777 usb.vmdk  chmod 666 /dev/sdc  
  • Attach usb.vmdk virtualbox machine

    chmod 666 /dev/sdc  
  • Start virtualbox machine
  • After done, reset sdc1 permission for security:

    chmod 660 /dev/sdc1  

In the above you can see that I had to reset the permissions for the memory stick a few times, because it would get set back to root each time.

I'm using Mandriva Linux, but it should be about the same in Ubuntu


Solution:6

I would suggest the following steps.

  1. Open Disks.
  2. Look for the USB.
  3. Click there and at the top right corner you will see a settings icon that has 3 parallel lines.
  4. Click there and choose Create Disk Image...
  5. Select the location and click Create. It will create an .img file which you can use in VirtualBox.

Note:If u also have question or solution just comment us below or mail us on toontricks1994@gmail.com
Previous
Next Post »