Guide
7 min read

A Passthrough Preflight for Proxmox: IOMMU, Boot Order, and Hardware Isolation

Stacking GPU passthrough, an HBA to a TrueNAS VM, and LXC AI workloads on one Proxmox box works until a reboot reshuffles everything. A preflight for IOMMU groups, driver placement, and boot order.

A Passthrough Preflight for Proxmox: IOMMU, Boot Order, and Hardware Isolation

It's an ambitious and increasingly common Proxmox build: a GPU passed to one VM, the storage HBA passed to a TrueNAS VM, an LXC running an AI stack, and Docker workloads alongside — all on one box. It can work beautifully. It can also collapse on the next reboot when IOMMU groups shift, the host grabs a device you meant to pass through, or the boot order brings things up in the wrong sequence. The difference is a passthrough preflight: a stable failure model decided before apps depend on any of it.

IOMMU groups decide what you can isolate

Passthrough works at the granularity of IOMMU groups — you pass an entire group, not a single device. Before planning anything:

  • Enable IOMMU (Intel VT-d / AMD-Vi) in BIOS and the kernel cmdline.
  • List your groups and see what's actually separable. A GPU sharing a group with a controller you need on the host is a problem you want to find now, not after committing.
  • If a device is stuck in a crowded group, that's a motherboard/slot reality to design around — sometimes moving a card to another slot regroups it.

Driver placement: bind passthrough devices to vfio early

The host and a guest can't both own a device. The reliable pattern is to bind passthrough devices to vfio-pci at boot, before the host's normal driver claims them:

  • Blacklist the host driver for the GPU (e.g. the NVIDIA/AMD/i915 driver) so the host never grabs it.
  • Bind the device IDs to vfio-pci via modprobe config.
  • Make it persistent — the number-one passthrough failure is a setup that works until reboot because the binding wasn't made permanent, the same persistence trap as media GPU passthrough.

Boot order is part of the design

When several VMs/containers depend on each other, the order they start matters:

  • A storage VM (TrueNAS with the passed-through HBA) must be up and exporting before VMs that mount its shares.
  • A virtualized router must be up before anything that needs the network.
  • Set VM start/shutdown order and delays in Proxmox so a cold boot reassembles the stack correctly instead of racing.

Keep a clear ownership map

The recurring danger with stacked passthrough is two things claiming one resource. Write down, explicitly:

  • Which device is owned by the host, which by each guest (vfio).
  • Which physical disks belong to TrueNAS (via the HBA) vs Proxmox — the one-owner-per-disk rule. Never half-virtualize a pool.

Have a recovery path for when passthrough breaks a boot

A bad vfio bind or a GPU the host now refuses to release can leave you without a console. Before you rely on it:

  • Keep a way in that doesn't need the passed-through GPU (serial console, SSH, iKVM).
  • Know how to boot with passthrough disabled to fix a misconfig.
  • Make sure this fits your full-host disaster-recovery plan — a passthrough box is harder to rebuild blind.

Passthrough preflight checklist

  • IOMMU enabled; groups listed and genuinely separable for what you're passing.
  • Passthrough devices bound to vfio-pci at boot; host driver blacklisted; persistent.
  • VM start order/delays set for storage → network → apps.
  • Explicit device + disk ownership map; no shared/half-virtualized pools.
  • Out-of-band access that survives the GPU being passed through.

Takeaway

Stacked passthrough on Proxmox fails on reboots, not on day one. Confirm your IOMMU groups isolate what you need, bind devices to vfio persistently, set a deliberate boot order, and keep a console that survives a bad bind. Build the failure model first and the powerful all-in-one box stays stable instead of becoming a reboot you're afraid to perform.

proxmox
gpu-passthrough
vfio
iommu
preflight

From across the StoicSoft network

Hand-curated reads on the same topic from sister sites in the StoicSoft family.

Keep reading

Guide
7 min

Media Servers Keep Hitting the Same Three Walls: Proxmox Passthrough, GPU Sizing, Storage

Jellyfin and Immich on Proxmox run into the same trio every time — GPU passthrough that won't stick, transcoding sized wrong, and storage that fights the hypervisor. Clear each wall.

Guide

Hybrid gaming PCs turned home servers need a safe host and VM boundary before Docker apps go 24/7

Running a gaming PC and a 24/7 home server on the same hardware is possible, but only if you decide up front which layer owns the host, the GPU, power management, and Docker. Getting that boundary wrong means your game sessions interrupt your services — or your services prevent clean shutdowns.

Guide
8 min

AI-assisted self-hosting breaks when logs, installers, and runtime state cross layers

Fresh support threads show a useful content angle: AI and docs can get users most of the way through self-hosting, but the hard failures happen across boundaries. One user spent two days trying to install uCore/CoreOS in a Proxmox VM with qcow2 and ignition…

Guide
8 min

Home Assistant reliability needs event evidence before adding Proxmox, Frigate, or auto-remediation

Recent Home Assistant threads show operators trying to decide whether more infrastructure will help when the missing piece is often evidence. One user with a stable bare-metal Home Assistant mini PC is adding cameras and wonders whether Proxmox or Frigate is…

Guide
8 min

Media servers moved into VMs and containers need mount and client-resume proof before family users rely on them

Fresh Jellyfin, Plex, and media-server threads show that a media stack can look installed while still failing at the boundary users actually hit. One Jellyfin user runs the server in a NAS container and can start playback, but the desktop app on Bazzite…

Guide
8 min

Proxmox and NAS rebuilds need storage ownership decisions before the apps move

Several fresh homelab posts are really asking the same preflight question: who owns storage when the server is rebuilt? One Proxmox user is reinstalling across three SSDs before hosting OPNsense, Vaultwarden, Omada, Pi-hole, VPN, and other services. Another…