Making Bootable Cisco ISO Images
Using open source tools lets us create a bootable ISO when Cisco won't give us one.
The Cisco Unified Communications Manager ISO on the Cisco Downloads Portal is not bootable; to get a bootable ISO you have to reach out to TAC. Here’s how to make it, and other Cisco ISOs bootable by yourself.
This has been tested on version 15SU4 of Communications Manager (CallManager), IM & Presence, and Unity Connect. It should work for other Linux-based Cisco ISOs.
This is not suitable for production! Use at your own risk. I am using this in my home lab where the stakes are low.
Create some tempoary directories to mount the ISO:
mkdir -p /tmp/cucm/iso_mount /tmp/cucm/iso_extractMount the ISO:
sudo mount -o loop,ro <ISO> /tmp/cucm/iso_mount- Copy the contents over so we can modify them:
1
rsync -a /tmp/cucm/iso_mount/ /tmp/cucm/iso_extract/ && cd /tmp/cucm/iso_extract
- (Optional) Modify the hardware scripts to allow running on KVM (only on 15SU4 and later):
1
sed -i '/<server_models>/a \ VAL, *, *, *, *, *, *, *, *, *' *product.conf
Explanation: This adds a valid hardware entry that matches any configuraton at the top of the list bypassing all other checks.
- Recreate the ISO making it bootable:
1
genisoimage -r -J -joliet-long -V "CDROM" -b isolinux/isolinux.bin -c isolinux/boot.cat -no-emul-boot -boot-load-size 4 -boot-info-table -output ~/OUTPUT.iso /tmp/cucm/iso_extract/
Explanation:
-r -J -joliet-longadd Joliet and Rock Ridge extensions which use Unicode and allow for long file names.
-V "CDROM"sets the volume to “CDROM” as the installer looks for the files in/dev/disk/by-label/CDROM:/
Seeman genisoimage - Recalculate the md5 checksum:
1
implantisomd5 --force ~/OUTPUT.iso - Unmount and remove extracted files:
sudo umount /tmp/cucm/iso_mount ; rm -rf /tmp/cucm/iso_extract/
Now you have an ISO that can be booted and installed on any platform.