Showing results for 
Search instead for 
Did you mean: 
Field Notice 70545

Cisco Standalone C-Series Host Update Utility USB Image Utility



A new version of the script is posted below (v3). This version adds additional support for UEFI boot on UCS Rack Servers.

About the Cisco Standalone C-Series Host Update Utility USB Image Utility:

This utility is designed to assist users who want to update firmware on their standalone C-Series server from a USB drive. Specific, this utility will write the HUU ISO image to a bootable USB stick. This USB stick can be used to update firmware on a standalone C-Series server either by changing the boot order or manually selecting the USB device in the <F6> boot menu.

- HUU USB Image Utility
- Linux Server (Tested with RHEL 6.4 and CENTOS 6.4)
- The following package must be installed: syslinux-4.02-8.el6.x86_64 (or later)
- Standalone C-Series HUU Image (to be written)

Note: You may need to unmount the drive to properly execute the script. (umount <dev>)

Tool usage:

sh <UCSB Device> <file.iso>

sh /dev/sdb ucs-c240-huu-


Expected Output: (Note: This is expected output form the tool)

# ./ /dev/sdb ucs-c240-huu-2.0.3d-1.iso






## Creating partitions... Please wait (Will take a few minutes)

10+0 records in

10+0 records out

40960 bytes (41 kB) copied, 0.00440779 s, 9.3 MB/s

Zeroing of USB done.....

Device contains neither a valid DOS partition table, nor Sun, SGI or OSF disklabel

Building a new DOS disklabel with disk identifier 0x4e25a2d2.

Changes will remain in memory only, until you decide to write them.

After that, of course, the previous content won't be recoverable.

Warning: invalid flag 0x0000 of partition table 4 will be corrected by w(rite)

WARNING: DOS-compatible mode is deprecated. It's strongly recommended to

         switch off the mode (command 'c') and change display units to

         sectors (command 'u').

Command (m for help): Command action

   e   extended

   p   primary partition (1-4)

Partition number (1-4): First cylinder (1-15272, default 1): Using default value 1

Last cylinder, +cylinders or +size{K,M,G} (1-15272, default 15272):

Command (m for help): The partition table has been altered!

Calling ioctl() to re-read partition table.

Syncing disks.

WARNING: DOS-compatible mode is deprecated. It's strongly recommended to

         switch off the mode (command 'c') and change display units to

         sectors (command 'u').

Command (m for help): Partition number (1-4):

Command (m for help): The partition table has been altered!

Calling ioctl() to re-read partition table.

Syncing disks.

## Formating the partitions

mkdosfs 3.0.9 (31 Jan 2010)

0+1 records in

0+1 records out

440 bytes (440 B) copied, 0.00460309 s, 95.6 kB/s


`/tmp/HUU/' -> `/tmp/usb2.4196/./'

`/tmp/HUU/EFI' -> `/tmp/usb2.4196/./EFI'

`/tmp/HUU/EFI/BOOT' -> `/tmp/usb2.4196/./EFI/BOOT'

`/tmp/HUU/EFI/BOOT/BOOTX64.conf' -> `/tmp/usb2.4196/./EFI/BOOT/BOOTX64.conf'

`/tmp/HUU/EFI/BOOT/BOOTX64.efi' -> `/tmp/usb2.4196/./EFI/BOOT/BOOTX64.efi'

`/tmp/HUU/EFI/BOOT/grub.conf' -> `/tmp/usb2.4196/./EFI/BOOT/grub.conf'

`/tmp/HUU/EFI/BOOT/initrd0.img' -> `/tmp/usb2.4196/./EFI/BOOT/initrd0.img'

`/tmp/HUU/EFI/BOOT/isolinux.bin' -> `/tmp/usb2.4196/./EFI/BOOT/isolinux.bin'

`/tmp/HUU/EFI/BOOT/isolinux.cfg' -> `/tmp/usb2.4196/./EFI/BOOT/isolinux.cfg'

`/tmp/HUU/EFI/BOOT/splash.jpg' -> `/tmp/usb2.4196/./EFI/BOOT/splash.jpg'

`/tmp/HUU/EFI/BOOT/splash.xpm.gz' -> `/tmp/usb2.4196/./EFI/BOOT/splash.xpm.gz'

`/tmp/HUU/EFI/BOOT/vesamenu.c32' -> `/tmp/usb2.4196/./EFI/BOOT/vesamenu.c32'

`/tmp/HUU/EFI/BOOT/vmlinuz0' -> `/tmp/usb2.4196/./EFI/BOOT/vmlinuz0'

`/tmp/HUU/firmware.squashfs' -> `/tmp/usb2.4196/./firmware.squashfs'

`/tmp/HUU/isolinux' -> `/tmp/usb2.4196/./isolinux'

`/tmp/HUU/isolinux/' -> `/tmp/usb2.4196/./isolinux/'

`/tmp/HUU/isolinux/efiboot.img' -> `/tmp/usb2.4196/./isolinux/efiboot.img'

