To start off, I know that VirtualBox doesn't have built in USB boot support, but there are a number of workarounds. Despite my best efforts all the workarounds I've found online have failed in some fashion or another.
I'm attempting to use USB to install Windows 7 onto a VM. I think the issue might be in the way this thumb drive was prepped. It was made with RMPrepUSB and it works perfectly from a normal BIOS boot in physical machines.
If all my Windows installers on this USB were in ISO that would be no problem, but two of them required dumping the ISO contents onto the USB root since they didn't support emulation. The Win 7 AIO installer I plan to use is one of these.
Things tried:
VirtualBox raw disk emulation (The most recommended method from what I can tell). I set my USB to be viewed as a raw disk using:
VBoxManage internalcommands createrawvmdk -filename "%USERPROFILE%"\.VirtualBox\usb.vmdk -rawdisk \\.\PhysicalDrive3
Using this I can load the USB and boot into Grub, select my Windows 7 installer. The pre-installer loads fine, but during the "Starting Windows" portion my RAM usage spikes and crashes the VM. I tried a few different things, including using Host I/O caching, but always the same RAM spike and VM crash.
Next I tried:
Plop boot. I was optimistic but after trying it I realized loading a 4GB image and doing install at 1.0 speed would have taken hours if not days. Just the in installer setup would have taken hours (Still looking for something similar that could provide 2.0 support).
Then I tried:
Making an ISO of the entire thumb drive following instructions here:
http://www.rmprepusb.com/tutorials/makegrub4dosiso
I tried using both available tools mkisofs.exe & OSCDIMG.exe with the same results. The ISO image is created and trying to boot will load grub, but grub can't find menu.lst. I tried adjusting caps on menu.lst but it didn't seem to matter.
Right now I'm thinking something like Plop boot with USB 2.0 support would be ideal, but I haven't had any luck finding one. Honestly though, getting any of above methods to work would be fine by me, but I'm out of ideas. I'm hoping someone will notice something silly I overlooked. Any help at all would be great, even if they're extreme or inconvenience solutions.