Technical

Force Virtio PCIe in Pfsense VM? Proxmox QEMU Args That Work

Force Virtio PCIe in Pfsense VM? Proxmox QEMU Args That Work

Force Virtio PCIe in Pfsense VM? You can’t do it from the Proxmox GUI, but a custom QEMU args line does the job. Add it to the VM’s config, boot, and check dmesg inside pfSense to confirm.

Detailed close-up of Dell EMC server logo on hardware grill with shallow focus and textured patterns.

Why bother with PCIe mode?

VirtIO devices default to legacy PCI in many Proxmox VMs. That’s fine for most stuff, but pfSense with certain NIC drivers or when you’re chasing performance quirks can behave better with PCIe. It also shows up as a PCIe device in the guest, which matters if you’re passing through or tuning for low latency.

The fix

Shut down the pfSense VM. Then edit the config file directly on the Proxmox host:

nano /etc/pve/qemu-server/<VMID>.conf

Add a line like this, replacing 100 with your VMID:

args: -device virtio-net-pci,netdev=net0,bus=pcie.0,addr=0x1e,disable-legacy=on,disable-modern=off -device virtio-balloon-pci,bus=pcie.0,addr=0x1f,disable-legacy=on,disable-modern=off

That forces the VirtIO NIC and balloon onto the PCIe bus. If you have more devices, you’ll need to map them too. The key flags are bus=pcie.0 and disable-legacy=on.

Artistic arrangement of circuit boards and cables symbolizes modern technology.

Check it worked

Start the VM and log into pfSense. Run:

dmesg | grep -i pcie

You should see your VirtIO devices listed with PCIe in the output. If not, double-check the bus and addr values don’t clash with anything else in the VM’s config.

My take

This is one of those tweaks that’s easy to overthink. If your pfSense VM is running fine, leave it alone. But if you’re already messing with custom args for other reasons, forcing PCIe mode is a clean way to rule out legacy quirks. Just keep a snapshot first — I’ve had VMs refuse to boot after a bad args line, and you don’t want to rebuild pfSense at 2am.

Related: Proxmox Snapshot Best Practices for a Homelab.

Leave a comment

Comments are reviewed before they appear. Your email is never published.