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

  • Debian and Netplan
  • CentOS 8 how to restart the network!
  • CentOS 8 how to convert to a bootable mdadm RAID software array
  • ADATA USB Thumb Drive Issues
  • KMODE EXCEPTION NOT HANDLED - QEMU/KVM Won't Boot Windows 2016 or 10 Image or Physical Machine
  • Linux Mint / Ubuntu / Debian Mate Disable Guest Session and Hide Usernames on Lightdm Login screen GUI
  • SSH How To Create Public/Private Key Pair and with a Larger Keysize than 2048 bits
  • selenium.common.exceptions.WebDriverException: Message: Can not connect to the Service geckodriver
  • python ModuleNotFoundError: No module named 'bs4' even though you have the module
  • ssh how to connect using a SOCKS 5 proxy with nc and proxycommand
  • Enable AMDGPU Linux Driver
  • apache symlinks denied even with followsymlinks
  • chown how to change ownership on a symlink
  • how to use ifplugd in Linux to execute a command or script when a NIC cable is unplugged or plugged in
  • dd how to backup and restore disk images including compression with gzip
  • mpv / mplayer with Radeon / AMD GPU Video Card Driver enable VDPAU GPU Accelerated Video Decoding
  • Wordpress Reset Blog User Password from MySQL Using Linux Bash and not PHPMyadmin
  • Ubuntu Linux Mint Debian xorg performance and tear-free tuning for AMD Radeon Based Cards
  • Centos 7 Stopped and Disabled Firewalld and ports still blocked
  • MariaDB / MySQL Reset Root Forgotten Password on Centos 7