Boot VirtualBox machine from a USB flash drive

- Image via Wikipedia
While preparing my new workstation I stumbled upon a problem on how to boot VirtualBox machine from a USB fash drive. Pretty soon I discovered that VirtualBox has no support for booting from USB devices. Something with their BIOS not supporting it and that implementing this wouldn’t bring a lot to the whole package1.
Read on if you want to know more.
I am using Ubuntu 9.0.4 and I installed VirtualBox from Ubuntu repositories. Accessing physical devices in Linux is restricted to root user only, so you’ll have to run your VirtualBox as root2, which is rather inconvenient, however this is the only way I got things to work.
The trick is to tell VirtualBox that your USB drive is just an ordinary IDE drive.
sudo -s |
virtualbox & |
mkdir /root/.VirtualBox/HardDisks |
VBoxManage internalcommands createrawvmdk \ |
-filename /root/.VirtualBox/HardDisks/usbdisk.vmdk \ |
-rawdisk /dev/sdi -register |
First you switch to root shell and then run VirtualBox in the background. If you did this before and you have virtual machines already running as root then you can probably skip creating HardDisks directory. With VBoxManage you create vmdk file that is connected to /dev/sdi device and register it with internal registry of hard disks.
Two important things to note: First, path to image file must be absolute starting with / and second, raw disk device must be your actual device. It might not be called /dev/sdi, but something completely different. Plug in your USB drive and then run dmesg in console. Output will be similar to this:
... snip snip ... |
[181685.693389] usb-storage: device found at 5 |
[181685.693392] usb-storage: waiting for device to settle before scanning |
[181690.692200] usb-storage: device scan complete |
[181690.692918] scsi 12:0:0:0: Direct-Access 0.00 PQ: 0 ANSI: 2 |
[181690.694539] sd 12:0:0:0: [sdi] 7897088 512-byte hardware sectors: (4.04 GB/3.76 GiB) |
[181690.695037] sd 12:0:0:0: [sdi] Write Protect is off |
[181690.695040] sd 12:0:0:0: [sdi] Mode Sense: 00 00 00 00 |
[181690.695043] sd 12:0:0:0: [sdi] Assuming drive cache: write through |
[181690.702414] sd 12:0:0:0: [sdi] 7897088 512-byte hardware sectors: (4.04 GB/3.76 GiB) |
[181690.702910] sd 12:0:0:0: [sdi] Write Protect is off |
[181690.702913] sd 12:0:0:0: [sdi] Mode Sense: 00 00 00 00 |
[181690.702916] sd 12:0:0:0: [sdi] Assuming drive cache: write through |
[181690.702922] sdi: sdi1 |
[181690.830974] sd 12:0:0:0: [sdi] Attached SCSI removable disk |
This is your newly plugged USB drive. If you are not sure about it, you can open file manager and mount your drive then check the output of mount command to see which device was just mounted.
After VBoxManage has completed check if the file was created.
ls -l /root/.VirtualBox/HardDisks |
total 4 |
-rw------- 1 root root 624 2009-09-08 12:50 usbdisk.vmdk |
If all seems to be in order and you got output similar to this, then you can go create a virtual machine using your USB drive. When you get to the disk image creation you’ll be able to select usbdisk.vmdk.
Before you start the virtual machine make sure you add one more disk if you plan to install something from your USB drive. This way you can also add other physical storage devices to Virtual Box.

![Reblog this post [with Zemanta]](http://img.zemanta.com/reblog_e.png?x-id=b353eed9-095a-4d3e-9083-3da4f208cbf0)

[...] (you can also try VirtualBox) [...]
Thanks for this ,
it worked great for me in virtual box unbuntu 10.4 .
Nice to hear that this solution still works. :)
Tested on Linux Mint 9 still work’s great!
Thank you for shearing :)
Good to know. :)
Hi, thanks…
work for me on Debian and VirtualBox 3.2.6
found next things…
do not need to run VirtualBox as root, need only create usbdisk.vmdk file as root and chmod it…