How to create a bootable USB stick to flash a BIOS

I have used the following technique to flash the BIOS on a HP N54L ProLiant MicroServer. I think it should work for other systems too that just need to run a command from MS-DOS after booting from a USB stick.

I accept no responsibility if this goes wrong. If you don't understand what these instructions do then you probably shouldn't be attempting it.

The following assumes that you have a set of files, or an archive file, that contains the new ROM and a script or executable that applies it. The BIOS might have come with an executable to create a USB from scratch; if you've got this far, you've probably tried running that already and failed. What you need to find are the ROM file and script or executable. In my case, the ROM file was called O41072911.ROM and the script was called FLASH.BAT.

Create a bootable USB stick

Firstly, you need a USB stick formatted in the most basic way possible. This will erase all data on your USB stick, so back up anything important first!

  1. Plug in your USB stick.

  2. Select the Format... option from the launcher menu:

    Format menu screenshot

  3. Select Compatible with all systems (FAT) as the type, give it a sensible name, and click Format:

    Filesystem options screenshot

Then you need to use UNetbootin to make the USB stick boot to an DOS prompt:

  1. Install UNetbootin either using the Software Centre or from the command line using sudo apt-get install unetbootin.
  2. Run UNetbootin. Select FreeDOS as the distribution and make sure the type is USB Drive and the correct drive is selected. Then click OK:

    UNetbootin options screenshot

  3. When UNetbootin has finished, click Exit.

Now you have a USB stick that will boot to DOS.

Add your BIOS files

Now you need to put your BIOS files onto the USB stick. As a general principle, you simply need to copy and paste the files onto the volume.

If they came in a self-extracting .exe file, you need to run it in order to extract the files. To do this, you'll need to:

  1. Install Wine either using the Software Centre or from the command line using sudo apt-get install wine.

  2. Find the .exe file that contains the BIOS files, right click it and run with Wine:

    Open with Wine screenshot

  3. The exact details of what happens next will depend on your BIOS file, but extract the files to a directory somewhere you can remember.

Once you have your files extracted, copy them onto the USB stick. They can go in the root directory of the volume.

Take a look at the files; there is probably a file that contains the new ROM itself, and a .bat or .exe file that is used to apply it. If there's an AUTOEXEC.BAT file, take a look at it and note what command it runs to update the ROM.

Flash

Now you're ready to flash your BIOS.

  1. Eject your USB stick from the computer you created it on.

  2. Insert it into the computer you want to flash and reboot.

  3. Boot from the USB stick. You might need to adjust your boot order in the BIOS to achieve this.

  4. You should see the blue FreeDOS boot loader appear with Default highlighted. Either wait 10 seconds or press Enter.

  5. At the FreeDOS menu, select the second option FreeDOS Safe Mode (don't load any drivers):

enter image description here

  1. You will end up at an A:/> prompt. Type C: then Enter to switch to the C drive.

  2. Type dir then Enter and you should see all your files that you copied onto the USB stick.

  3. Run the script or executable that you identified previously as the one to apply the BIOS update. In my case, I just had to type FLASH then Enter to run the FLASH.BAT file.

  4. You should see the flash script applying your BIOS update. Do not power off or interrupt this process; wait until it has finished. It should return you to the C:\> prompt.

  5. You can then remove your USB stick, and power cycle the computer.

  6. Cross you fingers and boot using your new BIOS. Or cry if you just bricked your computer.


I spent all morning struggling to find a way to flash the BIOS on my Zotac motherboard. Unetbootin creates MS-DOS images that will boot, but they cannot find the flash files (awdflash and N0422_ZA.bin in my case) on my USB thumb drive.

What finally worked was creating an Ultimate Boot CD and booting FREEDOS (not MS-DOS) from that CD. Then the USB thumb drive with my flashing files was visible, and the updating of the BIOS worked just fine.