I wanted to update the BIOS on my computer but faced a problem: no floppy drive and no DOS or Windows. Most BIOS flashing programs require either a floppy or DOS/Windows or both because the flashing programs run from DOS (Uniflash is a notable exception). Fortunately, smarter people than me worked out the details. Here are the steps, which presume you have boot-capable CD-ROM.
$ mkdir $WORKDIR $ cd $WORKDIR
$ unzip boot98sc.exe Archive: boot98sc.exe warning [boot98sc.exe]: 105508 extra bytes at beginning or within zipfile (attempting to process anyway) file #1: bad zipfile offset (local header sig): 211016 (attempting to re-compensate) inflating: boot98sc.IMA
As you can see in the output, in this case, the bootable image is boot98sc.IMA.
# mount -t vfat boot98sc.IMA /mnt/temp -o loop,rw
You will need to be root to mount the image and you will also need to make sure that your mount point (/mnt/temp, in this case) exists.
$ du -b /mnt/temp 1453799 .
So, the trick is to figure out how much space you need and delete enough non-essential files from the image to make room for your BIOS image and the flashing program. In my case, the required space was approximately 570,000 bytes:
-rw-r--r-- 1 kwall users 46414 2006-01-02 23:34 awflash.exe -rw-r--r-- 1 kwall users 524288 2006-01-02 23:31 w7093ae7.405
So, I deleted the following files:
# cp awflash.exe w7093ae7.405 /mnt/temp
# umount /mnt/temp
$ cd $WORKDIR $ mkisofs -o bootcd.iso \ > -b boot.IMA \ > -c boot.cat \ > ./boot.IMA
As mentioned at the beginning of this document, I relied on the work other people did before. I've merged and synthesized elements from the pages listed below:
I suggest using a rewritable CD because, at least in my case, it took several tries to find the right boot image. You might not have this problem, but having a few rewritable CD media laying around might prove useful in the general case.
#ifndef DISCLAIMER No guarantees implied or expressed. If it breaks, you get to keep both pieces. #endif /* DISCLAIMER */