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 "cucmmount"

#we make the following directories (cucmmount is where we mount the iso and cucmeditiso is where we copy the files to so we can modify and recreate the .iso)

mkdir cucmmount

mount -o loop yourcucm.iso cucmmount

#we copy our iso files to cucmeditiso

cp -a cucmmount cucmeditiso

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
 }

#follow this step if you want it to work with a NON virtio disk (eg. 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)

Now we generate our new .iso

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 .

Errors:

ks_pre.sh error

Normally caused by not having your VDX pattern changed as above.

The Cisco Unified Communications disc was not found in any of your CDROM drives. Please insert the Cisco Unified Communications disc and press OK to retry.

Caused by lack of presence of the .discinfo text file from the root of cucmmount not being copied to your new iso root at cucmeditiso. 

cp -a cucmmount/.discinfo cucmeditiso/

 

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

  • How To Add Windows 7 8 10 11 to GRUB Boot List Dual Booting
  • How to configure OpenDKIM on Linux with Postfix and setup bind zonefile
  • Debian Ubuntu 10/11/12 Linux how to get tftpd-hpa server setup tutorial
  • efibootmgr: option requires an argument -- 'd' efibootmgr version 15 grub-install.real: error: efibootmgr failed to register the boot entry: Operation not permitted.
  • Apache Error Won't start SSL Cert Issue Solution Unable to configure verify locations for client authentication SSL Library Error: 151441510 error:0906D066:PEM routines:PEM_read_bio:bad end line SSL Library Error: 185090057 error:0B084009:x509 certif
  • Linux Debian Mint Ubuntu Bridge br0 gets random IP
  • redis requirements
  • How to kill a docker swarm
  • docker swarm silly issues
  • isc-dhcp-server dhcpd how to get longer lease
  • nvidia cannot resume from sleep Comm: nvidia-sleep.sh Tainted: Linux Ubuntu Mint Debian
  • zfs and LUKS how to recover in Linux
  • [error] (28)No space left on device: Cannot create SSLMutex Apache Solution Linux CentOS Ubuntu Debian Mint
  • Save money on bandwidth by disabling reflective rpc queries in Linux CentOS RHEL Ubuntu Debian
  • How to access a disk with bad superblock Linux Ubuntu Debian Redhat CentOS ext3 ext4
  • ImageMagick error convert solution - convert-im6.q16: cache resources exhausted
  • PTY allocation request failed on channel 0 solution
  • docker error not supported as upperdir failed to start daemon: error initializing graphdriver: driver not supported
  • Migrated Linux Ubuntu Mint not starting services due to broken /var/run and dbus - Failed to connect to bus: No such file or directory solution
  • qemu-system-x86_64: Initialization of device ide-hd failed: Failed to get