## DESCRIPTION ##
Since most BIOS updates only come in the format of a EXE/DOS boot disk, here's a way to use FreeDOS and GRUB to get your BIOS updated. For this example, I will be using my Dell XPS M1730 Laptop. All of the following was done using Ubuntu Karmic.
## REQUIREMENTS ##
I got my updated BIOS from here:
http://support.dell.com/support/downloads/
FreeDOS fdboot.img file from here:
http://www.ibiblio.org/pub/micro/pc-stuff/freedos/files/distributions/1.0/
## PROCEDURE ##
Extract the BIOS EXE file using unrar, wine, or (for my Dell BIOS) I needed to make an image out of. So I had to go install biosdisk:
http://linux.dell.com/biosdisk/
I downloaded the latest biosdisk-git-DATE.tar.gz file, and untarred it. Then, changed into the directory and typed:
sudo ./install.sh
I was then able to make a img file out of the bios by running:
sudo biosdisk mkimage MXG71A10.EXE
It came back with the following message:
Creating BIOS floppy image at /tmp/MXG71A10.img
I had to get the BIOS Update out of that image file, so I loopback mounted it and copied over the file:
sudo mkdir /mnt/floppy
sudo mount -t vfat -o loop /tmp/MXG71A10.img /mnt/floppy
sudo cp /mnt/floppy/mxg71a10.exe ./
sudo umount /mnt/floppy
Now it was time to update my FreeDOS image:
sudo mount -t vfat -o loop fdboot.img /mnt/floppy
sudo cp mxg71a10.exe /mnt/floppy/
sudo umount /mnt/floopy
sudo cp fdboot.img /boot/
Now edit /etc/grub.d/40_custom
sudo vi /etc/grub.d/40_custom
Type the following lines at the end of the file:
menuentry "FreeDOS" {
linux16 /boot/memdisk
initrd16 /boot/fdboot.img
}Now tell grub to not timeout, and un-hide the selection (otherwise you won't be able to select FreeDOS)
sudo vi /etc/default/grub
Comment out the line:
#GRUB_HIDDEN_TIMEOUT_QUIET=true
...and make the TIMEOUT -1
GRUB_TIMEOUT="-1"
....you'll probably want to undo these two updates after everything is completed.
Now run update-grub:
sudo update-grub
You are (finally) ready to reboot. When you reboot, you'll have to select the FreeDOS grub option, and FreeDOS should fire up. MAKE SURE YOU PICK SAFE MODE:

From there, you should be at an A:\ prompt. So, just launch the bios update:
mxg71a10.exe
From there, you pretty much just hit to tell it to Flash your BIOS. Reboot when done, and tada!!!
## CONCLUSION ##
I have done this procedure on my Dell XPS M1730 Laptop, as well as my manually built up Gigabyte motherboard, gaming PC. The only real difference is finding a way to get the DOS-based BIOS update out of the proprietary file, and onto the FreeDOS image. Once that method is found, you should be smooth sailing.