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
#
Works great! I used centos 7 minimal install. Had to install install two packages to get it working.
yum -y install syslinux
yum -y install dosfstools
Thanks!
I don't want to be a party pooper but what about all those out there who aren't whizzes with Linux?
A lot of people who are reporting this problem tried creating their bootable USB keys using tools in Windows or OSX and won't necessarily have the skills or the energy to try this workaround via linux?
Can't there be a workaround that works for windows and OSX users as well because this is basically useless.
Also running it with CENTOS 7 minimal using the extra tools suggested above and its saying:
## Creating partitions... Please wait (Will take a few minutes)
umount: /dev/sdb21: mountpoint not found
10+0 records in
10+0 records out
40960 bytes (41 kB) copied, 0.0077842 s, 5.3 MB/s
Zeroing of USB done.....
Welcome to fdisk (util-linux 2.23.2).
Changes will remain in memory only, until you decide to write them.
Be careful before using the write command.
Device does not contain a recognized partition table
Building a new DOS disklabel with disk identifier 0x1e92d4d4.
Command (m for help): No partition is defined yet!
Command (m for help): Partition type:
p primary (0 primary, 0 extended, 4 free)
e extended
Select (default p): Partition number (1-4, default 1): First sector (2048-15220735, default 2048): Using default value 2048
Last sector, +sectors or +size{K,M,G} (2048-15220735, default 15220735): Partition 1 of type Linux and of size 1 GiB is set
Command (m for help): The partition table has been altered!
Calling ioctl() to re-read partition table.
WARNING: Re-reading the partition table failed with error 22: Invalid argument.
The kernel still uses the old table. The new table will be used at
the next reboot or after you run partprobe(8) or kpartx(8)
Syncing disks.
Error: Partition creation failed.
Problem appears to be when you launch it it just uses /dev/loop0 and ignores /dev/sdb1. When you unmount /dev/sdb1 the directory vanishes completely and its unusable.
Hi Peter,
Apologies for the troubles you are facing here. Regarding your first query, this tool will not be supported with Windows or Mac OSX. The recommended procedure for FW upgrades is our interactive HUU or NI-HUU - more details can be found here: Cisco Standalone C-Series Host Update Utility USB Image Utility
The tool is really meant as an alternate means and not as the primary method for upgrading servers. With that said, I have not experienced the issues you are facing. Let me dig into this a bit more and see if I can recreate your issue first. Will provide an update once I have more data.
Thanks,
Greg
I have the same problem. I do not have linux , but window . How do I create a bootable USB with Windows? What tool work with window?
Hi Grace,
At this time, we do not have plans for a windows version. Is there a specific reason you need to use this tool vs the primary upgrade procedures recommended via NI-HUU / interactive HUU?
Greg
Hi Peter,
I dug into this further and it looks like you pointed to the spliced partition on the USB (sdb2) and not the root volume (sdb). What does "fdisk -l" show for the raw USB? I did test this on a CentOS7 server today and had no issues. I was able to recreate the problem you are facing by pointing to a partition on the USB rather than the actual volume.
Greg
I'm updating the firmware on roughly 90+ C240-M3s all of which are running 1.5f and aren't compatible with the usual way we roll out firmware updates. The only way we can do it is via the HUU via USB.
Its giving me:
[root@localhost Desktop]# fdisk -l
Disk /dev/sda: 21.5 GB, 21474836480 bytes, 41943040 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: 0x000b2c6e
Device Boot Start End Blocks Id System
/dev/sda1 * 2048 2099199 1048576 83 Linux
/dev/sda2 2099200 41943039 19921920 8e Linux LVM
Disk /dev/mapper/cl-root: 18.2 GB, 18249416704 bytes, 35643392 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 /dev/mapper/cl-swap: 2147 MB, 2147483648 bytes, 4194304 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 /dev/sdb: 2002 MB, 2002780160 bytes, 3911680 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: 0x37e76d18
Device Boot Start End Blocks Id System
/dev/sdb1 * 62 3909347 1954643 b W95 FAT32
Using what its given me as the destination of the USB key I did this:
[root@localhost Desktop]# sh create_util_usb_huu_v2.sh /dev/sdb1 /home/prestwick/ucs-c240-huu-3.0.1c.iso
syslinux-4.05-13.el7.x86_64
/dev/loop1
ucs-c240-huu-3.0.1c.iso
/dev/loop1
mount: /dev/loop1 is write-protected, mounting read-only
## Creating partitions... Please wait (Will take a few minutes)
umount: /dev/sdb11: mountpoint not found
10+0 records in
10+0 records out
40960 bytes (41 kB) copied, 0.000187097 s, 219 MB/s
Zeroing of USB done.....
Welcome to fdisk (util-linux 2.23.2).
Changes will remain in memory only, until you decide to write them.
Be careful before using the write command.
Device does not contain a recognized partition table
Building a new DOS disklabel with disk identifier 0xe639c650.
Command (m for help): No partition is defined yet!
Command (m for help): Partition type:
p primary (0 primary, 0 extended, 4 free)
e extended
Select (default p): Partition number (1-4, default 1): First sector (2048-3909285, default 2048): Using default value 2048
Last sector, +sectors or +size{K,M,G} (2048-3909285, default 3909285): Partition 1 of type Linux and of size 1 GiB is set
Command (m for help): The partition table has been altered!
Calling ioctl() to re-read partition table.
WARNING: Re-reading the partition table failed with error 22: Invalid argument.
The kernel still uses the old table. The new table will be used at
the next reboot or after you run partprobe(8) or kpartx(8)
Syncing disks.
Error: Partition creation failed.
[root@localhost Desktop]#
-----
I highlighted "sdb11" so it appears that it keeps adding a digit for some reason?
I then tried this:
[root@localhost Desktop]# sh create_util_usb_huu_v2.sh /dev/sdb /home/prestwick/ucs-c240-huu-3.0.1c.iso
syslinux-4.05-13.el7.x86_64
/dev/loop1
ucs-c240-huu-3.0.1c.iso
/dev/loop1
mount: /dev/loop1 is write-protected, mounting read-only
## Creating partitions... Please wait (Will take a few minutes)
10+0 records in
10+0 records out
40960 bytes (41 kB) copied, 0.00715368 s, 5.7 MB/s
Zeroing of USB done.....
Welcome to fdisk (util-linux 2.23.2).
Changes will remain in memory only, until you decide to write them.
Be careful before using the write command.
Device does not contain a recognized partition table
Building a new DOS disklabel with disk identifier 0x17979fec.
Command (m for help): No partition is defined yet!
Command (m for help): Partition type:
p primary (0 primary, 0 extended, 4 free)
e extended
Select (default p): Partition number (1-4, default 1): First sector (2048-3911679, default 2048): Using default value 2048
Last sector, +sectors or +size{K,M,G} (2048-3911679, default 3911679): Partition 1 of type Linux and of size 1 GiB is set
Command (m for help): The partition table has been altered!
Calling ioctl() to re-read partition table.
Syncing disks.
Welcome to fdisk (util-linux 2.23.2).
Changes will remain in memory only, until you decide to write them.
Be careful before using the write command.
Command (m for help): Selected partition 1
Command (m for help): 1: unknown command
Command action
a toggle a bootable flag
b edit bsd disklabel
c toggle the dos compatibility flag
d delete a partition
g create a new empty GPT partition table
G create an IRIX (SGI) partition table
l list known partition types
m print this menu
n add a new partition
o create a new empty DOS partition table
p print the partition table
q quit without saving changes
s create a new empty Sun disklabel
t change a partition's system id
u change display/entry units
v verify the partition table
w write table to disk and exit
x extra functionality (experts only)
Command (m for help): The partition table has been altered!
Calling ioctl() to re-read partition table.
Syncing disks.
####### creating partition Done ######
###### Formating the partitions ######
mkfs.fat 3.0.20 (12 Jun 2013)
##### Formating partition Done ######
##### add_syslinux #####
0+1 records in
0+1 records out
440 bytes (440 B) copied, 0.000208417 s, 2.1 MB/s
##### add_syslinux DONE ######
##### copy_files ######
/dev/loop1
mount: /home/prestwick/ucs-c240-huu-3.0.1c.iso is already mounted
Error: Mounting of SCU ISO [ /home/prestwick/ucs-c240-huu-3.0.1c.iso ] on Dir [ /tmp/SCU ] Failed
rm: cannot remove ‘/tmp/SCU/EFI/BOOT/BOOTX64.conf’: Read-only file system
rm: cannot remove ‘/tmp/SCU/EFI/BOOT/BOOTX64.efi’: Read-only file system
rm: cannot remove ‘/tmp/SCU/EFI/BOOT/grub.conf’: Read-only file system
rm: cannot remove ‘/tmp/SCU/EFI/BOOT/initrd0.img’: Read-only file system
rm: cannot remove ‘/tmp/SCU/EFI/BOOT/splash.xpm.gz’: Read-only file system
rm: cannot remove ‘/tmp/SCU/EFI/BOOT/vmlinuz0’: Read-only file system
rm: cannot remove ‘/tmp/SCU/firmware.squashfs’: Read-only file system
rm: cannot remove ‘/tmp/SCU/GETFW/getfw’: Read-only file system
rm: cannot remove ‘/tmp/SCU/GETFW/readme.txt’: Read-only file system
rm: cannot remove ‘/tmp/SCU/huu-release.xml’: Read-only file system
rm: cannot remove ‘/tmp/SCU/isolinux/boot.cat’: Read-only file system
rm: cannot remove ‘/tmp/SCU/isolinux/efiboot.img’: Read-only file system
rm: cannot remove ‘/tmp/SCU/isolinux/initrd0.img’: Read-only file system
rm: cannot remove ‘/tmp/SCU/isolinux/isolinux.bin’: Read-only file system
rm: cannot remove ‘/tmp/SCU/isolinux/isolinux.cfg’: Read-only file system
rm: cannot remove ‘/tmp/SCU/isolinux/splash.jpg’: Read-only file system
rm: cannot remove ‘/tmp/SCU/isolinux/vesamenu.c32’: Read-only file system
rm: cannot remove ‘/tmp/SCU/isolinux/vmlinuz0’: Read-only file system
rm: cannot remove ‘/tmp/SCU/LiveOS/osmin.img’: Read-only file system
rm: cannot remove ‘/tmp/SCU/LiveOS/squashfs.img’: Read-only file system
rm: cannot remove ‘/tmp/SCU/Release-Notes-SL2.txt’: Read-only file system
rm: cannot remove ‘/tmp/SCU/squashfs_img.md5’: Read-only file system
rm: cannot remove ‘/tmp/SCU/TOC_SANLUIS2.xml’: Read-only file system
rm: cannot remove ‘/tmp/SCU/tools.squashfs’: Read-only file system
rm: cannot remove ‘/tmp/SCU/VIC_FIRMWARE/cruzboot.bin’: Read-only file system
rm: cannot remove ‘/tmp/SCU/VIC_FIRMWARE/cruzfw.bin’: Read-only file system
rm: cannot remove ‘/tmp/SCU/VIC_FIRMWARE/serenoboot.bin’: Read-only file system
rm: cannot remove ‘/tmp/SCU/VIC_FIRMWARE/serenofw.bin’: Read-only file system
[root@localhost Desktop]#
Peter, this appears to be working as expected when using the root filesystem on the USB. Please let us know if you have further issues.
I'm running Centos 7 Everything and keep running into the following error.
[root@nd_ibmlen3_stl CiscoFirm]# sudo ./create_util_usb_huu_v2.sh /dev/sdb1 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
Hi, please try using the root file system on the USB, which in your case looks like it may be /dev/sdb. Please paste results if you still encounter errors.
Also, is there a reason you are using 1.5(4) FW to begin with? This is extremely old, and we have both 2.x and 3.x releases for our C220M3 platform. I would first recommend upgrading to a more recent version.
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: