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

  • ssh Too many authentication failures not prompting for password
  • LightDM Mint Ubuntu Debian won't start errors Nvidia Graphics
  • WARNING: Unable to determine the path to install the libglvnd EGL vendor library config files. Check that you have pkg-config and the libglvnd development libraries installed, or specify a path with --glvnd-egl-config-path. Linux Ubuntu Mint Debian E
  • How To Upgrade Linux Mint 18.2 to 18.3 to 19.x and 20.x
  • MP3s Won't Play / ID3 Version 2.4 Issues in Cars and Other MP3 Players/CDs/DVDs Solution
  • LXC Containers LXD How to Install and Configure Tutorial Ubuntu Debian Mint
  • GlusterFS HowTo Tutorial For Distributed Storage in Docker, Kubernetes, LXC, KVM, Proxmox
  • Ubuntu Mint audio output not working pulseaudio "pulseaudio[13710]: [pulseaudio] sink-input.c: Failed to create sink input: too many inputs per sink."
  • How To Shrink Dynamically Allocated VM QEMU KVM VMware Disk Image File
  • How To Enable Linux Swapfile Instead of Partition Ubuntu Mint Debian Centos
  • 404 Not Found [IP: 151.101.194.132 80] apt update Debian 11 Bullseye Solution The repository 'http://security.debian.org bullseye/updates Release' does not have a Release file.
  • WARNING: Can't download daily.cvd from db.local.clamav.net freshclam clamav error solution
  • (firefox:9562): LIBDBUSMENU-GLIB-WARNING **: Unable to get session bus: Failed to execute child process "dbus-launch" (No such file or directory) Solution
  • Debian Mint Ubuntu Which Package Provides missing top, ps and w Solution
  • Vbox Virtualbox DNS NAT Network Mode NOT working
  • Docker Tutorial HowTo Install Docker, Use and Create Docker Container Images Clustering Swarm Mode Monitoring Service Hosting Provider
  • Zoom Password Error 'That passcode was incorrect' - Solution Wrong Passcode Wrong Meeting Name
  • How To Startup and Open Remote/Local Folder/Directory in Ubuntu Linux Mint automatically upon login
  • How To Reset Windows Server Password 2019, 2022, 7, 8, 10, 11 Recovery and Removal Guide Using Linux Ubuntu Mint Debian
  • How To Create OpenVPN Server for Secure Remote Corporate Access in Linux Debian/Mint/Ubuntu with client public key authentication