Once the home server was assembled, I checked its BIOS against the latest version available on Intel’s Web site. The installed version was several revisions out of date, so I decided to update it before proceeding with other setup tasks.
Intel offers ISO images you can burn to CD and run to update the BIOS of a system not yet possessing an OS installation. I had read elsewhere, though, about setting up a USB drive/thumb drive from Linux that boots to old-school DOS, with the BIOS update then run from there. Intrigued, I elected to use that approach, relying on an existing Ubuntu machine we have to do the setup work.
The Approach
To be clear, I cannot claim credit for coming up with this approach. I read about it in several places on the Web, particularly this post from blogger Daniel. Daniel, in turn, indicates that the information was “[l]ifted entirely”(!) from this post by Michael. What I lay out here is simply a variation on what Daniel and Michael present, with a little more detail for those who may be less familiar with the tools and techniques in the mix.
As is always the case with this stuff, no warranty is expressed or implied. You use the information supplied here at your own risk!
Collecting the Right Files
You’ll need three things to use this approach to update your BIOS:
- QEMU emulator. May already be installed on your PC. If not, you can probably download it with your package manager.
- DOS image. Daniel and Michael went with Balder, and it worked fine for me, too.
- BIOS update files. For the home server’s Johnstown motherboard, Intel makes the files available here > Download Type: BIOS > Result with Status: Latest > Download for Iflash BIOS Update.
Setting Up the USB Drive
The instructions that follow assume that, when you plug in your USB drive, your Linux system assigns a device name of /dev/sdc
to it (as indicated by sudo fdisk -l
) and auto-mounts it. It’s actually quite likely that a different device name gets assigned; in that case, references below to /dev/sdc
should be updated accordingly.
- Plug the USB drive into your PC. After it auto-mounts, unmount it with
umount
. - Start the
cfdisk
partition editor against the drive:
sudo cfdisk /dev/sdc
- In the
cfdisk
UI, create a primary bootable partition using FAT16 (filesystem type06
). - Start QEMU, associating the Balder image with A: and booting it while assigning C: to the USB drive (more specifically, to the partition on the drive created in the previous step):
sudo qemu -fda balder10.img
-boot a
-hda /dev/sdc - In QEMU, format the USB drive and make it bootable:
FORMAT /S C:
- Close QEMU.
- Remount the USB drive by unplugging it and plugging it back in.
You could also do this at the command line. Copy over the BIOS update files.
- Unmount the USB drive with
umount
.
With that, your USB drive should be ready! To check it out within your Linux session, boot it in QEMU:
sudo qemu -hda /dev/sdc
Doing the Update
Boot your PC from your USB drive. Follow your manufacturer’s guidance on using the BIOS update files. (If it’s an Intel update, you’ll likely run IFLASH2
with parameters found in an Intel README file.)