In this article we will perform an installation of Proxmox VE 6.x on Hetzner Root Server. Hetzner is a cloud hosting company providing auctions for physical server hardware at competitive rates with a per/month billing model. With the dedicated servers provided by Hetzner, you have the flexibility of custom hardware configurations to meet your application demands. There are also variety of choices around CPU, Memory and Storage for standard configurations.

Proxmox Virtual Environment (VE) is an enterprise-grade open-source server virtualization solution based on Debian Linux distribution with a modified Ubuntu LTS kernel. It allows you to deploy and manage both virtual machines and containers. We will install Debian 10 Linux operating system on a Hetzner root server then proceed to deploy Proxmox VE virtualization solution on it.

I’ll be performing an installation of Proxmox VE 6.x on a Hetzner root server with the following hardware specifications.

CPU: Intel(R) Xeon(R) CPU E5-1650 v3 @ 3.50GHz (Cores 12)
Memory: 256GB RAM
Disk: 2 x 480GB SSD
Network: 1Gbit
IPV4 Addresses: 1 x IPV4 public address

Note that with Hetzner Root servers, you get a single IPv4 public IP address but you can request for additional IP or subnet for use.

Step 1: Boot to Rescue Mode

Login to your Hetzner console for Root servers and navigate to Servers section under Main functions.

Main functions > Servers > Server Label > Rescue

hetzner enter rescue

Select the Operating system to use in rescue mode, CPU Architecture, and public key and click on “Activate rescue system“.

hetzner enter rescue activate

Reboot the server under “Reset” server section.

Step 2: Create Root Server Configuration.

SSH to the server in rescue mode using root user and password shown during Rescue activation.

$ ssh [email protected]
 Welcome to the Hetzner Rescue System.
 This Rescue System is based on Debian 9 (stretch) with a newer
   kernel. You can install software as in a normal system.
 To install a new operating system from one of our prebuilt
   images, run 'installimage' and follow the instructions.
 More information at
 Rescue System up since 2021-05-06 21:01 +02:00

Hardware data:

   CPU1: Intel(R) Xeon(R) CPU E5-1650 v3 @ 3.50GHz (Cores 12)
   Memory:  257653 MB
   Disk /dev/sda: 480 GB (=> 447 GiB) doesn't contain a valid partition table
   Disk /dev/sdb: 480 GB (=> 447 GiB) doesn't contain a valid partition table
   Total capacity 894 GiB with 2 Disks

Network data:
   eth0  LINK: yes
         MAC:  b4:2e:99:47:fa:5c
         IP:   xxxxxxxxxxxxxxxxxx
         IPv6: xxxxxxxxxxxxxxxxxx
         Intel(R) Gigabit Ethernet Network Driver
 [email protected] ~ # 

My root server has two disks each 480GB. I’ll configure them in non-redundant RAID 0 configuration.

Let’s create a Hetzner server installer configuration file called install-config.txt

$ vim  install-config.txt

This is the data populated that will be used by the installimage to install Debian 10 operating system from pre-built image.

DRIVE1 /dev/sda
DRIVE2 /dev/sdb
SWRAIDLEVEL 0 # Use 1 for Raid 1
PART /boot ext3 512M
PART lvm vg0 all

LV vg0 root / ext4 50G
LV vg0 swap swap swap 8G
LV vg0 var /var  ext4  300G

IMAGE /root/.oldroot/nfs/install/../images/Debian-109-buster-64-minimal.tar.gz

Review and update disk configurations shown in this article to suit your use case.

Step 3: Install Debian 10 (Buster) on Hetzner root server

Once you’re confident with the configurations, start the installation process of Debian 10 Hetzner root server.

# installimage -a -c install-config.txt

Installation process will start immediately after command execution:

Found AUTOSETUP file '/autosetup'
Running unattended installimage installation ...

DRIVE1 /dev/sda
DRIVE2 /dev/sdb
SWRAIDLEVEL 0 # Use 1 for Raid 1
PART /boot ext3 512M
PART lvm vg0 all
LV vg0 root / ext4 50G
LV vg0 swap swap swap 8G
LV vg0 var /var  ext4  300G
IMAGE /root/.oldroot/nfs/install/../images/Debian-109-buster-64-minimal.tar.gz

  Starting installation in 20 seconds ...
  Press X to continue immediately ...
  Installation will DELETE ALL DATA ON DISK(s)!
  Press CTRL-C to abort now!

Wait for the installation to finish.

Hetzner Online GmbH - installimage

  Your server will be installed now, this will take some minutes
             You can abort at any time with CTRL+C ...

         :  Reading configuration                           done
         :  Loading image file variables                    done
         :  Loading debian specific functions               done
   1/17  :  Deleting partitions                             done
   2/17  :  Test partition size                             done
   3/17  :  Creating partitions and /etc/fstab              done
   4/17  :  Creating software RAID level 0                  done
   5/17  :  Creating LVM volumes                            done
   6/17  :  Formatting partitions
         :    formatting /dev/md/0 with ext4                done
         :    formatting /dev/vg0/root with ext4            done
         :    formatting /dev/vg0/swap with swap            done
         :    formatting /dev/vg0/var with ext4             done
   7/17  :  Mounting partitions                             done
   8/17  :  Sync time via ntp                               done
         :  Importing public key for image validation       done
   9/17  :  Validating image before starting extraction     done
  10/17  :  Extracting image (local)                        done
  11/17  :  Setting up network config                       done
  12/17  :  Executing additional commands
         :    Setting hostname                              done
         :    Generating new SSH keys                       done
         :    Generating mdadm config                       done
         :    Generating ramdisk                            done
         :    Generating ntp config                         done
  13/17  :  Setting up miscellaneous files                  done
  14/17  :  Configuring authentication
         :    Fetching SSH keys                             done
         :    Disabling root password                       done
         :    Disabling SSH root login without password     done
         :    Copying SSH keys                              done
  15/17  :  Installing bootloader grub                      done
  16/17  :  Running some debian specific functions          done
  17/17  :  Clearing log files                              done

   You can now reboot and log in to your new system with the
 same credentials that you used to log into the rescue system.

Then reboot the server

# shutdown -r now

Login to your server with root user credentials.

$ ssh [email protected]
Linux proxmox 4.19.0-16-amd64 #1 SMP Debian 4.19.181-1 (2021-03-19) x86_64

The programs included with the Debian GNU/Linux system are free software;
the exact distribution terms for each program are described in the
individual files in /usr/share/doc/*/copyright.

Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent
permitted by applicable law.

Check partition scheme on the server. It should reflect initial settings:

# lsblk
sda              8:0    0 447.1G  0 disk
├─sda1           8:1    0   512M  0 part
│ └─md0          9:0    0   511M  0 raid1 /boot
└─sda2           8:2    0 446.6G  0 part
  └─md1          9:1    0   893G  0 raid0
    ├─vg0-root 253:0    0    50G  0 lvm   /
    ├─vg0-swap 253:1    0     8G  0 lvm   [SWAP]
    └─vg0-var  253:2    0   300G  0 lvm   /var
sdb              8:16   0 447.1G  0 disk
├─sdb1           8:17   0   512M  0 part
│ └─md0          9:0    0   511M  0 raid1 /boot
└─sdb2           8:18   0 446.6G  0 part
  └─md1          9:1    0   893G  0 raid0
    ├─vg0-root 253:0    0    50G  0 lvm   /
    ├─vg0-swap 253:1    0     8G  0 lvm   [SWAP]
    └─vg0-var  253:2    0   300G  0 lvm   /var

# pvs
  PV         VG  Fmt  Attr PSize   PFree
  /dev/md1   vg0 lvm2 a--  893.00g 535.00g

# vgs
  VG  #PV #LV #SN Attr   VSize   VFree
  vg0   1   3   0 wz--n- 893.00g 535.00g

# lvs
  LV   VG  Attr       LSize   Pool Origin Data%  Meta%  Move Log Cpy%Sync Convert
  root vg0 -wi-ao----  50.00g
  swap vg0 -wi-ao----   8.00g
  var  vg0 -wi-ao---- 300.00g

You can add more space to a logical volume:

lvextend -r -L +20G /dev/vg0/<lvname>
lvextend -r -l +100%FREE /dev/vg0/<lvname> #add all free to this lv

Confirm Debian successful installation by querying OS release info:

[email protected] ~ #  cat /etc/os-release
PRETTY_NAME="Debian GNU/Linux 10 (buster)"
NAME="Debian GNU/Linux"
VERSION="10 (buster)"

Ensure the system is updated:

apt update
apt -y full-upgrade
apt install sudo bash-completion wget vim
[ -f /var/run/reboot-required ] && reboot -f

Step 4: Install Proxmox VE 6.x on Debian 10

Once the OS is installed you can then progress to the installation of Proxmox VE 6.x on Debian 10. I recently did an article on deployment of Proxmox Virtualization solution on Debian 10. Reference article is shared in the link below.

How To Istall Proxmox VE 6 on Debian 10 (Buster)

Private network configurations with NAT:

Create Private Network Bridge on Proxmox VE 6 with NAT

More guides on Virtualization:

Enable Nested Virtualization on Xen | XCP-ng Virtual Machine

How To Deploy and Use KubeVirt on Minikube

How To Create Internal Network in Xen | XCP-ng

Your support is our everlasting motivation,
that cup of coffee is what keeps us going!

As we continue to grow, we would wish to reach and impact more people who visit and take advantage of the guides we have on our blog. This is a big task for us and we are so far extremely grateful for the kind people who have shown amazing support for our work over the time we have been online.

Thank You for your support as we work to give you the best of guides and articles. Click below to buy us a coffee.


Please enter your comment!
Please enter your name here