Update system BIOS on a Linux machine with a Windows/DOS updater
Linux
I recently had to update my BIOS on my Toshiba Portege R705 laptop. Unfortunately, the updater can only be run on a Windows/DOS system. Luckily, I remembered reading this article on Linux Journal that described how one can boot into FreeDOS to update the system BIOS. I will outline what I did.
- Find a USB drive with a capacity < 2 GB.
- Using GParted, format the drive to be FAT16.
- Download fdbasecd.iso and install qemu (
sudo apt-get install qemu
). - Boot up FreeDOS with qemu:
qemu -hda /dev/sdb -cdrom /path/to/fdbasecd.iso -boot d
(assuming usb drive is/dev/sdb
). Continue booting from "cd-rom" (iso file) and install FreeDOS to "harddisk" (usb stick) with default values. - Do not reboot system after FreeDOS is done installing. Type following in DOS prompt:
fdisk /mbr 1
cd
edit fdconfig.sys
## for line that starts with "SHELLHIGH...", change to "1234?SHELLHIGH..."
## save: Alt-f
## exit to Dos, exit qemu
- Test if USB drive will boot using qemu:
qemu -hda /dev/sdb -boot c
- Copy
.exe
file into usb drive. When I tried executing it in FreeDOS, it says it can't because it is a Win32 file. I extracted the EXE file and read the README. It contained some files I can run in DOS. - Restart system and boot with USB drive. On my Toshiba laptop, I had to press
ESC
then F12 to select USB drive. - Once in DOS, run the command to update BIOS. NOTE: I take no responsibilities for your actions. Update your BIOS at your own risk. You can brick the machine if you aren't doing things correctly or use the wrong BIOS file.