Fix the Proxmox PCI passthrough error fast. Learn why “IOMMU not present” appears, exact commands to fix it, and avoid common BIOS mistakes. Our 24/7 Proxmox Live Support team is always here to help you.
If you landed here, chances are your VM failed to start and Proxmox threw this frustrating line at you: proxmox cannot prepare pci pass-through iommu not present. At first glance, it looks technical. However, in reality, the problem is usually simple, and fixable in minutes if you know where to look.
So let’s break it down clearly, step by step, without theory overload.

Overview
What This Error Really Means
In plain terms, Proxmox is telling you one thing: your system is not exposing IOMMU to the host. Since PCI passthrough depends on IOMMU, Proxmox blocks the VM from starting.
As a result, GPU passthrough, NIC passthrough, and storage controllers won’t work. Moreover, performance-focused workloads remain stuck inside emulation.
That’s why the proxmox cannot prepare pci pass-through iommu not present error must be resolved at the host level, not inside the VM.
Steps
Enable IOMMU in BIOS (Do Not Skip This)
First things first, reboot your server and enter BIOS.
Now look carefully:
- Intel systems: Enable VT-d
- AMD systems: Enable SVM and IOMMU (AMD-Vi)
Additionally, disable “Above 4G Decoding” only if your board documents it poorly. Otherwise, leave it enabled.
Save changes and reboot.
Without this step, no Linux command can save you. This is the most common reason behind proxmox cannot prepare pci pass-through iommu not present.
Fix GRUB the Right Way
Next, Proxmox needs to be told to use IOMMU at boot.
Open the GRUB config:
nano /etc/default/grub
Now edit this line.
For Intel CPUs:
GRUB_CMDLINE_LINUX_DEFAULT="quiet intel_iommu=on"
For AMD CPUs:
GRUB_CMDLINE_LINUX_DEFAULT="quiet amd_iommu=on"
Save the file, then apply it:
update-grub
reboot
At this point, half the battle is won.
Load Required VFIO Modules
Even with IOMMU enabled, Proxmox still needs VFIO.
Run this exactly:
echo -e "vfio\nvfio_iommu_type1\nvfio_pci\nvfio_virqfd" >> /etc/modules
reboot
After reboot, confirm:
lsmod | grep vfio
If nothing shows up, the kernel isn’t loading passthrough support, another hidden trigger for proxmox cannot prepare pci pass-through iommu not present.
Check IOMMU Groups (This Matters More Than You Think)
Now verify grouping:
find /sys/kernel/iommu_groups/ -type l
Each device must sit in its own group. Otherwise, passthrough fails silently.
If grouping is messy:
- Move the card to another PCIe slot
- Enable ACS in BIOS
- Only as a last resort, use ACS override (not recommended for production)
Unsafe Interrupts (Only If You Must)
Some consumer boards disable interrupt remapping.
Check logs:
dmesg | grep remapping
If unsupported, allow unsafe interrupts:
echo "options vfio_iommu_type1 allow_unsafe_interrupts=1" > /etc/modprobe.d/iommu_unsafe_interrupts.conf
reboot
This workaround often clears stubborn cases of proxmox cannot prepare pci pass-through iommu not present.
Fix PCI Passthrough Today

Conclusion
To sum up, this error is rarely random. Instead, it’s almost always BIOS, GRUB, or missing VFIO modules. Once fixed properly, passthrough works rock-solid.
Before upgrading hardware or reinstalling Proxmox, follow these steps carefully. Many admins regain full PCI passthrough within 10 minutes, and avoid seeing proxmox cannot prepare pci pass-through iommu not present again.
