Doing a bunch of BIOS updates for a Dell PowerEdge 2650 today (it kicks the SCSI controller off-line under certain common conditions) I was pleased to see that Dell had some Linux software for doing this with the machine running as to minimmize downtime. Well that’s the idea.
<p>The Server Update Utility is a lovely Java GUI that collects system information and tells you everything that you need to install and gives you an ‘Update’ button. Right-on! Except it doesn’t work. Java exception, tells you to go check the logs for more information - the logs say, “Update failed". Thanks.</p>
<p>So, dropping to shell you can run the actual updaters by hand and some of them work, some time out, and some kick the disk controller offline during the install. When that happens, you’ll get “An Update Package is Already Running” when you reboot. A Google search of Dell’s website offers no explaination. Fortunately <code>strace -f -F</code> reveals a check for /var/lock/.spsetup (why do they need to hide that?) and removing that file will allow the updates to be applied.</p>
<p>Slightly more annoying is the handling of dependencies. You can try to install all the latest firmwares, but if, for instance, you’re installing system BIOS and a RAID controller firmware, the RAID controller firmware will require a certain version of BIOS to be installed before the RAID firmware will flash. Even if you’ve just flashed the system BIOS it won’t recognize that and you need to do yet another reboot (more downtime). Since none of the code runs until reboot time, if the current version in flash matches, installation should proceed (let’s fix that guys).</p>
<p>Verdict: looks good on paper, doesn’t work so well in reality. But this is Dell, so that’s what we were expecting (I downloaded all forms of updaters expecting some to fail). At least I didn’t have to make a boot floppy.