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

  • Aruba/HP/Dell IAP Wireless Controller Common Default Passwords
  • Debian, Mint Ubuntu how to remove package and associated config files
  • Linux Grub not booting the intended kernel solution in Debian, Mint, Ubuntu how to specify which kernel to boot by default
  • QEMU KVM Keyboard Problems Not Working Right Repeating Characters, Ctrl+C Copy and Paste not working right when using PS2 mouse in guests Solution
  • Linux how to compile binary with static sharedobjects embedded instead of dynamic to use on multi-distributions and avoid glibc compatiblity issues
  • /bin/sh: msgfmt: not found error solution on Linux Compilation Ubuntu Debian Mint Centos
  • Mikrotik RouterOS CHR/ISO Basic and Quick Setup Howto Guide
  • qemu 4 compilation options
  • CentOS 7 8 PXEBoot Netinstall Not Working Solution "Pane is dead "new value non-exisetnt xfs filesystem is not valid as a default fs type"
  • CentOS 6 EOL yum repo won't work Error: Cannot find a valid baseurl for repo: base Solution
  • CentOS 7 8 How To Disable SELinux
  • Wordpress How To Add Featured Image To Post in Hueman Theme
  • kdenlive full reset how to erase all config files
  • CentOS 7 8 yum error Trying other mirror. To address this issue please refer to the below wiki article
  • Microsoft Teams Linux - Calendar Doesn't Work Missed Meetings!
  • Scanner not working in Linux Ubuntu Fedora Mint Debian over the network? Use sane-airscan!
  • How To Boot, Install and Run Windows 2000 on QEMU-KVM
  • bash cannot execute permission denied
  • Huion and Wacom Tablets How To Install in Linux Mint / Ubuntu and make the stylus work properly
  • ffmpeg how to cut certain parts of video out