Motherboard Flash Boot CD from Linux Mini HOWTO

This is a short summary of how to create a boot disk to flash a BIOS on a PC, from Linux (or another Unix) when one has no floppy drive and no access to a DOS/Windows machine. All this information is available elsewhere separately, but I did not find it in one page when I looked for it.

Warning: you can kill (as in, no BIOS so no boot) your motherboard if you get BIOS flashing wrong.

Introduction

Most (all?) motherboard vendors provide DOS-based BIOS flashing utilities, typically a small .exe file, and a BIOS binary file to be flashed using this utility. Besides instructions usually expect a DOS/Windows machine to create a boot disk and a floppy drive to boot DOS and flash. Floppies are getting rare, and Windows also hopefully :-), hence the problem to solve: create a Boot CD for flashing from Linux.

The target machine needs an IDE CD-ROM drive, from which the old BIOS must be able to boot.

Another machine (or the same one) needs a CD burner, with mkisofs, cdrecord or equivalent CD writing software.

The process consists of creating a bootable CD that includes the flash files.

The floppy image

CD booting consists of marking a file on a regular ISO CD, so that the BIOS will look at this file as a floppy; load and execute it.

So we need a file that contains the image of a FAT-formatted floppy with DOS' boot files. Fortunately, various copies of DOS boot disks are available online, from bootdisk.com for instance. What you get from these places is usually an .exe file which is really a DOS or Win32 self extracting .zip file, which unzip can unpack. unzip should produce one disk image file which must be 1440k for a 3.5 floppy.

Copies of DOS boot disks are likely to be illegal, although I doubt Microsoft cares, the legal solutions include using OpenDOS or FreeDOS. OpenDOS is DR-DOS, which the company who ended up owning it released as freeware, before doing something else (sold it again?) so there does not seem to be an official download site anymore. FreeDOS is an open source clone of MS-DOS.

Adding the flash files to the floppy image

The motherboard vendor will provide a flashing program for DOS (an .exe file) and the flash's content as a binary file, to be used with the flashing program. We need to add this to the floppy image so that they are reachable once we have booted in DOS.

The floppy image contains a FAT filesystem, so we just need to mount it using the loopback option, and copy the flash files, then unmount. This usually requires being root. If the boot disk provided is full, you can delete some useless files, for example qbasic.exe and qbasic.hlp. Typical commands are displayed below, upper case bold NAMES are to be customised with the real names of the actual files. You may have to be careful about using actual upper case names on the DOS side.

The floppy image is now ready.

Note that this step may not be necessary if the boot image contains a working CD driver, it could be that the CD will be readable from DOS, so it may be enough to make an untouched image bootable and add the flash files to the regular ISO filesystem.

Creating the bootable CD

To create a bootable CD, we just need to create an ISO filesystem that contains the image, and tell mkisofs where it is within the CD hierarchy and to create it, using the -b option. The CD also needs a catalog file that mkisofs's -c option will create inside the filesystem. (-r deals with permissions.)

Once this is done, just burn the ISO filesystem to CD as usual.

Ready to flash

Put the burned CD in the machine to reflash, reboot, at the A: prompt you can use the flash program, e.g.


Feedback | Last modified 2004-05-06