How To Boot Cisco CUCM UCSInstall 8.6, 10, 11 and 12 on KVM/Proxmox

The key thing is that you must use a "machine" id of "pc-1.3" or it will say your hardware is not supported.

Additionally you MUST use a virtio disk or you will get a ks_pre.sh error as soon as the install starts (a look at logs will show it can't find a disk).  This is funny because even though the OS finds the disk and an fdisk -l shows it, it looks like the script looks for a /dev/vda device (virtio) and nothing else, so if you didn't use Virtio as your disk and you have a /dev/sda it won't work. Or follow the step below to change the search pattern of vd to sd

 

In Promxox you will have to edit your config file like this:

bootdisk: sata0
cores: 12
ide2: local:iso/Bootable_UCSInstall_UCOS_12.iso,media=cdrom,size=3523684K
machine: pc-1.3
memory: 8096
name: ciscouc
net0: virtio=DE:C3:A0:F8:50:11,bridge=vmbr0
numa: 0
ostype: l26
scsihw: virtio-scsi-pci
smbios1: uuid=99bf1ee3-b527-4ea2-bf68-179bee9699b1
sockets: 1
unused0: thin:vm-124-disk-1
virtio0: thin:vm-124-disk-2,size=90G

 

Raw QEMU-KVM execution:

qemu-system-x86_64 -boot dc -smp 4 -machine pc-1.3 -vnc :1 -m 8096 -drive file=cucum86.img,if=virtio -cdrom Bootable_UCSInstall_UCOS_12.iso

 

Best way to modify the ISO (works on Virtualbox and basically all KVM virtualization):
 

The following assumes you are mounting your CUCM iso into "cucmeditiso"

mount -o loop yourcucm.iso /some/path/cucmedit

 

cd cucmeditiso
cd Cisco/hssi/server_implementation
rm -rf OpenStack VMWARE
cd KVM
rm -rf HAL RHEV
cd ../../../..


vi Cisco/hssi/shared/bin/hssi_api.sh


#change
        case "$isFound" in
            "0")
            echo "$($impl HWModel): passed detection validation" >&2
            append_inDataFile_forKey_value $hssi_api_state_file "hardware_implementation_paths" $impl
            hw_model="$($impl HWModel)"
            ((validated_count++))
            ;;

#to

        echo "HSSI_API $impl returned $isFound and errors=$validation_errors " >&2
        case "$isFound" in
            "0")
            echo "$($impl HWModel): passed detection validation" >&2
            append_inDataFile_forKey_value $hssi_api_state_file "hardware_implementation_paths" $impl
            hw_model="$($impl HWModel)"
            ((validated_count++))
            ;;

            "2")
            echo "$($impl HWModel): passed detection validation" >&2
            append_inDataFile_forKey_value $hssi_api_state_file "hardware_implementation_paths" $impl
            hw_model="$($impl HWModel)"
            ((validated_count++))
            ;;



vi Cisco/base_scripts/ihardware.sh
#change
function hasHwSnmpMonitoring()
{
    local method="hasHwSnmpMonitoring"
    _forwardToSAM $method $@
}



#to
function hasHwSnmpMonitoring()
{
    return 1
}


mv Cisco/hssi/server_implementation/KVM/QEMU/shared/bin/api_implementation.sh.proposed Cisco/hssi/server_implementation/KVM/QEMU/shared/bin/api_implementation.sh
vi Cisco/hssi/server_implementation/KVM/QEMU/shared/bin/api_implementation.sh

 
#find this
    return $rc
}


#add this below the }


 function postBootHardwareSetup()
 {
     local rc=$HSSI_TRUE
    
     (super postBootHardwareSetup $*)
     local src=$?
     # Abort if there is a critical failure
     if [ $src -eq 1 ]; then
         return $src
     fi
     rm -f /etc/udev/rules.d/70-persistent-net.rules 2> /dev/null
 
     #
     # remove hwaddr field from config in case mac address changed.
     #
     sed -i 's/^HWADDR.*//' /etc/sysconfig/network-scripts/ifcfg-eth* 2> /dev/null
     sed -i 's/^NM_CON.*/NM_CONTROLLED="no"/' /etc/sysconfig/network-scripts/ifcfg-eth* 2> /dev/null
     sed -i 's/^ONBOOT.*/ONBOOT="yes"/' /etc/sysconfig/network-scripts/ifcfg-eth* 2> /dev/null
     return $rc
 }



genisoimage -o  /tmp/KVMenabled-by-realtechtalk.com.iso  -b isolinux/isolinux.bin -c isolinux/boot.cat -no-emul-boot  -boot-load-size 4 -boot-info-table -J -R -iso-level 4 .

 

 

Old Version:


 

How To Modify the ISO to enable KVM

Tested on UCS 8.6 and 12

mkdir mountcucm
mount -o loop Bootable_UCSInstall_UCOS_UNRST_8.6.2.10000-14.sgn.iso mountcucm/

#we need to copy the contents because we cannot directly edit a mounted (read-only) iso

cp -a mountcucm cucmedit

cd cucmedit

# we are enabling the KVM/QEMU by changing the api_implementation.sh.proposed to .sh

mv Cisco/hssi/server_implementation/KVM/QEMU/shared/bin/api_implementation.sh.proposed Cisco/hssi/server_implementation/KVM/QEMU/shared/bin/api_implementation.sh

