I was working on a friend's computer which needed a BIOS update. In it's infinite wisdom, the manufacturer provided update files which consume more space than can fit on a conventional 1.44MB floppy. Furthermore, the computer is a laptop without a floppy drive, like most laptops these days. How did I solve this problem? I'll skip all of the horrible, gory details of the 500 things that I tried that did not work, including the several dozen attempts at making either a USB bootable HDD or getting my 512MB USB key fob to work. The last approach I tried was to use a FreeDOS boot disk and copy it to the flash device: zcat /usr/share/dosbootdisk/floppy.gz > /dev/sdb This worked, but the "floppy" still only appeared to be 1.44MB. I tried a few things to enlarge it but eventually gave up. Riding this partial success, I took a different approach. I acquired from the FreeDOS project the smallest (about 8MB) bootable ISO, and using VirtualBox (the OSE edition) I created a virtual machine with a 200MB hard disk, and configured it to boot the ISO. After booting, I used the ISO to partition and format the virtual hard disk and perform a basic installation. Then I shut the virtual machine down. Then I used *vditool* to convert the virtual hard disk from the .vdi format to one suitable for using with dd: vditool copydd .VirtualBox/VDI//NewHardDisk1.vdi freedos_usb.img As root, I copied the freedos_usb.img file to /dev/sdb: cat freedos_usb.img > /dev/sdb; sync; sync; sync I ejected and re-inserted the USB key fob which caused it to be mounted under /media/NewDisk or some such, and I simply copied the BIOS updating files to a new bios/ subdirectory. After ejecting the device, I inserted it into the other machine and turned it on. Pressing F12 lets me choose another boot device, and the 'USB-HDD' showed up, as it had done before. This time, however, it booted perfectly and I was able to update the BIOS quite easily. The BIOS update did not resolve the issue I was having, but I learned quite a bit and will save this image somewhere, I'm sure it will come in handy again someday. In short:
- obtain FreeDOS bootable ISO (the small 8MB image is just fine)
- use VirtualBox (you could probably use other emulation software, of course) to create a machine with a virtual hard drive, anything from 5MB to a few hundred MB.
- boot the FreeDOS ISO, partition and install FreeDOS to the new virtual hard drive
- convert the virtual hard drive to a suitable format for 'dd'
- copy the image to a USB key fob, and force it to be rescanned (eject and re-insert it)
- copy the additional contents you desire to the newly mounted DOS partition
- eject and use the key fob