Quick Hack: Make a MSDOS Bootable USB drive… with Virtualbox?

by 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

:, ,

Comments are closed.