`/tmp/HUU/isolinux/initrd0.img' -> `/tmp/usb2.4196/./isolinux/initrd0.img'

`/tmp/HUU/isolinux/isolinux.bin' -> `/tmp/usb2.4196/./isolinux/isolinux.bin'

`/tmp/HUU/isolinux/isolinux.cfg' -> `/tmp/usb2.4196/./isolinux/isolinux.cfg'

`/tmp/HUU/isolinux/splash.jpg' -> `/tmp/usb2.4196/./isolinux/splash.jpg'

`/tmp/HUU/isolinux/vesamenu.c32' -> `/tmp/usb2.4196/./isolinux/vesamenu.c32'

`/tmp/HUU/isolinux/vmlinuz0' -> `/tmp/usb2.4196/./isolinux/vmlinuz0'

`/tmp/HUU/LiveOS' -> `/tmp/usb2.4196/./LiveOS'

`/tmp/HUU/LiveOS/osmin.img' -> `/tmp/usb2.4196/./LiveOS/osmin.img'

`/tmp/HUU/LiveOS/squashfs.img' -> `/tmp/usb2.4196/./LiveOS/squashfs.img'

`/tmp/HUU/Release-Notes-SL2.txt' -> `/tmp/usb2.4196/./Release-Notes-SL2.txt'

`/tmp/HUU/squashfs_img.md5' -> `/tmp/usb2.4196/./squashfs_img.md5'

`/tmp/HUU/TOC_SANLUIS2.xml' -> `/tmp/usb2.4196/./TOC_SANLUIS2.xml'

`/tmp/HUU/tools.squashfs' -> `/tmp/usb2.4196/./tools.squashfs'

`/tmp/HUU/VIC_FIRMWARE' -> `/tmp/usb2.4196/./VIC_FIRMWARE'

`/tmp/HUU/VIC_FIRMWARE/cruzboot.bin' -> `/tmp/usb2.4196/./VIC_FIRMWARE/cruzboot.bin'

`/tmp/HUU/VIC_FIRMWARE/cruzfw.bin' -> `/tmp/usb2.4196/./VIC_FIRMWARE/cruzfw.bin'

`/tmp/HUU/VIC_FIRMWARE/paloboot.bin' -> `/tmp/usb2.4196/./VIC_FIRMWARE/paloboot.bin'

`/tmp/HUU/VIC_FIRMWARE/palofw.bin' -> `/tmp/usb2.4196/./VIC_FIRMWARE/palofw.bin'

`/tmp/HUU/VIC_FIRMWARE/serenoboot.bin' -> `/tmp/usb2.4196/./VIC_FIRMWARE/serenoboot.bin'

`/tmp/HUU/VIC_FIRMWARE/serenofw.bin' -> `/tmp/usb2.4196/./VIC_FIRMWARE/serenofw.bin'

Disk /dev/sdb: 16.0 GB, 16013852672 bytes

64 heads, 32 sectors/track, 15272 cylinders

Units = cylinders of 2048 * 512 = 1048576 bytes

Sector size (logical/physical): 512 bytes / 512 bytes

I/O size (minimum/optimal): 512 bytes / 512 bytes

Disk identifier: 0x4e25a2d2

   Device Boot      Start         End      Blocks   Id  System

/dev/sdb1   *           1        1025     1049584   83  Linux


Gregg Thomas
Community Member


[root@nd_ibmlen3_stl CiscoFirm]# sudo ./ /dev/sdb usc-220-huu-1.5.4-3.iso





mount: usc-220-huu-1.5.4-3.iso: failed to setup loop device: No such file or directory

Error: Unable to mount SCU iso for validation

Gregg Thomas
Community Member

My current version is 1.4(7a), and I can't go straight to 3.X.

When I try to install 2.x via the CIMC Firmware through browser method it won't install, it starts to install but then just disappears, and the KVM is not responding properly to f6 so I can't virtually mount the iso via the cimc either.

Decide to just mount the iso via usb and ran into the 906 error others are getting.   I'm mounting 3 firmware versions to 3 separate usb sticks starting with 1.5.4-3 in case something goes wrong and I need to go back to a later version.
Cisco Employee

Hi Gregg,

I looked into this bit further, and this script does not support 1.x versions of the HUU. My recommendation would be to upgrade the IMC/BIOS manually from 1.4(x) to 1.5(x) then use initiate a 2.x upgrade. Unfortunately the 1.4 code is over 3 years old. Please let me know if you need further assistance we can take this offline.

Community Member


You can simply burn the .iso image to standard CDROM writable media--start with a blank CD and use an image burning utility. The media produced should be boot-able. After you have the CDROM burnt, use an external USB CDROM drive, or possibly the integrated CDROM drive on your server and boot from that.

...I just did this today with an external USB CDROM drive and it worked perfectly!

You may want to spend some time with Linux and learn a bit about it, it is available to all at no cost and provides an incredible set of tools.

Emmanuel Tychon
Cisco Employee

Thank you, this was extremely useful and helped me get rolling quickly after I hit the "Error Code: 906" issue.
I have made some slight changes to the script in order to make it work on Ubuntu since I did not want to install CentOS just for that. I can make this file available on request for those in the need.

Cisco Employee

Trying to accomplish this also on an Ubuntu box. Would you be kind to share what you changed in the script?

Emmanuel Tychon
Cisco Employee

Hello you can find my modified script that works for me here:

[Bash] #syntax : sh <device> <scu iso> <huu iso> <driver.iso> #ex -

Works for me on Ubuntu 16.04.3 LTS.

Cisco Employee

Using VMware Fusion on my MAC I was able to successfully run the script using CentOS 7

CentOS 7:  Downloaded CentOS 7 DVD Version Here:  Specifically:

Need to install additional packages:

yum group install "Development Tools” (Not required but needed for VMware Tools)

yum install mtools

VMware Tools Install: (not required but useful)

Fusion—> Virtual Machine Tab —> Install VMware Tools   (CD Mounts)
Browse to CD and extract VMwareTools-10.2.0-7259539.tar.gz to a folder [Downloads]
chmod +x

I am getting the following error.  Using a 16Gig USB stick.

WARNING: Not enough clusters for a 32 bit FAT!

mkdofs: Too few blocks for viable file system

Error: Formatting of the first USB partition failed.

Cisco Employee

I'm a CentOS/Linux newb but you may want to try removing all the partitions and formatting the disk.  I did this using the Disk Utility inside of the CentOS (DVD) image.

when running the script i used /dev/sdb    NOT "sdb1"

After formatting i would physically remove/reinsert the USB... I had intermittent results when leaving the USB attached after formatting.

Hope this helps.

Community Member

The preferred method in CentOS/RHEL 7 is to use good 'ol dd as explained here:

Couldn't be easier - no fancy script necessary:

# dd  if=ucs-c240-huu-3.0.4d.iso  of=/dev/sdx

Please verify your USB drive assignment before using this command! Do not specify a partition number - just leave it as sdb, sdc or whatever.


Unfortunately using dd to write the .iso results in this error:

"Error Firmware copy has failed (Error Code : 906). This is a critical error and host will reboot. Do you wish to save logs before rebooting?"

I tried the script attached to this page again and this time on CentOS 6.5 but the script fails at:

/tmp/HUU/EFI/BOOT/grub.conf' -> `/tmp/usb2.4196/./EFI/BOOT/grub.conf

I found that the file is named grub.cfg rather than .conf which is found on line 205 of the script, however due to changes in grub I am not at all certain that manually correcting this will produce the correct result.


After opening a case with Cisco they convinced me to install Flash and JAVA 6.31 on my management station so I could use the KVM console and activate Virtual Media devices to mount the iso file from my workstation to a virtual CDROM on the console. Will attempt the upgrade shortly.


It's really sad that until this day we are still stuck with the Error 906 for windows users and even cisco is not bothered to provide a little bit of customization on startup to make sure the correct drive is selected to avoid the issue. I got an old server (UCS 220 m3) that where running on bios version 1.4.


I did try to do:

- ISO to USB : end up with Error 906

- CIMC : Error failed to load image with CRC and stuck at 5% using Both direct browser and TFTP

- Modifying cfg files in USB : Failed to load with many errors


Anyway, after spend more then 2 days trying to figure out a solution, i did as what @zahorek01 suggested by burning the 2 huu iso into Cd and use an external CD Drive and it work perfectly without any issue.  So i will explain what i have done as below:


 - Upgrade from 1.4 to1.5.7f using Direct ISO to USB approach

 - Upgrade from 1.5.7f to 2.0.13q using CD Drive / One server it work using KVM Mounting

 - Upgrade from 2.0.13q to 3.0.4lusing CD Drive also


Good Luck everyone




Jeffrey Foster
Cisco Employee

Hi Shadid - 


I did not see any additional questions posted here before your message today. Glad to hear you were able to get this system upgraded, following the multi-stage upgrade as you outlined. Note that the IMC v1.4 FW was posted back in early 2013 - and there have been substantial updates and enhancements made between these earlier releases and the latest 3.0(4) images. 


An alternative mechanism we see a lot of customers using today is outlined here:





Elliot Dierksen

I got this to work with a few hacks on Ubuntu server:


***    Sun Apr  5 14:05:07 2020
---   Sun Apr  5 13:11:56 2020
*** 20,27 ****

  #check for syslinux

! #rpm -qa | grep syslinux
! apt list --installed 2>/dev/null | grep syslinux
  if [ $? -ne 0 ]; then
        echo "Error:  syslinux not installed"
        exit 1;
--- 20,26 ----

  #check for syslinux

! rpm -qa | grep syslinux
  if [ $? -ne 0 ]; then
        echo "Error:  syslinux not installed"
        exit 1;
*** 85,91 ****
! MBR=/usr/lib/syslinux/mbr/mbr.bin

--- 84,90 ----
! MBR=/usr/share/syslinux/mbr.bin

Content for Community-Ad
This widget could not be displayed.