𧨠From Crash to Passthrough: Installing Proxmox VE on a Single-GPU System (No iGPU)
Applies to: Systems with an RTX 3090, no onboard graphics (iGPU), and a goal of GPU passthrough.
If youâre installing Proxmox VE and your system crashes at "Loading drivers: .......", youâre not alone.
This guide builds upon the foundational article âGRUB Parameters for GPU Passthrough â A Comprehensive Guideâ and walks you through both:
- Getting the installer to boot when you only have a single GPU
- Preparing Proxmox for GPU passthrough after install
- Installing and configuring Proxmox step by step using a real-world example (Thor)
âď¸ BIOS Settings
Setting | Value |
---|---|
Boot Mode | UEFI Only |
Secure Boot | Disabled |
VT-d / AMD-Vi | Enabled |
SR-IOV | Enabled (if available) |
Above 4G Decoding | Enabled |
Resize BAR | Disabled (optional; for stability) |
CSM | Disabled (forces UEFI boot) |
đš Phase 1 â Installer Crashes at Boot (Fix It!)
Problem
Your system crashes after:
Welcome to the Proxmox VE Installer
Loading drivers: .......
Cause
The efifb, vesafb, or simplefb drivers can grab your GPU before VFIO ever has a chance â and on single-GPU systems, this causes a lock-up.
â Solution: Use Temporary Boot Parameters
At the Proxmox ISO GRUB screen:
- Highlight: Install Proxmox VE (Graphical)
- Press E to edit
- Find the linux line and append the following:
intel_iommu=on iommu=pt video=efifb:off video=vesafb:off video=simplefb:off nomodeset
đ Use amd_iommu=on instead of intel_iommu=on if youâre on AMD.
- Press Ctrl + X or F10 to boot
You should now bypass the crash and enter the installer.
đš Phase 2 â Step-by-Step Install Walkthrough (Using Thor as Example)
System Example â Thor
Component | Specification |
---|---|
CPU | Intel i7-11700KF (8 cores / 16 threads) |
GPU | NVIDIA RTX 3090 (24 GB) |
RAM | 32 GB DDR4-3200 |
Storage | 500 GB NVMe (OS), 2 TB NVMe (VMs), 8 TB HDD |
Network | 2.5 GbE onboard |
Role | Proxmox node, GPU labs, Minecraft server |
đ§ Proxmox Install Process
- Choose your preferred language (e.g., English)
- Accept the license agreement
- Select your storage drive for the OS, 500 GB NVMe in my case.
- Optional: Choose ZFS (RAID1 if multiple disks, or Single Disk ZFS for snapshot support).
- Set location (e.g., Europe/London) and time zone
- Create a strong root password (save this securely!)
- Enter your admin email for alerts
- Choose the NIC (should be your fastest interface, for me its 2.5 GbE)
- Set hostname
- Use static IP (recommended)
- Example: 192.168.1.10
- Gateway: 192.168.1.1
- DNS: 1.1.1.1, 8.8.8.8
- Double check settings
- Click Install â takes a few minutes
- Reboot When Prompted
- Remove the USB stick
- System will reboot into Proxmox
đš Phase 3 â Lock In Passthrough After Install
1. Edit GRUB Configuration
nano /etc/default/grub
2. Replace the GRUB line with the
full passthrough config:
Intel Example (RTX 3090):
GRUB_CMDLINE_LINUX_DEFAULT="quiet intel_iommu=on iommu=pt rd.driver.pre=vfio-pci pcie_acs_override=downstream,multifunction"
AMD Example:
GRUB_CMDLINE_LINUX_DEFAULT="quiet amd_iommu=on iommu=pt rd.driver.pre=vfio-pci pcie_acs_override=downstream,multifunction"
3. Update GRUB and Initramfs
update-grub
update-initramfs -u -k all
4. Blacklist Nouveau
echo -e "blacklist nouveau\noptions nouveau modeset=0" > /etc/modprobe.d/blacklist-nouveau.conf
update-initramfs -u
5. Optional: Bind the GPU to VFIO
Find device IDs:
lspci -nn | grep -i nvidia
Then bind:
echo "options vfio-pci ids=10de:xxxx,10de:yyyy" > /etc/modprobe.d/vfio.conf
Load VFIO modules:
echo -e "vfio\nvfio_pci\nvfio_iommu_type1\nvfio_virqfd" > /etc/modules
Reboot the system:
reboot
â Summary Table
Stage | Action / Config |
---|---|
Installer wonât boot | Use: intel_iommu=on iommu=pt video=efifb:off video=vesafb:off video=simplefb:off nomodeset |
Installer boots OK | Install Proxmox VE to SSD/ZFS as usual |
After install (GRUB) | Add: rd.driver.pre=vfio-pci pcie_acs_override=downstream,multifunction |
Blacklist nouveau | blacklist nouveau, update initramfs |
Bind GPU with VFIO | Use vfio-pci + vendor IDs (lspci -nn) |
Reboot + verify | `dmesg |
đ Reference
Based on: