Homelab Installation

Install Proxmox on a homelab host with the right BIOS settings, storage choices, and installer decisions before the rest of the lab begins to depend on them.

Published October 24, 2024 · Updated January 30, 2025

Homelab Installation

By the time Proxmox boots cleanly for the first time, most of the expensive mistakes are already behind you.

That is why this page spends time on the boring part.

The BIOS toggles, storage layout, installer path, and first network choices are not glamorous, but they decide whether the host feels steady later or whether every passthrough, ZFS change, and guest deployment starts with "I probably should have done this differently on day one."

If you want the conceptual picture first, start with Proxmox Basics. If you are already at the keyboard with a machine to build, this is the page.

If second-hand disks are part of the plan, validate them first in Used Drive Validation Before Deployment. It is much easier to fail a drive before pool creation than to discover its personality during a resilver.

Target System

This guide assumes a specific homelab host shape:

ComponentSpecificationPurpose
MotherboardMSI MAG X570 TOMAHAWK WIFIBase platform
CPUAMD Ryzen 9 5950X (16-core)Virtualization host
RAM64GB DDR4 ECCVM allocation & ZFS ARC cache
GPUNVIDIA RTX 3090AI inference
M.2_12TB NVMeProxmox OS root filesystem RAID1
M.2_22TB NVMeProxmox OS root filesystem RAID1
SATA 11TB HDDBackup/secondary storage
SATA 21TB HDDBackup/secondary storage
SATA 38TB WD RED NAS HDDTrueNAS NAS storage (mirror leg 1)
SATA 48TB WD RED NAS HDDTrueNAS NAS storage (mirror leg 2)
SATA 58TB WD RED NAS HDDTrueNAS NAS storage (hot spare)

That exact hardware is not required, but the decisions below assume the same kind of host: one Proxmox box expected to run real services, not just throwaway experiments.

Those three WD RED drives matter later. They are either the basis of a temporary host-side naspool, or the clean handoff point into TrueNAS SCALE On Proxmox when the NAS role needs its own VM, UI, and alerting path.

The Hardware Shape That Matters

What matters most here is not brand loyalty. It is capability.

  • SVM must be available for KVM virtualization.
  • IOMMU must be enabled if you ever want passthrough.
  • Storage should be planned around ZFS early instead of treated like an afterthought.
  • The host should have enough memory that ZFS and guests are not immediately fighting over scraps.

If that foundation is wrong, everything after it becomes compensating behavior.

BIOS Configuration

Before you install Proxmox, get the firmware side into a sane state.

Virtualization And CPU Features

Path: Advanced > CPU Features

SettingValueReason
SVM (Secure Virtual Machine)ENABLEDRequired for KVM hypervisor
SMT (Simultaneous Multithreading)ENABLEDUtilizes all 32 vCPU threads
Core Performance BoostENABLEDDynamic frequency scaling
Precision BoostENABLEDImproves clock speeds under load

IOMMU Configuration

Path: Advanced > AMD CBS (or Advanced > Chipset)

SettingValueReason
AMD-Vi (IOMMU)ENABLEDCritical for GPU/device passthrough
IOMMU Multicast Address FilteringENABLEDBetter VM network performance

GPU Passthrough Settings

Path: Advanced > Integrated Peripherals

SettingValueReason
CSM (Compatibility Support Module)DISABLEDUse UEFI only for GPU passthrough
Secure BootDISABLEDSimplifies GPU OVMF boot + NVIDIA driver installation
Above 4G DecodingENABLEDAllocates PCIe memory above 4GB

Important note on Secure Boot: Proxmox plus NVIDIA is easier to reason about with Secure Boot disabled. If you want Secure Boot later, treat that as a second task after the host is stable.

Path: Advanced > PCI Subsystem

SettingValueReason
PCIe GenerationGEN4 or AutoX570 native PCIe 4.0 support
PCIe Power ManagementDISABLEDPrevents GPU sleep states
ASPM (Active State Power Management)DISABLEDEnsures stable GPU operation

Power Management For 24/7 Operation

Path: Advanced > Power Management

SettingValueReason
Global C-State ControlDISABLEDPrevents CPU power states
CPU Enhanced Halt (C1E)DISABLEDKeeps CPU active for VMs
Package C-StateC0 (Disabled)No deep sleep states
APM (Advanced Power Management)DISABLEDDisables suspend/hibernation
ErP (Energy-Related Products)DISABLEDCan interfere with boot
Wake on LANDISABLED by defaultEnable only when remote power-on is part of the recovery plan

If the host is meant to stay on all the time and you do not care about waking it remotely, leaving Wake-on-LAN off is still the clean default.

If remote recovery is part of the design, do not treat that row as a universal rule. Read Wake-on-LAN For Proxmox and enable it on purpose instead of by habit.

Storage Controller Configuration

Path: Advanced > Onboard Devices

SettingValueReason
M.2 Mode (Slot 1)NVMeAuto-detected for NVMe drives
SATA ModeAHCIStandard storage protocol
SATA Hot SwapENABLEDAllows hot-swap (optional)
AHCI PrefetchENABLEDImproves small file performance

BIOS Verification Checklist

After Proxmox is installed, confirm the firmware choices actually landed:

# After Proxmox installation, verify BIOS settings took effect:
 
# Check IOMMU is enabled
dmesg | grep -i iommu
 
# Expected output:
# AMD-Vi: Found IOMMU at 0000:00:00.2 cap 0x40
# AMD-Vi: Found IOMMU at 0000:10:00.2 cap 0x40
 
# Verify virtualization support
grep -o 'svm' /proc/cpuinfo | head -1
 
