Friday, January 21, 2011

HP and the USB key utility

Whenever I have to work on BIOS-level items on HP and Dell servers, it's not a good day.  Or, should I say, days.  Today (and yesterday) were no exceptions.

HP, Dell, et al could post singular updates to system BIOSes, etc. as small (less than 10MB in size) bootable ISO images.  After all, the firmware I want to update is less than a megabyte in size.  But, no.  Instead, I have to download a full blown firmware update DVD image, which weighs in at a whopping 988MB in size, compressed.  Then, according to HP's instructions, I have to use their HP USB Key Creator utility to extract the contents of the ISO image to a USB key.  At *that* point I can inject my updated firmware for my non-working storage controller.

Everyone has access to their server rooms, right?  I mean, most server rooms are little 170 sq. ft. shut-ins with punch codes on the doors in the backs of offices.  Except for mine.  My server room, I've never seen.  It's in Nevada and I'm in Indianapolis.  Kinda hard to insert a USB key into a server that's thousands of miles away.  Not to mention that bandwdith-intensive operations from my Las Vegas facility are *expensive*.


So, without a USB key (or a server monkey to insert said key) in Nevada, one must improvise.  Here's how.

- Pick an HP server that works and has iLO and log into it, preferably using Remote Desktop Protocol
- In Windows 2008, run the fsutil utility: fsutil file createnew hp-fwupdate-usb-1_25g.img 1310720000
- Run fsutil sparse setflag fp-fwupdate-usb-1_25g.img (I'm not sure this step is necessary but it's working for now so roll with it)
- Log into the iLO web interface from *within* your RDP session
- Start the virtual media applet (you will need Java installed to do this)
- Attach your newly created sparse file as a USB drive
- Note which drive letter iLO assigned to your "USB drive"
- Download and run the two files, above, and install and run the USB Key Creator utility
- Select "create a bootable usb from CD/DVD"
- Pick your ISO image as a source, and specify your mounted "USB drive" as the target

Allegedly, you can create disk images using the iLO virtual media utility but I don't trust iLO.  At all.  EVERY version has a horrendously embarrassing bug of one form or another.  It's worth noting that iLO's USB emulator is s-l-o-w.  Honestly, I think that transferring the file over the network is faster.  You will want to forget about the task at hand for a few hours.  I am working on just patching the damned ISO image with the geteltorito.exe executable, found here.  Well, using the geteltorito executable and Infrarecorder.  Just search for "geteltorito."

I'm not sure why HP (and Dell) consider their websites "customer service" centers.  If admins like me have to do all this work to build patch tools for THEIR products, perhaps we should be paid, by HP (or by Dell), for our time?

Finally, note the IMdisk disk image driver.  This piece of software is very handy when it comes to working directly in disk image files.  And also pay attention to the /dev/null and /dev/zero drivers on this same site.  /dev/zero is handy for zeroing out large blocks of data, while /dev/null is known as the "bit bucket."  All bits sent to this device are discarded.  Most of the software on this page is solid sysadmin material.

4 comments:

GAL said...

FARK! I feel your pain. This is a such a load of bollocks.

I have restricted access to my USB drive at work so cannot create a USB boot disk. Unfortuantely I currently cannot find access to a windows server with an iLO or freeware software that allows me to edit the original ISO so I can add additional scexe patches.

I've spend hours on this trying to mount an img or iso for editing. All I want to do is add 2x bloody patches. I'm not even sure they are going to work but the box needs to be ticked.

sigh I better look for a CD-Rom and try the geteltorito route.

thank god we are moving away from HP. they're just getting worse and worse.

Anonymous said...

HP does post individual firmware/driver updates individually or as a "tested bundle" Most are exe files. If you can get to windows you can run run the exe to extract and install the update. Firmware would take effect at the next reboot. Search under software/drivers for the your particular model.

Greg Swallow said...

I don't think I had an OS installed at that point. If I recall I was battling a SuSE Linux install on that particular system, so running EXE files was out of the question.

I will agree, though, that performing BIOS updates directly in Windows is very nice. So is configuring your BIOS and iLO settings within Linux using hponcfg (do I have that right?), even if it is a slight security risk allowing bare-metal access via the operating system.

(Oh, and we assume that hponcfg actually works, which is generally the case, but not always.)

Anonymous said...

The USB key creator from HP is a joke (never can get it work with an iso). So you have to dl the 1Gb zip, extract burn the ISO and then use the HP USB key utility to create a bootable usb key from the burnt ISO !.

Your method only works if the firmware you are updating doesn't include a fix for ILOv3 itself. Eg 1.26 which is supposed to fix ILO lockups and access-issues in 1.20 and 1.25.