Creating Bootable Cisco ISO Images

December 26th, 2012

Thanks to this writeup for a cool method of getting Cisco full install bootable ISOs from non-bootable updates. I’ve used this many a time to get servers up in my LAB when I haven’t had access to bootable ISOs yet. Below are the boot files extracted from various bootable versions of CUCM disks. It seems that only 2-4 bytes at 0xC are different. The rest of the file is identical between versions.  While putting all of this together, the hacker in me wanted to dive into what those specific bytes refer to so I got distracted for about 4 hrs while I read the ISO 9660 and El Torito specs. (No, I didn’t get far enough to figure it out… maybe another time when the ADD kicks in again. But anyway…) Here are some the bootfiles for disks I had laying around.

**This would  not be supported by TAC. Use only in LAB environments.

UPDATE 12/28/2012:

I played around a little more with this today. The bootfile extracted by UltraISO in the steps above is actually part of syslinux (specifically isolinux). This is the standard tool used to make a Linux bootable cd/dvds. The extracted file above is simply the isolinux.bin file that is used by isolinux when creating a bootable disk (inserted at sector 17). It follows the El Torito specs (part of iso9660) that isolinux uses for a non-emulated boot of a cd/dvd.

Here’s the cool thing… every Cisco ISO has a copy of the bootfile that was used to generate the El Torito boot image for the bootable version of the disk … Simply mount the non bootable ISO, grab the isolinux/isolinux.bin file and then continue to use the steps for UltraISO to add the file to make the image bootable.

2012-12-28_18-31-20

This way you don’t even need to find a working bootable ISO to steal the bootfile from or someone to post bootfiles from different versions. I went through 4 different major CUCM iso releases and compared the extracted bootfile with the isolinux/isolinux.bin file. Minus some padding at the end of the file, isolinux.bin on the disk is identical to the extracted bootfile from a bootable version.

On a side note… I’m working on a perl script to do everything UltraISO does but in mac. I hate being dependent on windows apps.

Further Reading:

 

Tags: ,

4 Responses to “Creating Bootable Cisco ISO Images”

  1. Chris Says:

    Very informative, thanks for sharing! However, I have no luck in installing CUCM9.1 on VMWare (Fusion). Have you had any luck with installing CUCM 9 on anything other than ESXi?

    Thanks again!

  2. Angry Cisco Guy Says:

    I havent tried 9.1 on Fusion yet. Did you try using the Fusion OVF tool to import the OVA? or did you build the VM Manually?

  3. Chris Says:

    Did you ever get the perl script going?

  4. alexis Says:

    hi there,

    I am also wondering if you got anywhere with the perl script?
    else anyone know of an alternative to UltraISO for the MAC?

    Thanks
    Alexis

Leave a Reply

*