Verified against Proxmox VE 9.2.4 · Proxmox Backup Server 4.2.5 · Ceph Squid / Tentacle · Debian 13 (Trixie) · Linux kernel 7.0 (PVE 9.2 default) · 2026-08-12
○Not yet marked complete on this device.
Proxmox VE is a set of Debian packages. The ISO installer is a
convenience that partitions the disks, installs those packages and
configures them; it is not a different product. So installing PVE onto a
Debian system you already have is a supported path, documented by
Proxmox, and it produces a working node.
It is also the path where more goes wrong, because everything the ISO
would have decided is now yours to get right — and several of those
things are invisible until much later.
When this is the right path
A rented dedicated server. Hetzner, OVH, Scaleway and the rest hand
you a machine with Debian already on it and a rescue system, not a
console you can boot an ISO from. This is the primary reason the path
exists.
A machine you cannot reach physically or out of band. No IPMI, no
crash cart, no remote KVM. Converting an already-running Debian install
over SSH is possible; booting an ISO is not.
A provider image with mandatory customisation. Some hosts require
their own kernel, network configuration or agent. Starting from their
Debian image keeps that intact.
And when it is not:
“I already have Debian on this server and reinstalling is
inconvenient.” If you can boot an ISO, boot the ISO. The convenience
saved is twenty minutes; the cost is every gap in the table below,
carried for the life of the node.
“I want a custom partition layout the installer will not do.” The
answer file exposes hdsize, swapsize, maxroot, maxvz and
minfree, plus full ZFS geometry. Reach for that first.
Prerequisites, in the order they bite
A resolvable, non-loopback hostname
This is the one that produces the most confusing failure. From the
documentation: “The hostname of your machine must be resolvable to an IP
address. This IP address must not be a loopback one like 127.0.0.1.”
Read-only / Safecheck it before you install anything— Read-only. The address printed must be the machine real address. If it is 127.0.0.1 or 127.0.1.1, fix /etc/hosts before continuing.
Many Debian cloud and provider images ship with the hostname mapped to
127.0.1.1, which is the Debian convention and is wrong for Proxmox. The
/etc/hosts line needs the real address:
Get this wrong and pve-cluster fails to start, producing
ipcc_send_rec[1] failed: Connection refused from essentially every
pve* command. The message names an IPC failure and says nothing about
hostname resolution, which is why people spend an hour on it.
Nothing that rewrites /etc/resolv.conf
Packages such as resolvconf can overwrite the file and break DNS after
the conversion. Check what manages it before you start, and remove or
configure it deliberately.
A backup, or a machine you are willing to lose
This procedure replaces the kernel and reboots. On a remote machine with
only a rescue system to fall back on, that reboot is the risk point.
Confirm you know how to reach the provider’s rescue mode before you
run the reboot, not after.
The procedure
The order matters. Each step assumes the previous one completed.
Configuration changestep 1 — add the Proxmox repository— Writes a deb822 .sources file. Debian 13 Trixie is the correct suite for PVE 9; using bookworm here installs PVE 8 packages onto Trixie and produces an unsupportable mixture.
Configuration changestep 2 — install and verify the repository key— Downloads the archive keyring. Verify the checksum before apt trusts the key: a key fetched over a compromised path signs packages you then install as root.
Compare that hash against the value published on the Proxmox wiki page
for this procedure. It is the only integrity check in the whole path, and
skipping it means trusting a plain wget to bootstrap the trust that
every subsequent package install depends on.
Service impact possiblestep 3 — update and full-upgrade— Brings the existing Debian system current before adding Proxmox packages. Do this as its own step so that any breakage here is attributable to Debian rather than to the conversion.
apt update
apt full-upgrade
Service impact possiblestep 4 — install the Proxmox kernel and reboot into it— Installs the PVE kernel and reboots. This is the risk point on a remote machine: if the new kernel does not boot, recovery is the provider rescue system.
Read-only / Safestep 5 — confirm you are on the Proxmox kernel— Read-only. Do not continue until uname -r reports a -pve kernel. Installing proxmox-ve while running the Debian kernel is the ordering mistake that produces a half-converted system.
uname -r
Service impact possiblestep 6 — install Proxmox VE— Installs the platform. postfix prompts for a mail configuration; choose Local only unless you have a relay to point at. open-iscsi and chrony are part of the documented set.
apt install proxmox-ve postfix open-iscsi chrony
Service impact possiblestep 7 — remove the Debian kernel and os-prober— Removes the Debian kernel so the machine cannot boot back into a non-PVE kernel, and os-prober, which would add guest disks it finds to the boot menu.
os-prober scans block devices for other operating systems and adds
entries to the GRUB menu. On a hypervisor those block devices are VM
disks, so it can add boot entries for your guests’ operating systems to
the host’s boot menu — which is confusing at best and, on a shared
machine, an information disclosure about what is running.
Verifying the result
Read-only / Safedoes this look like a Proxmox node?— Read-only. Version, services and the API socket. pveversion --verbose lists the component versions and is the artefact to compare against an ISO-installed node.
pveversion --verbose
systemctl status pve-cluster pvedaemon pveproxy pvestatd --no-pager
ss -tlnp | grep -E ':8006|:3128'
The GUI should answer on port 8006. If pve-cluster is not running, the
hostname resolution check from the prerequisites is the first thing to
revisit.
What the ISO would have done that this did not
This is the part that matters six months later.
Area
ISO installer
This path
Root filesystem
ZFS mirror, or LVM with a sized data volume
Whatever Debian or the provider chose — often a single ext4 partition
Boot redundancy
An ESP on every selected disk, in the synced set
One ESP, on one disk
local-lvm thin pool
Created and registered as PVE storage
Absent; guest storage must be configured by hand
Swap sizing
Sized against RAM, clamped to 4–8 GiB
Provider default, frequently a large swap file
Network
A vmbr0 bridge with the management address on it
The provider’s flat interface configuration; no bridge
Repository set
Enterprise repository configured
No-subscription, from step 1
Kernel
PVE kernel only, from the start
PVE kernel added, Debian kernel removed by hand
Time sync
chrony
Whatever the image had, until step 6
Two of those rows are the ones that actually cause incidents.
No vmbr0. Guests need a bridge. The provider’s configuration has
the address on a physical interface, and converting that to a bridge is
the step where you lose the network if you get it wrong — on a machine
whose recovery path is a rescue system. Do it with a rollback timer and
read the networking part of this course first; several providers also
require MAC-address restrictions that make the naive bridge
configuration fail in provider-specific ways.
No local-lvm. A default Debian layout gives the root filesystem the
whole disk, so there is no volume group space for a thin pool. You either
plan the partitioning before the conversion, or you accept directory
storage on the root filesystem, which is a real choice with real
consequences — no thin provisioning, no LVM snapshots, and a full root
filesystem taking the host down rather than just the guest.
Common mistakes
Hostname resolving to 127.0.1.1.pve-cluster will not start and
every pve* command reports an IPC failure that names nothing useful.
Using the bookworm suite. That is PVE 8 on a Trixie system.
Debian 13 needs trixie.
Skipping the keyring checksum. It is the only integrity check in
the procedure.
Installing proxmox-ve before rebooting into the PVE kernel.
Packages present, modules absent, symptoms that point elsewhere.
Leaving linux-image-amd64 installed. A future Debian kernel
becomes the default and the node breaks during unrelated maintenance.
Leaving os-prober. It adds your guests’ operating systems to the
host boot menu.
Converting to vmbr0 without reading the provider’s networking
notes. MAC filtering on the uplink drops bridged guest traffic.
Not planning storage before the conversion. Repartitioning under a
running hypervisor is much harder than choosing a layout beforehand.
Key takeaways
PVE on Debian is supported and produces a working node. Use it for
rented servers and machines you cannot boot an ISO on, not for
convenience.
The hostname must resolve to a real, non-loopback address before
anything else. The failure mode names IPC, not DNS.
Suite is trixie for PVE 9. Verify the keyring checksum.
Install the PVE kernel, reboot, confirm uname -r, then install
proxmox-ve. The order is what makes the modules match the packages.
Remove linux-image-amd64 and os-prober afterwards.
The ISO would have given you a bridge, a thin pool, boot redundancy and
a sized root layout. None of those arrive on this path.
On a remote machine, verify the rescue system and schedule the undo
before any network change.
Knowledge check
Knowledge check · 4 questions
Q1. After converting a Debian host, every pve command returns "ipcc_send_rec[1] failed: Connection refused". What should you check first?
Q2. Why does the documented procedure install proxmox-default-kernel and reboot before installing proxmox-ve?
Q3. Which of these does the ISO installer configure that a Debian conversion leaves to you? Select all that apply.
Q4. Using the bookworm suite in the Proxmox sources file on a Debian 13 Trixie system is acceptable, because Proxmox packages are compatible across adjacent Debian releases.
Passing score: 75%. Answers are checked in this browser.