Skip to content

Unable to add more than 2 volumes or networks to a vm deployed from a UEFI image #11212

@kiranchavala

Description

@kiranchavala

problem

Unable to add more than 2 volume or network to a vm deployed from a UEFI image

versions

ACS 4.20.1

The steps to reproduce the bug

  1. Register a UEFI image Template

https://cloud-images.ubuntu.com/noble/current/noble-server-cloudimg-amd64.img

  1. Deploy the vm by enabling UEFI secure mode in advanced settings
Image
  1. Once the vm is in running state , attach multiple volumes , Exception observed

Logs

2025-07-16 04:28:28,947 DEBUG [kvm.storage.KVMStorageProcessor] (AgentRequest-Handler-3:[]) (logid:) Attaching device: <disk  device='disk' type='file'>
<driver name='qemu' type='qcow2' cache='none' />
<source file='/mnt/7b881182-e6d4-3e65-bf10-662bf0530b84/c6ef61d1-300f-442a-86e5-e31f482b64ab'/>
<target dev='vdc' bus='virtio'/>
<serial>c6ef61d1300f442a86e5</serial>
</disk>

2025-07-16 04:28:28,953 WARN  [kvm.storage.KVMStorageProcessor] (AgentRequest-Handler-3:[]) (logid:) Failed to attach device to i-2-653-VM: internal error: No more available PCI slots
2025-07-16 04:28:28,953 DEBUG [kvm.storage.KVMStorageProcessor] (AgentRequest-Handler-3:[]) (logid:) Failed to attach volume [id: 394, uuid: c6ef61d1-300f-442a-86e5-e31f482b64ab, name: test2, path: c6ef61d1-300f-442a-86e5-e31f482b64ab], due to org.libvirt.LibvirtException: internal error: No more available PCI slots

  1. Try to attach multiple networks, Exception observed

2025-07-16 04:36:02,019 DEBUG [kvm.resource.BridgeVifDriver] (AgentRequest-Handler-1:[]) (logid:) Successfully executed process [2045246] for command [/usr/share/cloudstack-common/scripts/vm/network/vnet/modifyvlan.sh -v 2144 -p eth1 -b breth1-2144 -o add ].
2025-07-16 04:36:02,021 WARN  [resource.wrapper.LibvirtPlugNicCommandWrapper] (AgentRequest-Handler-1:[]) (logid:)  Plug Nic failed due to org.libvirt.LibvirtException: internal error: No more available PCI slots org.libvirt.LibvirtException: internal error: No more available PCI slots
        at org.libvirt.ErrorHandler.processError(Unknown Source)
        at org.libvirt.ErrorHandler.processError(Unknown Source)

Workaround

Change the following settings on the vm after stopping

nicAdapter to e1000 or rtl813

rootDiskController to scsi or sata

https://prnt.sc/9wSS5uX0tVYX

What to do about it?

If the Template is a UEFI enabled , Cloudstack should check if the template is UEFI enabled or not and populated the necessary settings for root disk and nic adapter

yum install libguestfs-tools

virt-inspector --format=raw -a noble-server-cloudimg-amd64.img 2>/dev/null | grep -i 'true'

virt-inspector -a AlmaLinux-8-GenericCloud-UEFI-latest.x86_64.qcow2 2>/dev/null | grep -i 'true'

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    Status

    Todo

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions