how to install proxmox on raspberry pi

Getting started with Proxmox on Raspberry Pi (Virtualization server)

New Raspberry Pi models come every year with increased CPU power and RAM, and virtualization is now a recurring topic on this website. This wasn’t always the case. Today, we’ll discuss a solution to host virtual machines (VM) on Raspberry Pi that I haven’t written about yet: Proxmox.

Proxmox is not available directly on Raspberry Pi, but there is a port of Proxmox for ARM64 we can use to achieve the same results. A repository needs to be added for APT, and the installation is straightforward once the prerequisites are installed.

In this article, I’ll give you a step-by-step guide, so you don’t lose as much time as I did when trying it :-).

Also, I must say right away that even though I’ll show you how to install this solution on your Raspberry Pi, it doesn’t mean that’s a good idea. See this as an experiment, a proof of concept, not a formal recommendation. Using a traditional server with Proxmox on Debian is a better choice when possible.

If you’re looking to quickly progress on Raspberry Pi, you can check out my e-book here. It’s a 30-day challenge where you learn one new thing every day until you become a Raspberry Pi expert. The first third of the book teaches you the basics, but the following chapters include projects you can try on your own.

Want the best experience? Become a premium member for ad-free browsing, access exclusive content, and ask questions in our private forums. Your membership helps support the site!

Introducing Proxmox

If you are reading this, you are probably already familiar with Proxmox, but I will still start with a brief introduction for those who randomly came across this article.

What is Proxmox?

Proxmox is an open-source server management and server virtualization platform.
That’s the official definition, but to clarify, it’s a solution you can use to host virtual machines and containers with a simple web interface.

Personally, I’m used to VMware ESXi (that you can also install on a Raspberry Pi) and a bit of Hyper-v, but I haven’t used Proxmox on production servers in my system administrator job. From what I have seen on the Raspberry Pi, it seems interesting.

I already explained on this website how to use QEMU on Raspberry Pi, you can see it as an interface for it (I know that’s probably far too restrictive, but it’s a simple way to see it). QEMU is a great tool to create virtual machines, but as everything is done via command lines, it’s not the easiest solution for beginners. Proxmox can be a way to make this easier.

What about Pimox?

As with many other projects, Proxmox doesn’t support Raspberry Pi, so we have to use a workaround to install it on our devices. Pimox is a port of Proxmox created especially for the Raspberry Pi.

In a previous version of this tutorial, I was using it to quickly install everything (you can find the Pimox project on GitHub here). But it’s no longer updated, and now that 64-bits version of Raspberry Pi OS are stable, it’s not really needed anymore.

How to install Proxmox on Raspberry Pi

Here are the required steps to install Proxmox on a Raspberry Pi:

  • Install a compatible OS (Debian 11 or RPI OS 64 Bits).
  • Update the operating system with apt.
  • Add the repository for the Proxmox port.
  • Install the Proxmox packages and dependencies.

Once done, a web interface will be available to configure everything else.

Proxmox requirements: OS and Raspberry Pi

The main requirement is to use a 64-bit operating system, for example, you can use:

Download Your Essential Linux Commands Guide!
It's a free PDF guide containing every Raspberry Pi Linux command you should know!
Download now

I highly recommend starting with a new SD card, even if you already use one of these distributions because Proxmox will change many things on your system. I don’t want you to break your current installation, so start with a new one.

So, the first step is to install the 64-bit version of Raspberry Pi. It’s the same process as usual, use Raspberry Pi Imager or whatever tool you prefer. Pick the latest version in 64 bits (Lite is fine), and install it on your Pi.

I haven’t tried on another model, but using a Raspberry Pi 4 is also one of the requirements on the GitHub page, so make sure you use this model.

Update your operating system

Once your system is installed and configured correctly, you also need to update everything. You can use the welcome menu to do it, or type these two commands:
sudo apt update
sudo apt upgrade -y

The script we’ll use later will probably do it, but it’s a good habit to get to secure your Raspberry Pi.

As with any server project, try to use an Ethernet cable instead of the Wi-Fi connection, and you can also enable SSH and/or VNC to do the following steps from your computer if you want.

Are you a bit lost in the Linux command line? Check this article first for the most important commands to remember and a free downloadable cheat sheet so you can have the commands at your fingertips.

Network configuration

I recommend setting up a static IP address for your Raspberry Pi before going any further. It will be easier for you, and more stable for a server anyway.

You also need to add this IP address to your hosts file:

  • Open the hosts file:
    sudo nano /etc/hosts
  • Find the line with your hostname near the end, and replace the default IP address (127.0.1.1), for example:
    192.168.1.100 proxmox-server

    Check this tutorial on how to find your IP address if needed.

Set a password for root

Proxmox will use the root account in the background, but also for logging in to the web interface, so you need to set a password for it (not done by default on most distributions):
sudo passwd root

Adding the Proxmox repository to the APT sources

Next, we need to add the Proxmox port repository to our sources.list for APT (it means getting access to more packages via the APT commands).

Here are the steps:

  • Add the server URL to a new configuration under /etc/apt:
    echo 'deb [arch=arm64] https://mirrors.apqa.cn/proxmox/debian/pve bookworm port' | sudo tee /etc/apt/sources.list.d/pveport.list
  • Add the server key to your trusted sources:
    curl -L https://mirrors.apqa.cn/proxmox/debian/pveport.gpg | sudo tee /etc/apt/trusted.gpg.d/pveport.gpg >/dev/null
  • Run an update to add this source for the next installations:
    sudo apt update

Installing Proxmox packages with APT

We can now finally install the packages for Proxmox, using this simple command:
sudo apt install proxmox-ve postfix open-iscsi ifupdown2

During the installation of the packages, you’ll be asked to configure a mail server. If you don’t know how to do this, just select “Local only” from the list and leave the defaults as they are (press Enter).

After a few minutes, everything is installed and Proxmox is ready to use.

Download Your Essential Linux Commands Guide!
It's a free PDF guide containing every Raspberry Pi Linux command you should know!
Download now

First steps with Proxmox on Raspberry Pi

Once installed, the fun part starts, as we can now access the Proxmox interface and try to create our first VM.

To be honest, I haven’t had great success with it, so I’ll share everything I have learned, but there is probably something missing as it doesn’t work as expected. I’m a bit disappointed with the result I got.

Proxmox web interface

If everything has gone well until now, the Proxmox web interface should be available at https://IP:8006.
The IP address is the one you set in the installation script, so for example https://192.168.1.100:8006.

Download Your Essential Linux Commands Guide!
It's a free PDF guide containing every Raspberry Pi Linux command you should know!
Download now

You’ll get an SSL error as we don’t have a certificate yet, but you can skip it (something like “Advanced” > “Proceed anyway” or similar depending on the browser you use).

Then you’ll get a login form. The default credentials for Proxmox are:

  • Login: root
  • Password: the same as for your Linux system (you set it at the beginning of this tutorial).

Finally, you can access the usual interface of Proxmox. If you are familiar with it, you probably don’t need me anymore!

You’ll get an error message saying you don’t have a valid subscription. Subscriptions are for support only, you don’t need one for a simple test.

Upload ISO images on Proxmox

Before installing anything, you’ll need ISO images for the system you want to try in your first virtual machine.

You can upload any image you have on your computer, or even download it directly to Proxmox from a web URL.

Click Datacenter in the left menu, select your node, and click Local. Then go to the ISO image and click the appropriate button (either “Upload” or “Download from URL”).

I think the images need to be for the ARM64 architecture, but I haven’t tested others to be honest.

Create a network bridge

If you want to have network access in your virtual machines, you need to create a network bridge first. Here’s how to do it:

  • Click on your node in the left menu (server name under “Datacenter”).
  • Go to System > Network.
  • Click on “Create” and then “Linux bridge”
  • Fill the form with the values you want to use, for example:
  • Save and make sure to click “Apply Configuration” to make it available for virtual machines.

Create a virtual machine with Proxmox

But most issues occurred while creating a new virtual machine.
The main issue is that you can’t use IDE peripherals. If you set your VM with an IDE drive or CD-ROM, it won’t start. Instead, you’ll get an error like “QEMU exited with code 1”.

Here are the steps to create a virtual machine with Proxmox:

  • Click “Create VM” in the top-right corner.
  • Enter a name for your system:
  • Click next, and choose “Do not use any media”.
    It will create an IDE CD Drive by default, and we can’t use it.
  • In the System tab, make sure to switch the BIOS to UEFI.
    The console is not working for me if I keep the default value (SeaBios).
  • Adjust the drive size if needed (32 GB by default, make sure you have enough space on your SD card).
  • You can adjust a bit the CPU and memory settings, but remember you are on a Raspberry Pi, so you don’t have much available.
  • For the network, you can start without it, but if you want to use it, you need to create a network bridge first (see the previous section).

Once done, your virtual machine will appear in the left menu, but there are a few more steps:

  • Pick the VM in the left menu, and go to “Hardware”.
  • Select the CD Drive line and remove it.
  • Then click Add > CD/DVD Drive. Choose SCSI and type 2 in the second field.
    You can then choose your ISO image to start with:

You should now be able to start the virtual machine by clicking “Start” in the top-right corner when the VM is selected.

Click on “Console” to visualize the virtual machine display and install your operating system.

Download Your Essential Linux Commands Guide!
It's a free PDF guide containing every Raspberry Pi Linux command you should know!
Download now

🛠 This tutorial doesn't work anymore? Report the issue here, so that I can update it!

Want to chat with other Raspberry Pi enthusiasts? Join the community, share your current projects and ask for help directly in the forums.

Final thoughts

When possible, I would recommend installing Proxmox on a traditional PC, with Ubuntu, for example. I tested it in the linked article, and it’s way better. But as an experiment, to learn more about virtualization, or to run tiny servers on a Raspberry Pi 5, I think it’s interesting.

As a whole, Proxmox seems a good solution to install virtual machines on Raspberry Pi, as the installation process with VMWare ESXi was much more complicated.

If you are looking to run Raspberry Pi OS on a virtual machine, you can also do it directly on your computer, it’s much more stable. I explain everything in this tutorial.

Whenever you’re ready, here are other ways I can help you:

The RaspberryTips Community: If you want to hang out with me and other Raspberry Pi fans, you can join the community. I share exclusive tutorials and behind-the-scenes content there. Premium members can also visit the website without ads.

Master your Raspberry Pi in 30 days: If you are looking for the best tips to become an expert on Raspberry Pi, this book is for you. Learn useful Linux skills and practice multiple projects with step-by-step guides.

The Raspberry Pi Bootcamp: Understand everything about the Raspberry Pi, stop searching for help all the time, and finally enjoy completing your projects.

Master Python on Raspberry Pi: Create, understand, and improve any Python script for your Raspberry Pi. Learn the essentials step-by-step without losing time understanding useless concepts.

You can also find all my recommendations for tools and hardware on this page.

How would you rate this article?

Click on a star to rate it!

Average rating / 5. Vote count:

No votes so far! Be the first to rate this post.

As you found this post useful...

Spread the word!

We are sorry that this post was not useful for you!

Let us improve this post!

Tell us how we can improve this post?

Similar Posts

2 Comments

  1. Thank you for sharing this post about virtualization on arm64. I think it is an amazing use case.
    I have successfully installed pimox7 on a pine64 device running dietpi.
    And I get to the point where VMs are created (cpu host, no ide, scsi ) but not running.
    I am stuck with this error :
    kvm: kvm_init_vcpu: kvm_arch_init_vcpu failed (0): Invalid argument
    TASK ERROR: start failed: QEMU exited with code 1

    Best regards,

  2. I don’t know how relevant this is now; but after many trial and error the following setting will initialize a display.

    BIOS : OVMF (UEFI)
    Display : Serial Terminal 0 (Serial0)
    Machine : Default (i440fx)
    -found q35 will give you a graphical for the first menu than encounter another error
    Add –
    Serial Port (Serial0)

    Connect via xterm.js

    However i cannot get the vmbr0 device to bridge an ip to VM’s enp0s18 interface.

    suggestions?

Comments are closed.