# Check PCIe GPU detection
lspci | grep -i nvidia
 
# View IOMMU groups (critical for passthrough)
for g in $(find /sys/kernel/iommu_groups -maxdepth 1 -mindepth 1 -type d | sort -V); do
    echo "IOMMU group $(basename $g):"
    lspci -nns $(cat $g/devices/*/uevent | grep PCI_SLOT_NAME | cut -d= -f2) 2>/dev/null
done

Pre-Installation Checklist

Hardware Preparation

  • BIOS updated to latest version
  • Both NVMe drives physically present if you are targeting RAID1 later
  • SATA drives connected if backup or NAS storage will follow soon after install
  • RTX 3090 installed in the primary PCIe slot if GPU work is part of the plan
  • 64GB RAM recognized correctly in BIOS
  • Network cable connected

Network Planning

ItemValueNotes
Static IP Address192.168.x.xOutside DHCP range
Netmask255.255.255.0Standard /24 subnet
Gateway192.168.x.1Router IP
DNS Primary8.8.8.8 or 1.1.1.1Temporary until infrastructure DNS changes later
FQDN Hostnamepve.home.lanExample only

Storage Planning

Think about the storage story before you click through the installer.

If any of the disks are reused rather than new, run the destructive preflight in Used Drive Validation Before Deployment before you commit them to the layout below.

Current configuration (single-drive style):

  • one 2TB NVMe as the active Proxmox root filesystem
  • ZFS selected from the start
  • enough free space intentionally left for sane pool behavior

Target configuration (mirrored host storage):

  • two matching 2TB NVMe drives
  • ZFS RAID1 for the Proxmox root pool
  • roughly 2TB usable with redundancy instead of more raw risk

If the WD RED drives are destined for NAS duty:

  • keep them out of casual reuse during the host install
  • document their serial numbers early
  • continue later with TrueNAS VM Build And Pool Design once the Proxmox host itself is stable

If you know a mirror is coming, plan for it now even if you install on one disk first.

Create The Installer

Windows

Use Rufus.

  • Device: your USB drive
  • Boot selection: Proxmox ISO
  • Partition scheme: GPT recommended
  • Click START and confirm data will be erased

macOS

Option A: Raspberry Pi Imager

# Download from https://www.raspberrypi.com/software/
# Open application, select:
# - Choose device: No filtering (or leave generic)
# - Choose OS: Use custom image
# - Select Proxmox ISO file
# - Insert USB and write

Option B: Command Line

# Insert USB drive (≥4GB)
diskutil list
 
# Unmount USB (replace diskX with your USB disk number)
diskutil unmountDisk /dev/diskX
 
# Write ISO to USB (this erases the USB)
sudo dd if=~/Downloads/proxmox-ve_8.4-1.iso of=/dev/rdiskX bs=4m
 
# OR with progress:
 
sudo dd if=~/Downloads/proxmox-ve_8.4-1.iso of=/dev/rdiskX bs=4m status=progress
 
# Wait for completion, then eject USB
diskutil eject /dev/diskX

If you are not comfortable with dd, do not pretend. Use the graphical tool and move on.

Boot The Installer

  1. Insert the bootable USB.
  2. Boot the machine and use F11 or the BIOS boot selector.
  3. Choose Install Proxmox VE from the boot menu.

If The Graphical Installer Hangs

This is a real-world annoyance on some X570 boards. Treat it as normal troubleshooting, not as a sign that the build is doomed.

Option A: Add A Boot Parameter

  1. Highlight Install Proxmox VE at the GRUB screen.
  2. Press e.
  3. Find the line starting with linux /boot/linux26.
  4. Add nomodeset to the end.
  5. Boot with Ctrl+X or F10.

If that is not enough, use one of these instead:

nomodeset iommu=pt video=efifb:off

Or AMD-specific:

nomodeset amd_iommu=on iommu=pt

Option B: Use The Console Installer

If the graphical path keeps fighting you, switch to Install Proxmox VE (Console) and continue. The objective is a working host, not aesthetic loyalty to the graphical installer.

Installation Choices That Matter

Target Disk And Filesystem

For a current single-drive style install:

  1. Filesystem: zfs (RAID0)
  2. Harddisk 0: your active NVMe drive
  3. Harddisk 1: -- do not use --
  4. Compression: zstd

If you want the compression tradeoff spelled out plainly:

MethodSpeedRatioCPU UsageBest For
lz4Very FastLow-MediumLowGeneral use, default choice
zstdFastHighMediumBest balance
gzipSlowHighHighMaximum compression
lzjbFastLowLowLegacy systems
offN/ANoneNoneSSDs with limited writes

Advanced options:

  • disksize: 1800 GB
  • swapsize: 8 GB
  • minfree: 10

For a future mirrored host install:

  1. Filesystem: zfs (RAID1)
  2. Harddisk 0: first 2TB NVMe
  3. Harddisk 1: second matching 2TB NVMe
  4. Compression: zstd

Hostname And Network

  • Hostname example: pve.home.lan
  • IP address example: 192.168.1.100
  • Netmask: 255.255.255.0
  • Gateway: router IP
  • DNS server: temporary public DNS until the internal DNS story is in place

Password And Email

  • Set a strong root password and keep it somewhere real.
  • The email address can start as a placeholder if needed, but you should expect to replace it later.

That later step lives in Email Notifications.

After Installation

Once the installer finishes:

  1. Reboot into Proxmox.
  2. Remove the USB drive.
  3. Confirm the host reaches its static address.
  4. Use the web UI for the next stage of bring-up.

From here, the right next move depends on what kind of lab you are building.

Comments

Sign in with GitHub to leave a comment or reaction.