### 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 2. Deploy the vm by enabling UEFI secure mode in advanced settings <img width="596" height="268" alt="Image" src="https://github.com/user-attachments/assets/bb1449a9-74c7-4ce8-a5bf-e94d7446ab88" /> 3. 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 ``` 4. 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 '<uefi>true</uefi>' virt-inspector -a AlmaLinux-8-GenericCloud-UEFI-latest.x86_64.qcow2 2>/dev/null | grep -i '<uefi>true</uefi>'