I recently tried to install Proxmox on my Dell Wyse 3040 thin client so it can act as a cluster member, since it’s arguably easier to setup a full Proxmox install on x64 based devices than it is to setup a QDevice. Proxmox has a great installer, you have the full GUI to manage the node (not that you need to do much with it as a QDevice), and you have the option of setting it up for other Proxmox services and containers even if it’s really not very capable. So, I’m committed to installing Proxmox on my 3040. But then the problems came. The Proxmox installer was unhappy with the eMMC storage, and wasn’t able to create a partition table on it. Well, I guess I’m diving down the more difficult path of installing Debian, and then installing Proxmox on top of it.

In addition to my use case, it’s not uncommon to install Proxmox on top of Debian if you want a specific root filesystem layout, since Proxmox will not install without LVM (or ZFS). In my case, I’m going to install ext4 on root with no LVM, since the disk is so small. Proxmox has a guide on instlaling Proxmox 6 on top of Debian Buster, but there are a few minor changes to be aware of with the more recent version. Not a big deal though, the guide is still mostly accurate and you should be able to follow it.

Video

Video form of this, if you prefer to follow along there: Video Thumbnail

Install Debian

First we need to install Debian. I started with the Debian 11 (Bullseye) netinst image, ran through it, deseleted the desktop, and selected SSH server. From there, it’s pretty much a standard Debian install. Of course, if you’re going through the trouble of installing Proxmox on Debian instead of ’natively’, you probably want to use a custom partition layout on the boot partition, and here is where you’d configure that.

Networking

Before installing Proxmox we need to make sure we have a static IP address, and the hostname resolves back to our public static IP address by setting it in the hosts file.

First, let’s set that static address by editing /etc/network/interfaces: Find the line for your adapter (mine is enp1s0) and modify it from dhcp to static and add the static IP. Here’s what mine looks like:

iface enp1s0 inet static
address 172.27.1.154
netmask 255.255.240.0
gateway 172.27.0.1

After that, we need to add this static address to the hosts file by editing /etc/hosts: By default, Debian will map 127.0.1.1 to your hostname and 127.0.0.1 to localhost. We need to change the second entry to point to our network-accessible IP instead. This is what mine looks like:

127.0.0.1   localhost.localdomain localhost
172.27.1.154 pve3040.palnet.net pve3040

# The following lines are desirable for IPv6- capable hosts
::1     localhost   ip6-localhost   ip6-loopback
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters

You should only need to change the first two lines here.

Once you’re done, do ifdown enp1s0 followed by ifup enp1s0 (obviously put in your own interface name) so the new IP address takes effect. Be careful if you’re doing this over SSH! You can use ip a to make sure the new IP is being used.

Add Proxmox Repository

Create a new file (nano /etc/apt/sources.list.d/pve-install-repo.list) and paste in the following contents for PVE 7 on Bullseye:

deb [arch=amd64] http://download.proxmox.com/debian/pve bullseye pve-no-subscription

Now download the Proxmox GPG key that the repository is signed with. The file naming convention has changed, so you can’t just go from proxmox-ve-release-6.x.gpg to proxmox-ve-release-7.x.gpg like the Proxmox guide would let you believe. I believe this is because the same key now signs the PBS releases as well as PVE.

wget http://download.proxmox.com/debian/proxmox-release-bullseye.gpg -O /etc/apt/trusted.gpg.d/proxmox-release-bullseye.gpg

APT Update, Upgrade, Install Proxmox

Now do the usual apt update and apt full-upgrade to prepare. This should also download package lists from PVE’s repo.

Now we can finally install Proxmox:

apt install proxmox-ve postfix open-iscsi

Postfix will ask you some questions, choose Local Only unless you know you have a better answer.

Proxmox also suggests we remove os-prober:

sudo apt remove os-prober

Now reboot, and DONE!

reboot now