That’s the single question I never really thought to ask myself over the course of the past five years. This post is a bit of a first for me as I typically write technical content, but recent events practically demand I open up a little with my readers and talk about things that are typically uncomfortable for devout engineers to talk about. Namely, our health, and how we need to start taking it seriously as a community. I’d like to start with some positivity before we dive head first into the less glamorous implications of working in an ops / systems engineering role. Then we’ll circle back to this question.
Yesterday evening I posted a detailed tutorial that explains how to flash/update the IPMI firmware on the X9DRW-iF server from Supermicro. Today I’m going to explain how to flash the BIOS on the same hardware. If you’re not familiar with what a BIOS firmware flash is, there’s no shame in not knowing, here is a good explanation. I’ve found the documentation out on the web to be scattered at best, and a little bit confusing. This is why I thought I’d put together a start-to-finish guide here, where we’ll create our own custom bootable ISO, and use it to update to a specific BIOS firmware for the X9DRW-iF.
I recently tasked myself with bringing IPMI up to date on a Supermicro X9DRW-iF server. This can be quite dangerous, as a bad IPMI flash can break IPMI in a way that requires you end up having to mail your hardware (RMA) to Supermicro to get it re-flashed. As such, I’m not hugely fond of doing these sorts of things through the IPMI web interface, as it depends on all network connections between your computer and the server working properly. What’s more, the web interface doesn’t give you much in the way of feedback during the firmware upgrade process. Today, we’ll be stepping through what I have found to be the most stable way of flashing the IPMI firmware on an X9DRW-iF. We’ll be doing so from an OS that is installed on the hardware itself — in our case from CentOS 6.6 64-bit (Note: this would work just fine in RHEL, and would very likely work on a Debian-based OS like Ubuntu Server as well).