Installing Proxmox

Description

Proxmox Virtual Environment is a complete, open-source server management platform for enterprise virtualization. It tightly integrates the KVM hypervisor and Linux Containers (LXC), software-defined storage and networking functionality, on a single platform. With the integrated web-based user interface you can manage VMs and containers, high availability for clusters, or the integrated disaster recovery tools with ease.

BIOS Settings

In the BIOS, ensure the below are enabled:

  • Intel(R) Virtualization Technology
  • VT-d
    Personally I disable CSM Support and use UEFI exclusively.
    Additionally, I also like to tweak the machine for reduced power consumption:
  • C State Support set to setting with highest level of C-State (e.g., C1C3C6C7C8).
  • Disable PxE and Wake on Lan
  • Enable Enhanced Power Saving Mode
  • Disable all other Wake on* options
  • Enable ASPM Support for PCIe

Initial Setup

The installation is straightforward, download the ISO, flash it to a USB drive using your tool of choice, and if you get stuck, follow the instructions at Installation - Proxmox Virtual Environment.

On the first screen where choosing your Target Harddisk, click Options and reduce maxroot to 32.0 (GiB). As the name suggests this will use 32GB for your root volume, and the balance for local-lvm, which is where your containers and virtual machines can be stored.

Follow the rest of the steps in the wizard, and you should end up with the machine booting into the command line with details showing what IP address and port you can access the web UI on.

This machine will now be a "Node" in your Proxmox environment. If you build more physical machines running Proxmox VE, they will each be a node, which you could group together under one Proxmox Datacenter.

Storage

Proxmox runs Debian under the hood, and thus has direct access to all the storage devices on your machine. However, if you want to use external USB hard drives as storage, you will have to manually mount them in the CLI (and handle things like automount/mount at boot). As you might assume, Proxmox doesn't particularly handle disconnected drives well.

If you have multiple drives in your system, you have the option to passthrough entire drive(s) to virtual machines, e.g. if you're running a NAS in a Virtual Machine, such as OpenMediaVault.

local vs local-lvm

local is folder where you can store ISO images, backups of containers/VMs, templates, and other files. local-lvm is a thin provisioned volume where you can store container and VM volumes that act as virtual hard drives inside the guest. In practice, you'll place an Installer ISO in local, and the guest's virtual C:\ drive on local-lvm.

Authentication

Later on you'll want to create additional users to separate privileges. In particular, running commands remotely using the API, and using the mobile app will require API tokens. For this I'd highly recommend creating separate users instead of using the root account.

PVE Users

When creating a new user, you'll see an option where you can choose "Linux PAM standard authentication" or "Proxmox VE authentication server". PAM uses the OS' user accounts (e.g., the ones you create in the shell using adduser), whilst PVE accounts are specific to Proxmox. You'll want to choose the latter so that Proxmox can manage the new account.

API Tokens

Each API Token is linked to a user. Something that I overlooked initially is that both the User Account and the API Token need to be granted permissions. This will come in particularly handy if you make use of SPICE to remotely access Linux Virtual Machines.

Mobile App

There is a mobile app that works much better on a smartphone than the web UI. I find it particularly useful for (re)starting virtual machines that use GPU and USB passthrough, allowing you to use your Proxmox server as a sort-of thin client to access a specific VM.

Community Repositories

  • Package Repositories - Proxmox VE
  • Comment out the two repos in:
    • /etc/apt/sources.list.d/ceph.list
    • /etc/apt/sources.list.d/pve-enterprise.list
  • Append the below line to the file /etc/apt/sources.list:
    • deb http://download.proxmox.com/debian/pve bookworm pve-no-subscription
  • Now you can run apt update && apt upgrade -y

See Also

External Links