Quick Hack: Make a MSDOS Bootable USB drive… with Virtualbox?
by firestorm_v1 on Jun.29, 2019, under How-To's, Miscellaneous, Quick Hacks
To set the scene for this quick hack, I needed an MSDOS bootable USB drive so that I could flash firmware for a FreeNAS box I was building. Infortunately FreeDOS wasn’t working, unetbootin had failed me, and I was getting desperate. Fortunately VirtualBox to the rescue!… wait, what?
- Install Virtualbox
- Acquire a MSDOS .iso from the Internet (they’re out there.)
- Create a new VM with a 500MB hard drive.
- Attach the MSDOS iso to the VM and boot it
- Depending on which MSDOS iso you have, you will need to partition and format the C: drive. Use fdisk to partition the 500MB drive (don’t forget to set it bootable) and then use format c: /s to format the 500MB drive as bootable. Perform the MSDOS installation or copy the DOS directory from the ISO.
- Shutdown the VM
- Locate the .VDI for the VM and use VBoxManage to export it to raw: VBoxManage clonehd image.vdi image.img –format raw
- Use a tool like dd, rawwritewin, or imgburn to write the image.img file to a USB key.
- Upon successful write, remove then reinsert your USB key. Your machine will mount it as a typical USB drive (Windows/Linux/Mac all behave the same in this regard).
- Copy over the BIOS flashing utilities, RAID flashing utilities, etc. to the key drive.
- (Optional) You can also create a \efi\boot directory and place a uefi boot file in there if you need it as well.
- Eject the USB drive, then boot your target system. The USB disk will show up as drive C:.
The secret sauce is the VBoxManage command. It allows you to export a Virtualbox Disk Image (VDI) to a raw image that can be written to a USB disk. Now you have a solid MSDOS installation on a keydrive for all those damned ROM flashing utilities that will only work in DOS!
Happy hacking!
firestorm_v1