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 freedos.org and fdos.org 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
0506.zip
file downloaded from the ASUS web
site:
[root@probe ~]#
mkdir /tmp/bios
[root@probe ~]#
(cd /tmp/bios; unzip ~/Desktop/0506.zip)
Archive: /root/Desktop/0506csm.zip 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 fdos.org
site
(which appears closely related to the
freedos.org
site). The
fdos.org
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.