make-bios-update-iso — Create a bootable ISO image for the purpose of updating BIOS.


make-bios-update-iso -d DIRECTORY | --directory DIRECTORY [ -o FILENAME | --out FILENAME ] [ --dos-url TEXT ] [ --build-dir DIRECTORY ] [ -h [true]|false | --help [true]|false ] [ -H [true]|false | --help-long [true]|false ] [ -v [true]|false | --verbose [true]|false ] [ --version [true]|false ]


Often motherboard manufacturers offer BIOS update programs which only run from a DOS prompt. The expectation is that one will be able to boot from a floppy to perform their BIOS updates. This doesn't help those of use who do not have a floppy disk to boot DOS from. Sometimes you'll get lucky and a BIOS update program will be available for Windows systems, but this won't help you out much if your system doesn't have Windows installed.


BE FOREWARNED: This script does its best to automate the process of building you a bootable CD image. It does its best to simplify the process of updating a BIOS without the use of a floppy or Windows. However it makes no guarantees as to the reliability of the DOS image used (we pull one off the Internet as needed), the way in which it builds its image file, or the results of running your BIOS update utility. One should assume that using this utility may cause permanent damage to their hardware and/or software.

For the safest results it is recommended that one:

  • Review the contents of the script.

  • Use a Live CD (like the Network Security Toolkit) to run this script and build the ISO image.

  • Unplug your hard disk cables prior to booting from the created CD (hard disk access should not be required to install BIOS updates).

That being said, the author of this script is comfortable using this script and finds it quite useful when updating the BIOS of his systems.

The goal of this script is to:

  • Download a bootable DOS image from the Internet (thanks to the and web sites). You can override this if you have your own personal DOS image file (HINT: Try a google of: dd /dev/fd0 DOS).

  • Create a clone of the downloaded image file.

  • Copy the files contained in a directory you specify to the cloned image file (there is room for up to 1.3 MB by default).

  • And finally create a bootable ISO image which you can burn to a bootable CD.

Here is a example of using make-bios-update-iso to build and burn a bootable ISO image to CDRW media. In this example, we will include the necessary files to update the BIOS on a ASUS A8N-VM CSM motherboard using the contents of the file downloaded from the ASUS web site:

[root@probe ~]# mkdir /tmp/bios
[root@probe ~]# (cd /tmp/bios; unzip ~/Desktop/
Archive:  /root/Desktop/
  inflating: 0506.ROM                
  inflating: AFUDOS.exe              
  inflating: readme.txt
[root@probe ~]# make-bios-update-iso -d /tmp/bios -o /tmp/0506.iso
INFO:   UTF-8 character encoding detected by locale settings.
        Assuming UTF-8 encoded filenames on source filesystem,
        use -input-charset to override.
Size of boot image is 2880 sectors -> Emulating a 1440 kB floppy
Total translation table size: 2048
Total rockridge attributes bytes: 0
Total directory bytes: 0
Path table size(bytes): 10
Max brk space used 0
896 extents written (1 MB)
[root@probe ~]# cdrecord blank=all -v -dao -eject /tmp/0506.iso

... lots of output from cdrecord ...

[root@probe ~]# 

At this point, we removed the newly created CD and took it over to the system requiring a BIOS update. We booted the system and ran the AFUDOS command to update our BIOS. We were then happy to find that everything worked and our motherboard had the newest BIOS installed.


  • This script makes use of the urlcache script (also available in the Network Security Toolkit).

  • You must be logged in as root in order to run this script as it requires the mounting of virtual disk images.


The following command line options are available:

-d DIRECTORY | --directory DIRECTORY

Before running the make-bios-update-iso command, you must create a directory on your hard disk and place the files you want included on the bootable DOS CD image. You have a limited amount of available space (by default only 1.3 MB). Use the -d DIR option to tell make-bios-update-iso where to find the files to be included on the final CD image.

[-o FILENAME] | [--out FILENAME]

Use this option to specify the name of the ISO output file. Omit (or specify '-') to have the output go to stdout.

[--dos-url TEXT]

Where to download a DOS boot image from. WARNING: At the time this script was written, the default image comes from the site (which appears closely related to the site). The site indicates that this image is generated on a weekly basis. If you have access to a different image file, it is highly recommended that you specify its location. Also, if the name of the image file constains the string "gz", it will be assumed that it was compressed using the gzip compression format. The default image has roughly 1.3MB of free space available. If you have a DOS image file available on your local hard drive, you can specify it in the form: file://PATH. For example --dos-url file:///tmp/mydos.img.

[--build-dir DIRECTORY]

This directory MUST not exist prior to running this script (you will want to remove it by hand if it exists). We will use it to store temporary files and remove it once we are done. If not specified, we will use $HOME/make-bios-update-iso (and clean it up when we are done).

[-h [true]|false] | [--help [true]|false]

When this option is specified, make-bios-update-iso will display a short one line description of make-bios-update-iso, followed by a short description of each of the supported command line options. After displaying this information make-bios-update-iso will terminate.

[-H [true]|false] | [--help-long [true]|false]

This option will attempt to pull up additional make-bios-update-iso documentation within a text based web browser. You can force which browser we use setting the environment variable TEXTBROWSER, otherwise, we will search for some common ones.

[-v [true]|false] | [--verbose [true]|false]

When you set this option to true, make-bios-update-iso will produce additional output. This is typically used for diagnostic purposes to help track down when things go wrong.

[--version [true]|false]

If this option is specified, the version number of the script is displayed.



This controls what text based browser is used to display help information about the script. If not set, we will search your system for available text-based browsers (Ex: elinks, lynx ...).

See Also

cdrecord(1), urlcache(1), mkfs.vfat(1), mkisofs(8), Network Security Toolkit