#follow this step if you want it to work with a NON virtio disk (eg. in Virtualbox)

vi ./Cisco/hssi/server_implementation/KVM/QEMU/shared/bin/api_implementation.sh


###################################
### SERVER SPECIFIC OVERRIDES BELOW
###################################

VDX_PATTERN="vd"
KVM_SDX_PATTERN="sd"
DX_INDEX=(a b c d e)

change VDX_PATTERN="vd" to VDX_PATTERN="sd"


###################################
### SERVER SPECIFIC OVERRIDES BELOW
###################################

VDX_PATTERN="sd"
KVM_SDX_PATTERN="sd"
DX_INDEX=(a b c d e)

 


vi Cisco/base_scripts/ihardware.sh

#change this
function hasHwSnmpMonitoring()
{
    local method="hasHwSnmpMonitoring"
    _forwardToSAM $method $@
}

#to
function hasHwSnmpMonitoring()
{
    return 1
}

cd Cisco/hssi/server_implementation

#delete everything other than KVM

total 40K
drwxrwxr-x 8 900711 floppy 4.0K Aug 22  2011 .
drwxrwxr-x 5 900711 floppy 4.0K Aug 22  2011 ..
drwxrwxr-x 5 900711 floppy 4.0K Aug 22  2011 HP
drwxrwxr-x 6 900711 floppy 4.0K Aug 22  2011 IBM
drwxrwxr-x 5 900711 floppy 4.0K Aug 22  2011 KVM
-r--r--r-- 1 900711 floppy   92 Dec 13  2008 README.TXT
drwxrwxr-x 4 900711 floppy 4.0K Aug 22  2011 shared
-r--r--r-- 1 900711 floppy 1.5K Aug 22  2011 TRANS.TBL
drwxrwxr-x 4 900711 floppy 4.0K Aug 22  2011 VMWARE
drwxrwxr-x 4 900711 floppy 4.0K Aug 22  2011 VOLARIS

#:/var/lib/vz/template/iso/cucm8.6kvm/Cisco/hssi/server_implementation# rm -rf HP/ IBM/ VMWARE/ VOLARIS/


#you may need to do this:

#fix this file
vi Cisco/hssi/server_implementation/KVM/shared/bin/KVM.data
#change
expected_manufacturer=QEMU\|Bochs

#to
expected_manufacturer=QEMU\|Bochs\|Seabios

#use mkisofs or genisoimage

genisoimage -o /var/lib/vz/template/iso/Bootable_UCSInstall_UCOS_UNRST_8.6.2.10000-14.sgn-KVMenabled-by-realtechtalk.com.iso -b isolinux/isolinux.bin -c isolinux/boot.cat -no-emul-boot -boot-load-size 4 -boot-info-table -J -R -iso-level 4 .


Tags:

cisco, cucm, ucsinstall, kvm, proxmoxthe, quot, pc, hardware, supported, additionally, virtio, disk, ks_pre, sh, install, logs, os, fdisk, dev, vda, didn, sda, promxox, edit, config, bootdisk, sata, cores, ide, iso, bootable_ucsinstall_ucos_, cdrom, ciscouc, vmbr, numa, ostype, scsihw, scsi, pci, smbios, uuid, bf, ee, ea, sockets, unused, vm, qemu, execution, _, dc, smp, vnc, cucum, img, modify, enable, ucs, mkdir, mountcucm, mount, bootable_ucsinstall_ucos_unrst_, sgn, mountcucum, mv, hssi, server_implementation, bin, api_implementation, vi, base_scripts, ihardware, hashwsnmpmonitoring, method, _forwardtosam, mkisofs, genisoimage, var, lib, vz, template, kvmenabled, realtechtalk, isolinux, emul, info, delete, drwxrwxr, floppy, aug, hp, ibm, dec, readme, txt, trans, tbl, vmware, volaris, rm, rf, expected_manufacturer, bochs, seabios,

Latest Articles

  • Linux Ubuntu Cannot Print Large Images
  • Cannot Print PDF Solution and Howto Resize
  • Linux Console Login Screen TTY Change Message
  • Apache Cannot Start Listening Already on 0.0.0.0
  • MySQL Bash Query to pipe input directly without using heredoc trick
  • CentOS 6 and 7 / RHEL Persistent DHCP Solution
  • Debian Ubuntu Mint rc-local service startup error solution rc-local.service: Failed at step EXEC spawning /etc/rc.local: Exec format error
  • MySQL Cheatsheet Guide and Tutorial
  • bash script kill whois or other command that is running for too long
  • Linux tftp listens on all interfaces and IPs by DEFAULT Security Risk Hole Solution
  • python import docx error
  • Cisco Unified Communications Manager Express Cheatsheet CUCME CME
  • Linux Ubuntu Debian Missing privilege separation directory: /var/run/sshd
  • bash how to count the number of columns or words in a line
  • bash if statement how to test program output without assigning to variable
  • RTNETLINK answers: Network is unreachable
  • Centos 7 how to save iptables rules like Centos 6
  • nfs tuning maximum amount of connections
  • qemu-kvm error "Could not initialize SDL(No available video device) - exiting"
  • Centos 7 tftpd will not work with selinux enabled