Why update server firmware at all
Updating server firmware — BIOS, the BMC (IPMI controller), the RAID controller, and drives — closes vulnerabilities, fixes false sensor readings, and adds support for newer processors and drives. Without it a server may fail to detect an NVMe drive, hang under a specific load, or report the wrong temperature.
The rule is simple: do not update firmware "just in case." Update when there is a specific problem, a security requirement, or a plan to install new hardware that the current version does not support.
BIOS: when to update and how
BIOS handles processor and memory initialization and boot. A BIOS update is usually needed for: instability with a new batch of memory, NVMe drive detection errors, or critical patches such as Spectre/Meltdown.
dmidecode -s bios-version
dmidecode -s bios-release-date
Before updating, compare the current version against the vendor's changelog and make sure the settings described in our article on BIOS/UEFI configuration will not be reset. After an update the settings are almost always reset to defaults.
BMC/IPMI: update and risks
The BMC (Baseboard Management Controller) is a separate microcomputer on the board that runs its own life and works even when the server is powered off. Its firmware is updated less often, but it is exactly where remote-access vulnerabilities are most commonly found.
ipmitool mc info
ipmitool mc guid
A BMC update does not directly require stopping the server, but during the flash you lose access to KVM-over-IP and virtual media — if the server needs physical access exactly at that moment and none is available, plan the update in advance rather than during an emergency.
Drive and RAID controller firmware
SSD and NVMe drives carry their own firmware, which affects resilience to power loss and the real write speed once the drive fills up. A hardware RAID controller has its own firmware and a separate OS driver version, and the two must match for compatibility.
| Component | How to check the version | Risk of falling behind |
|---|---|---|
| BIOS | dmidecode -s bios-version | No support for new hardware |
| BMC/IPMI | ipmitool mc info | Remote-access vulnerability |
| RAID controller | vendor utility (storcli, megacli) | Incompatibility with the OS driver |
| SSD/NVMe | smartctl -a /dev/nvme0 | Write degradation, hangs |
The easiest way to check a drive's version is the same command used in SMART diagnostics — you will see the drive's health status at the same time.
How to check versions before updating
Collect the full picture before the update, not after:
- Record the current versions of the BIOS, BMC, RAID controller, and drives in a separate file.
- Save the current BIOS configuration — after flashing you will need to re-enter it.
- Check that a data backup exists: a BMC update occasionally causes a loss of access until reboot.
- Find out whether the update supports rolling back to the previous version.
Checklist for a safe update
- Update one component at a time, not everything at once.
- Verify the firmware file's checksum before flashing it.
- Do not power off the server while a BIOS flash is in progress.
- After the update, check the OS boot process and re-verify the BIOS settings.