Thursday, April 22, 2010

Make a non-bootable ISO image bootable

For whatever reason, Cisco only post "non-bootable" ISO images on CCO for download. In some urgent situations, you might need a bootable disc to recover the system (or your client/boss would shoot you in the head). Here's the procedure to make a non-bootable ISO image bootable.

Before you continue, be aware that this procedure is NOT approved by Cisco. Neither Cisco nor I will be responsible for any loss caused by this.

Any bootable disc has to follow "El Torito" specification. No exception for Cisco discs. The only difference between a bootable disc and non-bootable disc is the "boot sector". Thus the solution is very simple - extract the boot sector from a bootable disc and inject it into a non-bootable disc.

The boot sector is a very small file (usually less than 10k). And the boot sector is usually content independent (i.e. you may extract the boot sector from CUCM 7.1.3 and inject it into 7.1.5). You may save the boot sector on your USB thumb drive and keep it handy.

To extract/inject the boot sector, you need some disc image tools like UltraISO. (You may also use other ISO tools with similar features)

Step 1: Get the boot file

There are two ways to get a boot file - extract from a bootable DVD's boot sector, or extract from the DVD's file system (regardless bootable or not).

Option 1: Extract the boot sector from a bootable DVD

Put a bootable CUCM disc into the DVD drive and launch UltraISO. Go to menu "Bootable > Extract Boot File from CD/DVD..."


Save the file to your hard drive as a "boot info file" (bif). In our example, we call it "boot.bif"


If you couldn't find a bootable DVD, you may also get the file from the non-bootable DVD itself (yes, the file was there.  It's just not at the boot sector).

Option 2: Extract from DVD's file system (regardless bootable or not)

The boot file is available on any CUCM DVD, regardless bootable or not.  It is located in the "isolinux" folder.  File name is isolinux.bin.





Step 2: Inject the boot file

Open the non-bootable image in UltraISO. Go to menu "Bootable". Make sure "Generate Bootinfotable" was checked (it will NOT work without this option). Then choose "Load Boot File...".


Choose the boot file we saved before (boot.bif or isolinux.bin).


Note that the image type changed to "Bootable".

Now, you may go to "File > Save As" to save the bootable image to an ISO file. Then you may burn the ISO to a disc with your favorite disc burner software.



22 comments:

  1. This is just great!!!

    ReplyDelete
  2. Hi Michael

    Keep receiving the message: Image Checksum error..

    And the DVD does not boot

    Any ideas?
    Thanks

    ReplyDelete
  3. I'm doing with CUCM 6.1(5), I did the same with your procedure, the disk successfully boots but there's an error "Hardware Detection Fail". When I press OK, it says "Please insert an USB storage key to continue"

    Can you try with version 6.1(5)?

    Thank you,

    ReplyDelete
  4. I think somebody hijacked your post. check this link

    www.harshil.in/cisco/cisco-voice/make-a-non-bootable-iso-image-to-bootable-iso/

    ReplyDelete
  5. I'm flattered. I was told "imitation is the highest form of compliment". :)

    ReplyDelete
  6. i made a stick bootable with UltraISO, but now i want it back at its normla state. i need those 8 GB back. i dont know how to do it.

    ReplyDelete
  7. Thank you very much. It works like a champ! I installed CUPS 8.5.2 with ISO downloaded from Cisco website (which is non bootable) by injecting a boot sector taken from a CUPS 7.0.4 DVD.

    ReplyDelete
  8. Alejandro,
    How did you solve the 'Image checksum error'?

    ReplyDelete
  9. Hi:

    How did you fix the "Image Checksum error.." ?

    ReplyDelete
  10. Already solved, i wasn't checking the "Generate Bootinfotable", my bad.

    thanks...

    ReplyDelete
  11. please tell me how you fix this error?
    "Image Checksum error.."

    ReplyDelete
  12. Just read one post above you (dated Jul 3, 2011). :)

    ReplyDelete
  13. i just recieve could not find kernel image :liunx

    ReplyDelete
  14. To fix "Image Checksum error" you need to setup the option Generate Bootinfotable and rewrite the image.

    I had what error too and successfully fix it.
    Thanks everyone.

    ReplyDelete
  15. Do you know of any tools like UltraISO for Mac OS X?

    ReplyDelete
  16. Hi, My name is Leandro and i writing from Argentina. Thank You Very Much for this tuto. :)!!!

    ReplyDelete
  17. Thanks guys,
    Sadly I dont have a bootable disc to copy the file from, could anybody help?

    Thanks
    Craig.

    ReplyDelete
    Replies
    1. Hey Craig,

      Look at this: http://angryciscoguy.com/jello/category/cucm/

      This way you create your own bootfile.

      good luck,
      Joost

      Delete
  18. I wanted to say a big thanks. This has helped many a times.

    ReplyDelete
  19. Have you tried this with Mac OS X? I've found articles on how to do this (not specific to Cisco UC images), but they have not worked.

    ReplyDelete