Tonight while building a new workstation, I needed to update the BIOS on the motherboard, a Tyan Tomcat K8E. Tyan, however, offers only floppy-based BIOS flashing software to do the job. Worse, the software requires me to boot into DOS first, using a DOS boot floppy that is neither provided nor lying around the office (I’m a Linux guy).
One more thing: it turns out that my new floppy drive is junk.
Thus we arrive at tonight’s problem: If you do not have a floppy drive, how can you flash a motherboard’s BIOS when its manufacturer provides only a DOS-floppy-based BIOS flasher?
Fortunately, the problem can be solved. In case you ever need the solution, here it is.
First, download a bootable floppy image from the FreeDOS Project. The one you want is the 2.88-MB ODIN image because it has about 1.5 MB of free space, enough to hold the contents of the BIOS flasher’s floppy.
Second, mount the floppy image so that you can edit it:
mkdir /tmp/image mount -o loop /path/to/odin2880.img /tmp/image
Third, copy the BIOS flasher and associated files into the mounted floppy image. I just unziped Tyan’s archive directly into the image:
unzip /tmp/tyan_2865_301.zip -d /tmp/image
Fourth, unmount the image.
umount -d /tmp/image
Fifth, create a bootable CD-ROM from the floppy image.
cd /tmp mkdir boot_cd mv /path/to/odin2880.img boot_cd mkisofs -o odin-cdrom.img -b odin2880.img -c boot.catalog boot_cd cdrecord -v -eject odin-cdrom.img
Finally, reboot your PC using the CD-ROM and flash away! (Note: If FreeDOS asks, you don’t want to use extended memory or anything like that because BIOS flashers don’t like it. You want old 8086-style unprotected memory.)
Update 2011-03-03. For a somewhat more up-to-date recipe that also lets you boot your BIOS updater across the network see: How to update your server’s BIOS across the network.Update 2011-02-12. It looks like the link I gave to the ODIN image is now dead. Instead, try the BALDER image.