Skip to content

How to Install Proxmox on the Raspberry Pi

Proxmox on Raspberry Pi tutorial thumbnail

Source

Content

Proxmox Virtual Environment is an open-source virtualization platform with a powerful web interface for managing virtual machines and containers on a Raspberry Pi. Recent Proxmox VE releases support ARM systems, but the upstream project does not ship ARM64 builds. This guide uses PXVirt, a third-party fork that maintains feature parity with Proxmox VE and adds ARM optimizations.

  • Bookworm → Proxmox 8
  • Trixie → Proxmox 9

Use a clean 64-bit Raspberry Pi OS Lite install (Bookworm or Trixie). Avoid heavy VMs; newer Pis (especially Pi 5) work best.

Requirements

  • Raspberry Pi OS Lite 64-bit (Bookworm or Trixie)
  • Static IP address (DHCP reservation recommended)
  • Clean OS install recommended

Preparing the Raspberry Pi

  1. Update packages:
bash
sudo apt update
sudo apt upgrade
  1. Install curl (needed for the PXVirt GPG key):
bash
sudo apt install curl
  1. Configure a static IP (router DHCP reservation or Pi-side config).

Modify /etc/hosts

Proxmox expects the hostname to resolve to the Pi’s LAN IP, not 127.0.0.1.

bash
sudo nano /etc/hosts

Change:

127.0.0.1            raspberrypi

To (replace with your Pi’s IP):

192.168.0.32            raspberrypi

Verify:

bash
hostname --ip-address

Disable Cloud-Init hosts management

Cloud-init can overwrite /etc/hosts on reboot. Comment out update_etc_hosts:

bash
sudo nano /etc/cloud/cloud.cfg

Under cloud_init_modules, change:

  - update_etc_hosts

To:

#  - update_etc_hosts

Set root password

Required for Proxmox web login:

bash
sudo passwd root

Add the PXVirt repository

  1. Import GPG key:
bash
curl -L https://mirrors.lierfang.com/pxcloud/lierfang.gpg | sudo tee /usr/share/keyrings/lierfang.gpg >/dev/null
  1. Load OS codename:
bash
source /etc/os-release
  1. Add repository:
bash
echo "deb [arch=arm64 signed-by=/usr/share/keyrings/lierfang.gpg] https://mirrors.lierfang.com/pxcloud/pxvirt $VERSION_CODENAME main" | sudo tee /etc/apt/sources.list.d/pveport.list
  1. Refresh package lists:
bash
sudo apt update

Prepare networking for Proxmox

Disable NetworkManager

bash
sudo systemctl disable NetworkManager
sudo systemctl stop NetworkManager
sudo systemctl mask NetworkManager

Install ifupdown2

bash
sudo apt install ifupdown2

If you see error: Another instance of this program is already running.:

bash
sudo rm /tmp/.ifupdown2-first-install
sudo apt install ifupdown2

Configure /etc/network/interfaces

bash
sudo nano /etc/network/interfaces

Add (replace placeholders):

auto lo
  iface lo inet loopback

auto eth0
  iface eth0 inet manual

auto vmbr0
iface vmbr0 inet manual
        address <IPADDRESS>
        gateway <GATEWAY>
        dns-nameservers <DNS>
        netmask 255.255.255.0
        bridge-ports eth0
        bridge-stp off
        bridge-fd 0

Example:

auto lo
  iface lo inet loopback

auto eth0
  iface eth0 inet manual

auto vmbr0
iface vmbr0 inet manual
        address 192.168.0.200
        gateway 192.168.0.1
        dns-nameservers 1.1.1.1 1.0.0.1
        netmask 255.255.255.0
        bridge-ports eth0
        bridge-stp off
        bridge-fd 0

Reboot to apply:

bash
sudo reboot

Install Proxmox VE

bash
sudo apt install proxmox-ve postfix open-iscsi pve-edk2-firmware-aarch64

During Postfix setup, choose Local only if unsure:

Postfix configuration — Local only

Leave the default system mail name unless you know otherwise:

Postfix system mail name

If installation fails with Errors were encountered while processing: pxvirt-spdk, re-run the install command.

Access the web interface

Get the Pi IP:

bash
hostname -I

Open in a browser:

https://<IPADDRESS>:8006

Log in as root with the password set earlier:

Login to Proxmox VE

After login, use the web UI to create VMs and configure the host:

Proxmox web interface

Key Takeaways

  • Official Proxmox VE has no ARM64 builds; PXVirt is the third-party fork used for Raspberry Pi.
  • Requires 64-bit Raspberry Pi OS Lite (Bookworm or Trixie), a static IP, and hostname/IP alignment in /etc/hosts.
  • Disable NetworkManager and configure vmbr0 bridging before install to avoid losing network access.
  • Web UI: https://<pi-ip>:8006 as user root.
  • Keep VM workloads light; Pi 5 is the recommended hardware class for this experiment.

Curated technical notes — open source on GitHub