on 12-16-2014 06:41 PM - edited on 07-09-2021 09:03 AM by Greg Wilkinson
****UPDATE July 2021
The HUU images launched with our C-Series M6 Rack Servers are now compatible with the following USB creator toolsets:
Tool name |
Tool link |
Supported on Windows |
Supported on Linux |
Supported on Mac |
UEFI mode |
UEFI secure mode |
Legacy |
Rufus |
Yes |
No |
No |
Yes |
Yes |
Yes |
|
Balena Etcher |
Yes |
Yes |
Yes |
Yes |
Yes |
No |
*Keep in mind that is for M6 only and SW release 4.2(1) or later.
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.
Requirements:
- 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 create_util_usb_v2.sh <UCSB Device> <file.iso>
OR
sh create_util_usb_v2.sh /dev/sdb ucs-c240-huu-2.0.3.16.iso
------------------------------------------------------------------------------------
Expected Output: (Note: This is expected output form the tool)
# ./create_util_usb_v2.sh /dev/sdb ucs-c240-huu-2.0.3d-1.iso
syslinux-nonlinux-4.04-3.el6.noarch
syslinux-4.04-3.el6.x86_64
/dev/loop0
ucs-c240-huu-2.0.3d-1.iso
/dev/loop0
## 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
/dev/loop0
`/tmp/HUU/C240M3-2.0.3d.zip' -> `/tmp/usb2.4196/./C240M3-2.0.3d.zip'
`/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/boot.cat' -> `/tmp/usb2.4196/./isolinux/boot.cat'
`/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
#
Same
[root@nd_ibmlen3_stl CiscoFirm]# sudo ./create_util_usb_huu_v2.sh /dev/sdb usc-220-huu-1.5.4-3.iso
syslinux-4.05-13.el7.x86_64
/dev/loop0
usc-220-huu-1.5.4-3.iso
/dev/loop0
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
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.
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.
@Peter,
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.
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.
Trying to accomplish this also on an Ubuntu box. Would you be kind to share what you changed in the script?
Hello you can find my modified script that works for me here:
[Bash] #syntax : sh create_util_usb.sh <device> <scu iso> <huu iso> <driver.iso> #ex - Pastebin.com
Works for me on Ubuntu 16.04.3 LTS.
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:
https://wiki.centos.org/Download Specifically: http://mirror.centos.org/altarch/7/isos/i386/CentOS-7-i386-DVD-1708.iso
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 vmware-install.pl>./vmware-install.pl
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.
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.
The preferred method in CentOS/RHEL 7 is to use good 'ol dd as explained here:
https://wiki.centos.org/HowTos/InstallFromUSBkey
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
Regards,
Shadid
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:
Cheers!
Jeff
I got this to work with a few hacks on Ubuntu server:
*** create_util_usb_huu_v3.sh-ubuntu Sun Apr 5 14:05:07 2020 --- create_util_usb_huu_v3.sh 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 **** PART1_SIZE=8192 PART1_DEV=$USB_DEV"1" USB_DIR=/tmp/usb2.$$ ! MBR=/usr/lib/syslinux/mbr/mbr.bin SYSLINUX_FILE=syslinux.cfg MENU_FILE=menu.txt --- 84,90 ---- PART1_SIZE=8192 PART1_DEV=$USB_DEV"1" USB_DIR=/tmp/usb2.$$ ! MBR=/usr/share/syslinux/mbr.bin SYSLINUX_FILE=syslinux.cfg MENU_FILE=menu.txt
Find answers to your questions by entering keywords or phrases in the Search bar above. New here? Use these resources to familiarize yourself with the community: