惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

S
Schneier on Security
A
Arctic Wolf
S
Security Affairs
O
OpenAI News
SecWiki News
SecWiki News
TaoSecurity Blog
TaoSecurity Blog
H
Heimdal Security Blog
T
Threat Research - Cisco Blogs
Hacker News: Ask HN
Hacker News: Ask HN
N
News | PayPal Newsroom
Google Online Security Blog
Google Online Security Blog
C
Cisco Blogs
The Hacker News
The Hacker News
cs.AI updates on arXiv.org
cs.AI updates on arXiv.org
C
CXSECURITY Database RSS Feed - CXSecurity.com
P
Privacy International News Feed
V
Vulnerabilities – Threatpost
cs.CV updates on arXiv.org
cs.CV updates on arXiv.org
酷 壳 – CoolShell
酷 壳 – CoolShell
H
Hacker News: Front Page
T
Tenable Blog
T
The Exploit Database - CXSecurity.com
Recent Commits to openclaw:main
Recent Commits to openclaw:main
Spread Privacy
Spread Privacy
人人都是产品经理
人人都是产品经理
www.infosecurity-magazine.com
www.infosecurity-magazine.com
V2EX - 技术
V2EX - 技术
L
LINUX DO - 最新话题
The GitHub Blog
The GitHub Blog
博客园 - 三生石上(FineUI控件)
T
The Blog of Author Tim Ferriss
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
V
Visual Studio Blog
The Cloudflare Blog
N
News and Events Feed by Topic
量子位
Google DeepMind News
Google DeepMind News
Application and Cybersecurity Blog
Application and Cybersecurity Blog
L
LINUX DO - 热门话题
P
Palo Alto Networks Blog
Stack Overflow Blog
Stack Overflow Blog
K
KPMG report finds enterprise disconnect between AI and its ROI | CIO
Attack and Defense Labs
Attack and Defense Labs
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
Hacker News - Newest:
Hacker News - Newest: "LLM"
Apple Machine Learning Research
Apple Machine Learning Research
The Register - Security
The Register - Security
Microsoft Security Blog
Microsoft Security Blog
Know Your Adversary
Know Your Adversary
Webroot Blog
Webroot Blog

Proxmox Support Forum

[SOLVED] - Github Auth for Mirrors-Kernel Repo? [Automation] Mass migration tool for MS Win11/Server Proxmox GUI hang - not response is it possible to reject or quarantine spam based on conditions I set ? The PVENode task list in PVE9 is partially obscured due to the terminal font being too large. About 100% error reporting due to pveproxy.service hooks Kubernetes overlay networking breaks when upgrading from PVE 9.1 to PVE 9.2.3 Zentraler Speicher No space left on device Combine datastore and direct file archival to tape Kernel panic VFS: Unable to mount root fs on unknown-block (0,0) sobald ein 7.x Kernel verwendet wird. How to migrate disk of a VM from one ZFS to another Windows Server 2025 fails to boot after PVE 9.2 / Linux 7.0 Kernel upgrade Cannot Install Proxmox on T610 Poweredge with H700 PERC card sdn Config. gateway not reachable How to safely change domain/FQDN? Welche Filterquote erreicht ihr? NFS Share status unknown on 2 of 5 nodes Can't connect to PVE9 consoles [solved] Can't connect to PVE9 consoles [solved] [SOLVED] - Use secondary network for PVE commands Created cluster, one node storage gone BUG: proxmox mail gateway FROM = null bypass spam filtering Moving existing PBS from VMWare workstation to PVE cluster Does eBGP SDN fabric support external peering? Bug: PDM 1.1 not recognizing valid license status Proxmox GUI hang - not response PVE crashes unexpectedly Proxmox Backup Server 4.2 released! Advice ceph-osd crashes with kernel 6.17.2-1-pve on Dell system [META] Links on Proxmox Forum Website Hardwarer oder Software RAID Joining a cluster with already created guests VM PDM missing backup jobs from PVE / Log retention Remove VM.Monitor from all users/roles, PVE 9.2 Proxmox Freezing (new instalation) 9.2.2 - Intel 12700T No Web gui and random connection reset by peer [SOLVED] - i40e module for X710 Intel NIC Dutch Proxmox Day 2026 How pools use the space Corosync initiiert Reboot trotz Verfügbarkeit der Systeme Opt-in Linux 7.0 Kernel for Proxmox VE 9 available After PVE 8to9 upgrade, unable to check guest fs freeze status Problem with MegaRAID SAS3508 controller proxmox-kernel-7.0.2-6-pve failing network service Auto sync guest time after rollback of VM snapshot with RAM/state Broadcom BCM57504 (100G) bnxt_en TX timeout and NIC reset on Proxmox 8.1.5 — while BCM57414 (25G) works fine on same host QEMU 11.0 available on pve-test and pve-no-subscription as of now 350 MPM Solventless Lamination Machine for High-Speed Flexible Packaging Making sense of NVMe zfs and SMART errors [SOLVED] - PVE loses network connection after kernel upgrade to proxmox-kernel-7.0.0-3-pve [SOLVED] - Remove or reset cluster configuration. Proxmox 8.4.1 Fresh Install BCM57416 10G Ethernet Adapter Not Recognized PDM 1.1.1 unable to add AD realm with anonymous search [TUTORIAL] - Developer Workstation (Proxmox-VE 9) with cinnamon (LMDE7) SDN zone shows "pending" on peer nodes after node reboot (9.2.x) Cluster not quorate - extending auth key lifetime! Proxmox not rebooting properly (SOLVED) Proxmox 9 Stuck on loading initial ramdisk With new HA-Disarm Feature is there a Documentation for NUT Setup on Clusters? Proxmox 8.3 Installation Issue on ProLiant DL380 Gen9 Cluster networking setup LXC System images unavailable [SOLVED] - Fix: NVIDIA Drivers Failing after upgrade to Proxmox 9.2.2 (Kernel 7.0.2-6-pve) / NovaCore Conflict Install NUT directly on Proxmox VE and control guests from here driver usb for windows 7 System startup error and no network: Failed to start ifupdown2-pre.service - Helper to synchronize boot up for ifupdown. PBS backup space grow up constantly Proxmox Datacenter Manager 1.1 released! IPv4 not available in newly created VM Recommended Setup for Offsite Proxmox Backups? Hetzner Storage Box & Remote PBS Challenges duplicate, please delete this passthrought an USB device "by ID" to CT PDM Installer Freezes at 66% Tried PDM for the first time (version 1.1) - had issues PDM 1.1 automated install Suche Server-Provider für Proxmox connecting sdn to edge firewall SDN, IPAM & DHCP Migrating from read-only file system Ubuntu 26.04 installation fails for unknown reason Status Unbekannt nach Cluster Join Installing Proxmox Backup Server on Mac Mini (Late 2012) kernel 7.0 performance issue with zfs pools PVE becomes unreachable via ethernet but OS is running [SOLVED] - New 9.2 install - can't find 7.0.2-6-pve , not all the time [SOLVED] - Backup and dedupe a VM with LUKS Gibt es mit PVE 2.x ggf. Änderungen bei der RAM-Nutzung, bzw. deren Anzeige bei VMs? I need help for setting up backup solution Way more NAGware, very little functionality, bugs galore Root squashing virtiofsd with --uid-map Intel ixgbe Driver Update Fail Passkey Login (not 2FA) Roblox VM detection - can be overcome? [TUTORIAL] - ZFS-Autosnaptshot inkl. Rollback und Daten direkt recovern (Windows/Linux) How to stop PVE Kernel upgrade [SOLVED] - very long waiting to log in to lxc debian 11 ssh [TUTORIAL] - Configuring Fusion-Io (SanDisk) ioDrive, ioDrive2, ioScale and ioScale2 cards with Proxmox Increase maximum USB devices in vm.conf
Running Cisco UC Appliances In Proxmox (i.e., CUCM, CUCS, Expressway, IM&P, CMS, CSR1000v)
invalid@exam · 2023-11-04 · via Proxmox Support Forum

I've just literally started using ProxMox as an alternative to VmWare ESXi for testing purposes.

My issue as of now is that I cannot build a Cisco call manager (a.k.a., "CUCM") inside of proxmox (see attachment).

I've no doubt the issue is my not fully grasping proxmox in addition to not finding any information regarding running a cisco call manager in a proxmox environment.

Is there anyone here who has any experience running cisco appliances on a proxmox hypervisor?

Thanks in advance...

Jay

  • CUCM_Proxmox Error (4 Nov 2023).jpg

    CUCM_Proxmox Error (4 Nov 2023).jpg

    116.4 KB · Views: 140

I've just literally started using ProxMox as an alternative to VmWare ESXi for testing purposes.
My issue as of now is that I cannot build a Cisco call manager (a.k.a., "CUCM") inside of proxmox (see attachment).
I've no doubt the issue is my not fully grasping proxmox in addition to not finding any information regarding running a cisco call manager in a proxmox environment.
Is there anyone here who has any experience running cisco appliances on a proxmox hypervisor?

I'm trying the same with CUCM 15 on Proxmox 8.2, with no luck so far either.

Cisco currently only supports ESXi and I think it checks some parameters during bootup of the installation media. So, if Proxmox wants to be a full replacement of ESXi, it needs to have a compatibility mode where the hypervisor of Proxmox mimics the ESXi hypervisor.

For example these settings (dmidecod):

Code:

BIOS Information
        Vendor: SeaBIOS
        Version: rel-1.16.2-0-gea1b7a073390-prebuilt.qemu.org
        Release Date: 04/01/2014
        Address: 0xE8000
        Runtime Size: 96 kB
        ROM Size: 64 kB
        Characteristics:
                BIOS characteristics not supported
                Targeted content distribution is supported
        BIOS Revision: 0.0

Handle 0x0100, DMI type 1, 27 bytes
System Information
        Manufacturer: QEMU
        Product Name: Standard PC (Q35 + ICH9, 2009)
        Version: pc-q35-8.1
        Serial Number: Not Specified
        UUID: 4434a6d8-9bab-4fa8-926f-de84ef79a9ea
        Wake-up Type: Power Switch
        SKU Number: Not Specified
        Family: Not Specified

Handle 0x0300, DMI type 3, 22 bytes
Chassis Information
        Manufacturer: QEMU
        Type: Other
        Lock: Not Present
        Version: pc-q35-8.1
        Serial Number: Not Specified
        Asset Tag: Not Specified
        Boot-up State: Safe
        Power Supply State: Safe
        Thermal State: Safe
        Security Status: Unknown
        OEM Information: 0x00000000
        Height: Unspecified
        Number Of Power Cords: Unspecified
        Contained Elements: 0
        SKU Number: Not Specified

When a vendor of appliances is checking the plattform, it is easy to detect that this is not ESXi, but something different.

Furthermore I assume that the Cisco UC installer is more strict than CUCM itself after installation. So, it may work when installing on ESXi and migrating the installed disk image afterwards. Sadly, I have no ESXi at hand to try this.

Regars,
Ingo

Cisco currently only supports ESXi and I think it checks some parameters during bootup of the installation media. So, if Proxmox wants to be a full replacement of ESXi, it needs to have a compatibility mode where the hypervisor of Proxmox mimics the ESXi hypervisor.

Or you could, you know, ask the vendor of the expensive software you want to use to support the environment you want to use. Why is it always on the open source community to get proprietary things to work? Seems to me that if you are paying big bucks for something you ought to get more than abuse and being ignored.

ETA: If Cisco has instructions for "KVM based hypervisors" or similar, that should be helpful for running in Proxmox.

Last edited:

Or you could, you know, ask the vendor of the expensive software you want to use to support the environment you want to use. Why is it always on the open source community to get proprietary things to work? Seems to me that if you are paying big bucks for something you ought to get more than abuse and being ignored.

ETA: If Cisco has instructions for "KVM based hypervisors" or similar, that should be helpful for running in Proxmox.

It is as it is. On-Prem products do have a difficult stand within Cisco anyway as Cisco is heavily promoting Cloud services.

Anyway, it is not that Cisco isn't dealing with that topic of Proxmox: https://community.cisco.com/t5/devnet-general-discussions/word-of-the-week-proxmox/td-p/4827187

And when looking into the installer (see the previous Github link), you can see that there are other hypervisors as well, including KVM/QEMU. The Github link deals with that in a way that it modifies the install scripts to use KVM instead of ESXi.

However, when the installation would be successful, it is (state of now) a totally unsupported platform.

But I agree: the customers should urge Cisco to support other virtualization platforms like Proxmox, especially when considering the Broadcom change in licensing. Nonetheless there won't be a quick change in Ciscos policy.

I followed the same https://github.com/david8862/create-cucm-kvm-iso with a CUCM 14 installation disk as well and ran into an issue that was due to the naming of the disk. I found a solution in form of an additional line for the script, I documented this in the issues section. I just received my final proxmox hardware today and I am in the process of installing a CUCM right now, after that I will try Unity Connection. The beauty of the script is that it also adds the boot loader, so all you need is an upgrade image

these are my settings:

Bildschirmfoto 2024-07-10 um 16.35.19.png

This is the complete shell script to convert the iso:

Bash:

#! /bin/bash
# Filename: create_cucm_kvm_iso.sh
#
# Copyright (C) 2017  Xiaobin Zhang (david8862@gmail.com)
#
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Lesser General Public License as published by
# the Free Software Foundation; either version 2.1 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
# GNU Lesser General Public License for more details.
#
# You should have received a copy of the GNU Lesser General Public License
# along with this program.  If not, see <http://www.gnu.org/licenses/>.
#

#
# main()
#
if [ $# -ne 2 ] ; then
    echo Usage: "`basename $0` SOURCE_ISO DEST_ISO"
    echo "SOURCE_ISO  origin iso image get from Cisco webpage"
    echo "DEST_ISO    output iso image supporting KVM installation"
    exit 1
fi

SOURCE_ISO=$1
DEST_ISO=$2
CURR_PATH=$(pwd)


if [ $(id -un) != "root" ]; then
    echo "Please use root account."
    exit 1
fi

if [ ! -f "$SOURCE_ISO" ]; then
    echo "origin iso un-exists. Please check again."
    exit 1
fi

umount /tmp/iso
umount /tmp/CUCM
rm -rf /tmp/iso
rm -rf /tmp/CUCM
mkdir /tmp/iso
mkdir /tmp/CUCM

mount -o loop $SOURCE_ISO /tmp/iso/
echo "Now syncing ISO to new path, please wait..."
rsync -a /tmp/iso/ /tmp/CUCM/
echo "Syncing finished."

#Remove not used server implementation
pushd /tmp/CUCM/Cisco/hssi/server_implementation/
shopt -s extglob
rm -rf !(KVM|README.TXT|shared|TRANS.TBL)
pushd KVM/
rm -rf !(QEMU|shared|TRANS.TBL)
shopt -u extglob
popd
popd


#Add server hardware detecting error check
sed -i '/HSSI_API $impl returned $isFound and errors/i\            echo "HSSI_API $impl returned $isFound and errors=$validation_errors " >&2' /tmp/CUCM/Cisco/hssi/shared/bin/hssi_api.sh

sed -i '/case "$isFound" in/G' /tmp/CUCM/Cisco/hssi/shared/bin/hssi_api.sh
sed -i '/case "$isFound" in/a\                ;;' /tmp/CUCM/Cisco/hssi/shared/bin/hssi_api.sh
sed -i '/case "$isFound" in/a\                ((validated_count++))' /tmp/CUCM/Cisco/hssi/shared/bin/hssi_api.sh
sed -i '/case "$isFound" in/a\                hw_model="$($impl HWModel)"' /tmp/CUCM/Cisco/hssi/shared/bin/hssi_api.sh
sed -i '/case "$isFound" in/a\                append_inDataFile_forKey_value $hssi_api_state_file "hardware_implementation_paths" $impl' /tmp/CUCM/Cisco/hssi/shared/bin/hssi_api.sh
sed -i '/case "$isFound" in/a\                echo "$($impl HWModel): passed detection validation" >&2' /tmp/CUCM/Cisco/hssi/shared/bin/hssi_api.sh
sed -i '/case "$isFound" in/a\                "2")' /tmp/CUCM/Cisco/hssi/shared/bin/hssi_api.sh

#Snmp
sed -i '/local method="hasHwSnmpMonitoring"/{n;d}' /tmp/CUCM/Cisco/base_scripts/ihardware.sh
sed -i 's/local method="hasHwSnmpMonitoring"/return 1/g' /tmp/CUCM/Cisco/base_scripts/ihardware.sh

#Remove eth HWADDR check
mv /tmp/CUCM/Cisco/hssi/server_implementation/KVM/QEMU/shared/bin/api_implementation.sh.proposed /tmp/CUCM/Cisco/hssi/server_implementation/KVM/QEMU/shared/bin/api_implementation.sh


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





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

sed -i 's/VDX_PATTERN="vd"/VDX_PATTERN="sd"/g' /tmp/CUCM/Cisco/hssi/server_implementation/KVM/QEMU/shared/bin/api_implementation.sh




pushd /tmp/CUCM/
genisoimage -o $CURR_PATH/$DEST_ISO -b isolinux/isolinux.bin -c isolinux/boot.cat -no-emul-boot -boot-load-size 4 -boot-info-table -J -R .
popd

umount /tmp/iso
umount /tmp/CUCM
rm -rf /tmp/iso
rm -rf /tmp/CUCM
echo "KVM ISO is created at $CURR_PATH/$DEST_ISO"

I followed the same https://github.com/david8862/create-cucm-kvm-iso with a CUCM 14 installation disk as well and ran into an issue that was due to the naming of the disk. I found a solution in form of an additional line for the script, I documented this in the issues section. I just received my final proxmox hardware today and I am in the process of installing a CUCM right now, after that I will try Unity Connection. The beauty of the script is that it also adds the boot loader, so all you need is an upgrade image

these are my settings:

This is the complete shell script to convert the iso:

Ah, thanks for the update!

EDIT:
Ah, apparently to less space on /tmp. Corrected that and then the scripts runs without issues.


OLD:

Unfortunately the scripts seems to have some issues, at least for me:

Bash:

# ./create_cucm_kvm_iso.sh Bootable_UCSInstall_UCOS.iso Bootable_UCSInstall_UCOS-kvm.iso
umount: /tmp/iso: not mounted.
umount: /tmp/CUCM: not mounted.
mount: /tmp/iso: WARNING: source write-protected, mounted read-only.
Now syncing ISO to new path, please wait...
rsync: [receiver] write failed on "/tmp/CUCM/images/install.img": No space left on device (28)
rsync error: error in file IO (code 11) at receiver.c(380) [receiver=3.2.7]
rsync: [sender] write error: Broken pipe (32)
Syncing finished.
/tmp/CUCM/Cisco/hssi/server_implementation ~
/tmp/CUCM/Cisco/hssi/server_implementation/KVM /tmp/CUCM/Cisco/hssi/server_implementation ~
/tmp/CUCM/Cisco/hssi/server_implementation ~
~
/tmp/CUCM ~
I: -input-charset not specified, using utf-8 (detected in locale settings)
Using CHECK000.;1 for  /checksum_file_sha512 (checksum_file)
Using SYSTE000.RPM;1 for  ./Alma/RPMS/systemd-udev-239-58.el8.x86_64.rpm (systemd-pam-239-58.el8.x86_64.rpm)
Using SYSTE001.RPM;1 for  ./Alma/RPMS/systemd-pam-239-58.el8.x86_64.rpm (systemd-libs-239-58.el8.x86_64.rpm)
Using SYSTE002.RPM;1 for  ./Alma/RPMS/systemd-libs-239-58.el8.x86_64.rpm (systemd-239-58.el8.x86_64.rpm)
[...]
Using PLATF000.;1 for  ./Cisco/ucplatform_post/scripts/platform_services_migrate (platform_certs_migrate)
Using PLATF001.;1 for  ./Cisco/ucplatform_post/scripts/platform_certs_migrate (platform_admin_acct_final)
genisoimage: Uh oh, I cant find the boot image 'isolinux/isolinux.bin' !
~
umount: /tmp/CUCM: not mounted.
KVM ISO is created at /root/Bootable_UCSInstall_UCOS-kvm.iso

The resulting ISO is, well, quite compact:

Bash:

# ls -l /root/Bootable_UCSInstall_UCOS-kvm.iso
-rw-r--r-- 1 root root 34816 Jul 10 18:26 /root/Bootable_UCSInstall_UCOS-kvm.iso

;-)

Regards
Ingo

Last edited:

No space left on device (28)

You need to run it on a different storage, the one you are using is full, hence the small image as a result of the script.

Meanwhile I can confirm that it runs for Unity Connection as well, I am in the last stage of the installation. One more thing: The current dialog for creating a VM uses an IDE drive even when the standard SCSI controller has been selected. Delete the IDE drive and create an SCSI drive.

Edit: The installation of Unity Connection just finished successfully.

You need to run it on a different storage, the one you are using is full, hence the small image as a result of the script.

Yeah, spotted that already and edited the post accordingly ;)

Meanwhile I can confirm that it runs for Unity Connection as well, I am in the last stage of the installation. One more thing: The current dialog for creating a VM uses an IDE drive even when the standard SCSI controller has been selected. Delete the IDE drive and create an SCSI drive.

Edit: The installation of Unity Connection just finished successfully.

For CUCM 15 there seems to be another issue. HW validation passes, as the install script states, but then the installation is halted:

Bildschirmfoto 2024-07-10 um 19.06.33.png

Bildschirmfoto 2024-07-10 um 19.06.49.png

That is unfortunate, it looks like Cisco has removed the KVM support for this release.

That is unfortunate, it looks like Cisco has removed the KVM support for this release.

Hmmm, that would cause an issue for CUCM 14 at a later stage when upgrading to CUCM 15 as well, I guess.

How does this looks on CUCM 14 ISO?

Bash:

# ls -l /media/Cisco/hssi/server_implementation/*/*/shared/bin/
/media/Cisco/hssi/server_implementation/CLOUD/EC2/shared/bin/:
total 7
-rwxr-xr-x 1 900711 floppy 5913 Mar 14 07:49 api_implementation.sh
-rw-r--r-- 1 900711 floppy  191 Mar 14 07:49 EC2.data
-r--r--r-- 1 900711 floppy  453 Mar 14 09:33 TRANS.TBL

/media/Cisco/hssi/server_implementation/CLOUD/GOOGLE/shared/bin/:
total 7
-rwxr-xr-x 1 900711 floppy 5251 Mar 14 07:49 api_implementation.sh
-rw-r--r-- 1 900711 floppy  191 Mar 14 07:49 GOOGLE.data
-r--r--r-- 1 900711 floppy  456 Mar 14 09:33 TRANS.TBL

/media/Cisco/hssi/server_implementation/KVM/HAL/shared/bin/:
total 8
-rwxr-xr-x 1 900711 floppy 5310 Mar 14 07:49 api_implementation.sh
-rw-r--r-- 1 900711 floppy   28 Mar 14 07:49 HAL.data
-rw-r--r-- 1 900711 floppy   92 Mar 14 07:49 README.TXT
-r--r--r-- 1 900711 floppy  675 Mar 14 09:33 TRANS.TBL

/media/Cisco/hssi/server_implementation/KVM/QEMU/shared/bin/:
total 7
-rwxr-xr-x 1 900711 floppy 6092 Mar 14 07:49 api_implementation.sh.proposed
-rw-r--r-- 1 900711 floppy  206 Mar 14 07:49 QEMU.data
-r--r--r-- 1 900711 floppy  463 Mar 14 09:33 TRANS.TBL

/media/Cisco/hssi/server_implementation/KVM/RHEV/shared/bin/:
total 7
-rwxr-xr-x 1 900711 floppy 5247 Mar 14 07:49 api_implementation.sh
-rw-r--r-- 1 900711 floppy  124 Mar 14 07:49 RHEV.data
-r--r--r-- 1 900711 floppy  454 Mar 14 09:33 TRANS.TBL

/media/Cisco/hssi/server_implementation/VMWARE/supported/shared/bin/:
total 12
-rwxr-xr-x 1 900711 floppy 9777 Mar 14 07:49 api_implementation.sh
-rw-r--r-- 1 900711 floppy   92 Mar 14 07:49 README.TXT
-rw-r--r-- 1 900711 floppy  303 Mar 14 07:49 supported.data
-r--r--r-- 1 900711 floppy  681 Mar 14 09:33 TRANS.TBL

What is different for KVM/QEMU is that the api_implementation.sh script is having the suffix ".proposed". Is this the case as well for CUCM 14?

This is how it looks like for 14SU1:

Code:

root@pve1:/mnt/iso# ls -l Cisco/hssi/server_implementation/*/*/shared/bin/
Cisco/hssi/server_implementation/CLOUD/EC2/shared/bin/:
total 7
-r-xr-xr-x 1 root root 5913 Oct 22  2021 api_implementation.sh
-r-xr-xr-x 1 root root  191 Oct 22  2021 EC2.data
-r-xr-xr-x 1 root root  453 Oct 22  2021 TRANS.TBL

Cisco/hssi/server_implementation/CLOUD/GOOGLE/shared/bin/:
total 7
-r-xr-xr-x 1 root root 5251 Oct 22  2021 api_implementation.sh
-r-xr-xr-x 1 root root  191 Oct 22  2021 GOOGLE.data
-r-xr-xr-x 1 root root  456 Oct 22  2021 TRANS.TBL

Cisco/hssi/server_implementation/KVM/HAL/shared/bin/:
total 8
-r-xr-xr-x 1 root root 5310 Oct 22  2021 api_implementation.sh
-r-xr-xr-x 1 root root   28 Oct 22  2021 HAL.data
-r-xr-xr-x 1 root root   92 Oct 22  2021 README.TXT
-r-xr-xr-x 1 root root  675 Oct 22  2021 TRANS.TBL

Cisco/hssi/server_implementation/KVM/QEMU/shared/bin/:
total 7
-r-xr-xr-x 1 root root 6092 Oct 22  2021 api_implementation.sh.proposed
-r-xr-xr-x 1 root root  206 Oct 22  2021 QEMU.data
-r-xr-xr-x 1 root root  463 Oct 22  2021 TRANS.TBL

Cisco/hssi/server_implementation/KVM/RHEV/shared/bin/:
total 7
-r-xr-xr-x 1 root root 5247 Oct 22  2021 api_implementation.sh
-r-xr-xr-x 1 root root  124 Oct 22  2021 RHEV.data
-r-xr-xr-x 1 root root  454 Oct 22  2021 TRANS.TBL

Cisco/hssi/server_implementation/VMWARE/supported/shared/bin/:
total 12
-r-xr-xr-x 1 root root 9777 Oct 22  2021 api_implementation.sh
-r-xr-xr-x 1 root root   92 Oct 22  2021 README.TXT
-r-xr-xr-x 1 root root  303 Oct 22  2021 supported.data
-r-xr-xr-x 1 root root  681 Oct 22  2021 TRANS.TBL

I just found out that CUCM 14SU2 cannot be converted with this method. I am looking into this.

So in fact the last version of CUCM that seems to be working is 14.0SU1, beginning with 14.0SU2 I am getting the same error as above, and I only get that far if I remove the -R in the genisoimage statement in the script, without that I can not even create the image. I found different, easier instructions here: https://www.eve-ng.net/index.php/documentation/howtos/cisco-cucm/

I get a different error message saying that the hardware is not supported for this product. So it looks like the instructions above (that mess around a lot less with the iso) seem to work slightly better - but not good enough.

Last edited:

Well, maybe it's one idea to make it work with KVM/QEMU scripts within the ISO image, maybe it's another idea to patch the VMware scripts to just accepts that it's ok to run on KVM/QEMU?
HW/machine validation is for sure a nice thing to have when you want to ensure that you run only on a supported platform, but running CUCM on Proxmox will give you an unsupported platform anyway, so bypassing all the checks would be an option as well and proceed with just the installation.

I am currently migrating from ESXi and I have already tried to import the CUCM publisher, it failed. Therefore I doubt that it is easy to install the ISO with just modification on the hardware check. My plan b is to have a virtualized ESXi in Proxmox for the Cisco UC products.

Last edited:

I retried the import, this time I changed the disk type to IDE and it worked, I have CUCM 14SU2 running on Proxmox.

Last edited:

I followed the same https://github.com/david8862/create-cucm-kvm-iso with a CUCM 14 installation disk as well and ran into an issue that was due to the naming of the disk. I found a solution in form of an additional line for the script, I documented this in the issues section. I just received my final proxmox hardware today and I am in the process of installing a CUCM right now, after that I will try Unity Connection. The beauty of the script is that it also adds the boot loader, so all you need is an upgrade image

these are my settings:

View attachment 71133

This is the complete shell script to convert the iso:

Bash:

#! /bin/bash
# Filename: create_cucm_kvm_iso.sh
#
# Copyright (C) 2017  Xiaobin Zhang (david8862@gmail.com)
#
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Lesser General Public License as published by
# the Free Software Foundation; either version 2.1 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
# GNU Lesser General Public License for more details.
#
# You should have received a copy of the GNU Lesser General Public License
# along with this program.  If not, see <http://www.gnu.org/licenses/>.
#

#
# main()
#
if [ $# -ne 2 ] ; then
    echo Usage: "`basename $0` SOURCE_ISO DEST_ISO"
    echo "SOURCE_ISO  origin iso image get from Cisco webpage"
    echo "DEST_ISO    output iso image supporting KVM installation"
    exit 1
fi

SOURCE_ISO=$1
DEST_ISO=$2
CURR_PATH=$(pwd)


if [ $(id -un) != "root" ]; then
    echo "Please use root account."
    exit 1
fi

if [ ! -f "$SOURCE_ISO" ]; then
    echo "origin iso un-exists. Please check again."
    exit 1
fi

umount /tmp/iso
umount /tmp/CUCM
rm -rf /tmp/iso
rm -rf /tmp/CUCM
mkdir /tmp/iso
mkdir /tmp/CUCM

mount -o loop $SOURCE_ISO /tmp/iso/
echo "Now syncing ISO to new path, please wait..."
rsync -a /tmp/iso/ /tmp/CUCM/
echo "Syncing finished."

#Remove not used server implementation
pushd /tmp/CUCM/Cisco/hssi/server_implementation/
shopt -s extglob
rm -rf !(KVM|README.TXT|shared|TRANS.TBL)
pushd KVM/
rm -rf !(QEMU|shared|TRANS.TBL)
shopt -u extglob
popd
popd


#Add server hardware detecting error check
sed -i '/HSSI_API $impl returned $isFound and errors/i\            echo "HSSI_API $impl returned $isFound and errors=$validation_errors " >&2' /tmp/CUCM/Cisco/hssi/shared/bin/hssi_api.sh

sed -i '/case "$isFound" in/G' /tmp/CUCM/Cisco/hssi/shared/bin/hssi_api.sh
sed -i '/case "$isFound" in/a\                ;;' /tmp/CUCM/Cisco/hssi/shared/bin/hssi_api.sh
sed -i '/case "$isFound" in/a\                ((validated_count++))' /tmp/CUCM/Cisco/hssi/shared/bin/hssi_api.sh
sed -i '/case "$isFound" in/a\                hw_model="$($impl HWModel)"' /tmp/CUCM/Cisco/hssi/shared/bin/hssi_api.sh
sed -i '/case "$isFound" in/a\                append_inDataFile_forKey_value $hssi_api_state_file "hardware_implementation_paths" $impl' /tmp/CUCM/Cisco/hssi/shared/bin/hssi_api.sh
sed -i '/case "$isFound" in/a\                echo "$($impl HWModel): passed detection validation" >&2' /tmp/CUCM/Cisco/hssi/shared/bin/hssi_api.sh
sed -i '/case "$isFound" in/a\                "2")' /tmp/CUCM/Cisco/hssi/shared/bin/hssi_api.sh

#Snmp
sed -i '/local method="hasHwSnmpMonitoring"/{n;d}' /tmp/CUCM/Cisco/base_scripts/ihardware.sh
sed -i 's/local method="hasHwSnmpMonitoring"/return 1/g' /tmp/CUCM/Cisco/base_scripts/ihardware.sh

#Remove eth HWADDR check
mv /tmp/CUCM/Cisco/hssi/server_implementation/KVM/QEMU/shared/bin/api_implementation.sh.proposed /tmp/CUCM/Cisco/hssi/server_implementation/KVM/QEMU/shared/bin/api_implementation.sh


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





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

sed -i 's/VDX_PATTERN="vd"/VDX_PATTERN="sd"/g' /tmp/CUCM/Cisco/hssi/server_implementation/KVM/QEMU/shared/bin/api_implementation.sh




pushd /tmp/CUCM/
genisoimage -o $CURR_PATH/$DEST_ISO -b isolinux/isolinux.bin -c isolinux/boot.cat -no-emul-boot -boot-load-size 4 -boot-info-table -J -R .
popd

umount /tmp/iso
umount /tmp/CUCM
rm -rf /tmp/iso
rm -rf /tmp/CUCM
echo "KVM ISO is created at $CURR_PATH/$DEST_ISO"

I just wanted to give you a massive shoutout for this. This worked for me on CUCM 12.5 and saved me a huge headache moving from ESXi to proxmox. Thank you!

I just wanted to give you a massive shoutout for this. This worked for me on CUCM 12.5 and saved me a huge headache moving from ESXi to proxmox. Thank you!

I'd be cautious with productive systems. The problem might hit when trying to upgrade to a newer version. And you are now running an unsupported system.

The best way would be to also contact your Cisco contacts and demand support for KVM/QEMU based virtualization platforms. I doubt that every CUCM customer will be switching to Nutanix. In most cases Cisco prodcuts will just be one of many apps that need to virtualized and migrated away from VMware.

However, the information within the thread is important information and we should continue to make CUCM & Co work in Proxmox - and give feedback to Cisco how we achieved this.

Volví a intentar la importación, esta vez cambié el tipo de disco a IDE y funcionó, tengo CUCM 14SU2 ejecutándose en Proxmox.

Hello, could you be a bit more specific? What do you mean by 'importation'?

I mean the import of a running CUCM from ESXi. After the import you have to change the type of the vm disk to IDE, otherwise the start will fail.