Last time I’ve faced a problem of updating BIOS while having only a computer with Linux and no bootable CD or pendrive (USB stick) with DOS and no access to MS DOS/MS Windows bootable pendrive/floppy/etc. The motherboard’s manufacturer (MSI) provided BIOS upgrade in form of DOS program what required to use some kind of DOS-like software.
The simplest track (no messing with FreeDOS image, no Qemu, no complicated commands) I figured out is:
- Prepare a pendrive with FAT16 primary, bootable partition (fdisk, mkfs.msdos) – most likely your USB stick is just ready.
- Install UNetbootin – on Ubuntu-like Linux just run Synaptic and search for “unetbootin” package and install it. This is GUI program for easy preparing bootable pendrives from ISO image files intended for burning on CD/DVD.
- Run UNetbootin, select distribution “FreeDOS” ver. 1.0, select USB drive with your pendrive and click OK to install this free DOS on the pendrive.
- Mount the pendrive and copy files for BIOS upgrade on the pendrive’s root directory – in my case these were 2 files: an updater .EXE file and BIOS image file.
- Restart computer and boot from the prepared pendrive – it should give you “A:” prompt. As you can check your BIOS-upgrade files are not present here. That’s really tricky!
c:and press [Enter] – it should give you “C:” prompt (WARNING: my computer had the hard drive disconnected so probably that’s why I could use “c:” – you may try another drive-letter). Now you’re in a directory containing files for your BIOS upgrade.
- Proceed with BIOS update (follow instructions from motherboard manufacturer).
Please note, that only open source software was used in this procedure.
Update from 29.08.2017
A BIOS upgrade provided recently by HP (at least for model HP Notebook – 15-ba006nm) does not work with the above procedure. What a lame! The BIOS upgrade required MS Windows to run just to prepare a bootable USB stick (EFI file). Even then I needed to manually copy files between folders to make it working. You failed so much on this, HP!