So, you’ve got to do a BIOS upgrade on a modern computer and it only comes in DOS

The premise is believable enough. There are still quite a few vendors out there that still distribute BIOS updates as a floppy image. Heck, they even make it ‘easy’ for you.. The program comes in a self-contained executable that has the image inside it. All you have to do is run the thing and put in the floppy disk.. and…
Oh.. wait a second..
Where’s that floppy disk?
Hmmm.
Ok, so we’ll use the CDROM image and…
ARGH.. this machine is a server bought in large quantities.. It doesn’t have a CDROM.
Fine Fine.. We’ll use one of these new tools that can turn a USB flash key into a bootable device. It’s a modern machine. It supports that (Finally! Something modernish!).

So, after fiddling around a few hours on different options, I figure out there’s a setting in BIOS that you have to enable to actually allow booting from the USB key.. Oh, and several of the links are stale.. and then I’m almost there, and the image boots (freeDOS!) but then has a very weird error about bad interpreter and not being able to find command.com.. Ah, back to crufty again, just when things were starting to look promising.

So, I found a floppy on a windows PC.. I ran the extractor/formatter which builds me a 1.44 floppy image. I take the floppy and put it into a linux PC and extract the image.

dd if=/dev/fd0 bs=1024b of=fd.img
voila!

Now.. inspiration.. no floppy on server.. booting my particular USB key doesn’t work, and I don’t have another to try, no CDROM.. hmm..
hey…
what about PXE?

SURE!
syslinux and memdisk were made for this! I take my fd.img, copy it to my /tftpboot/pxelinux area. Update my boot.menu to include:

label flash
kernel=memdisk
initrd=fd.img

Now, I press the magical F10 key during poweronsequence of the server, it goes to the PXE boot menu, I type in ‘flash’ at the prompt..

VOOOOOOOOOM

Eureka! My BIOS is upgraded! I can now use the new Intel Harpertown CPU at 2.66Ghz and 80W and put it through its paces. Now why didn’t I think of this 5 hours ago?