****UPDATE DECEMBER 2017
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
#
Bump to this thread because this is one of the more disappointing things I've seen in tech.
We need to upgrade some servers (actually, Cisco WLCs - 8540s) due to a bug that causes them to lose access to the SD card... ok.
So after finally gaining access to CIMC, I can't use the network because a) Adobe Flash has been deprecated and disabled, and b) Java won't recognise the certificates anymore of the vKVM applet - even when I change the date.
Windows? macOS? Sure. Linux? Now I have to download an ancient version of CentOS and try rebuilding the USB stick.
What causes this to fail using other methods? Why does a Rufus copy not work?
Adobe Flash deprecation is a documented issue that Cisco has noted in the release notes as well as in a Field Notice that was sent out proactively to customers who are signed up for notifications.
Release notes:
Field Notice:
https://www.cisco.com/c/en/us/support/docs/field-notices/720/fn72014.html
It is unfortunate that you are impacted by the end of life of Adobe Flash and we understand that many customers with legacy systems will be adversely impacted.
Is the API an option for FW upgrades?
I agree that we all knew that Flash would be depreciated, however I think we can also agree that Cisco should not hide behind some obscure work arounds. Speaking of "It was known that Flash will be depreciated", it was also known by Cisco since at least v2.0 that there is a problem with creating USB sticks and it's still present in v3.0. We have multiple c220/240 M3 servers which are still in extended support until end of '21. Especially in a time where big companies get hacked, we shouldn't have to jump through hoops for a simple upgrade or configuration change to address security issues.
I'm using Rufus to create a bootable USB stick and receive the error from CSCup62091 when booting the server with it.
CIMC is on 3.0(4o) and we're trying to upgrade all servers to 4r.
I found a work around using CentOS with a special script to create the USB drive, but that is not really an option for us.
I am not aware of a windows way to do it. Earlier in this thread I posted my modifications to the provided script that allowed it to work on Ubuntu. I have done that a couple times, and it worked correctly. I can't recall if the M4 HUU works directly with Rufus, but I am pretty sure that M5 HUU does. I remote mount HUU most of the time, so it isn't a problem I deal with frequently. I have had issues with KVM mounting HUU failing because of running out of memory. If that occurs, NFS mounting HUU from the CIMC has worked.
Hi
i hope you are doing well
can you help me, because i tried to run the script and i got stucked in this part:
i cleaned the usb drive and run the script and this is the last part of the script and when reached it
it got stucked, can you help me? i tried differents .ISO files like 3 and 4 version for de UCS CIMC ISO and i got the same result, could be the USB? because i use it for differents installation and works well
sed: can't read /tmp/usb2.3493/EFI/BOOT/grub.cfg: No such file or directory
Disk /dev/sdb: 15.7 GB, 15664676864 bytes, 30595072 sectors
wipefs --all /dev/sdb
/dev/sdb: 2 bytes were erased at offset 0x000001fe (dos): 55 aa
/dev/sdb: calling ioclt to re-read partition table: Success
./create_util_usb_huu_v3.sh /dev/sdb ucs-c220m4-huu-3.0.4r.iso
‘/tmp/SCU/VIC_FIRMWARE/cruzboot.bin’ -> ‘/tmp/usb2.3493/./VIC_FIRMWARE/cruzboot.bin’
‘/tmp/SCU/VIC_FIRMWARE/cruzfw.bin’ -> ‘/tmp/usb2.3493/./VIC_FIRMWARE/cruzfw.bin’
‘/tmp/SCU/VIC_FIRMWARE/serenoboot.bin’ -> ‘/tmp/usb2.3493/./VIC_FIRMWARE/serenoboot.bin’
‘/tmp/SCU/VIC_FIRMWARE/serenofw.bin’ -> ‘/tmp/usb2.3493/./VIC_FIRMWARE/serenofw.bin’
sed: can't read /tmp/usb2.3493/EFI/BOOT/grub.cfg: No such file or directory
Hi there - can you please try booting the USB?
sed: can't read /tmp/usb2.3493/EFI/BOOT/grub.cfg: No such file or directory
EFI/BOOT/grub.cfg file does not exist in M3/M4 HUU ISO versions; it was added later to support M5 HUU versions. This error can be ignored for M3/M4.
error on the scripts
firmware update done
i encountered the same issues as above
sed: can't read /tmp/usb2.3493/EFI/BOOT/grub.cfg: No such file or directory
however this was able to boot up and i managed to updated firmware and bios! thanks
for this i installed centos 7 minimal, then
sudo dhclient (it doesnt have any ip once clean installed of centos 7 on another machine)
yum install syslinux
sudo yum -y groups install "GNOME Desktop"
echo "exec gnome-session" >> ~/.xinitrc
sudo startx
and also install the startx and use the script provided
finally get it done, almost want to buy an external optical drive and burn a dvd just for this easy firmware update
RUFUS will no work, tried million times frim windows 10 pro. Ubuntu also doesnt work on this script! yes i tried it as well
only things work is centos
Thanks
Hi
thanks a lot grewilki for the advice, is odd but when the console hangs in sed, you have to wait until the files are copied i give more ram to the vm and took less time, thanks for your time, best regards
‘/tmp/SCU/VIC_FIRMWARE/serenoboot.bin’ -> ‘/tmp/usb2.2367/./VIC_FIRMWARE/serenoboot.bin’
‘/tmp/SCU/VIC_FIRMWARE/serenofw.bin’ -> ‘/tmp/usb2.2367/./VIC_FIRMWARE/serenofw.bin’
sed: can't read /tmp/usb2.2367/EFI/BOOT/grub.cfg: No such file or directory
when you reach this you are up and running
##### copy_files Done ######
Disk /dev/sdb: 15.7 GB, 15664676864 bytes, 30595072 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk label type: dos
Disk identifier: 0xee68b975
Device Boot Start End Blocks Id System
/dev/sdb1 * 2048 2099199 1048576 83 Linux