Install PVE/PBS from ISO on Hetzner without KVM (Tutorial)

Hi.

This setup should work:

- boot your system to Rescue Console
- figure out the real name of the network adapter with ip a (find in section altname)
- Download Proxmox ISO: wget https://enterprise.proxmox.com/iso/proxmox-ve_8.4-1.iso
- Start qemu session:

With at least two NVMe devices:
qemu-system-x86_64 -machine pc-q35-5.2 -enable-kvm -smp 4 -m 4096 -boot once=d -cdrom ./proxmox-ve_8.4-1.iso -drive file=/dev/nvme0n1,format=raw,media=disk,if=virtio -drive file=/dev/nvme1n1,format=raw,media=disk,if=virtio -vnc :1

With at least two SSD or HDD devices:
qemu-system-x86_64 -machine pc-q35-5.2 -enable-kvm -smp 4 -m 4096 -boot once=d -cdrom ./proxmox-ve_8.4-1.iso -drive file=/dev/sda,format=raw,media=disk,if=virtio -drive file=/dev/sdb,format=raw,media=disk,if=virtio -vnc :1

- Attach to the VM with VNC viewer via main IP of your server on Port 1 (x.x.x.x:1)
- Install Proxmox VE (for example with ZFS mirror)
- After rebooting login to the system (still in the VM)
- edit /etc/network/interfaces and change the name of the network device according to the altname and the IP adress + gateway (find in Robot)
- shutdown the VM
- reboot the server
- login to PVE web interface
- configure the DNS servers
- configure filewall to prevent messages from BSI/Hetzner for open NFS ports
 
  • Like
Reactions: eugenevdm
Finally get my servers successfully installed, the trick is the `pointopoint` config used by hetzner, refer to doc: https://docs.hetzner.com/robot/dedicated-server/network/net-config-debian-ubuntu/

So the config must have:
1. CIDR set to `/32`.
2. `pointopoint` set to gateway.

Example as follows:

```
INTERFACE_NAME=$(udevadm info -q property /sys/class/net/eth0 | grep "ID_NET_NAME_PATH=" | cut -d'=' -f2)
IP_CIDR=$(ip addr show eth0 | grep "inet\b" | awk '{print $2}')
GATEWAY=$(ip route | grep default | awk '{print $3}')
IP_ADDRESS=$(echo "$IP_CIDR" | cut -d'/' -f1)

cat > /tmp/proxmox_network_config << EOF
auto lo
iface lo inet loopback

iface $INTERFACE_NAME inet manual

auto vmbr0
iface vmbr0 inet static
address $IP_ADDRESS/32
gateway $GATEWAY
pointopoint $GATEWAY
bridge_ports $INTERFACE_NAME
bridge_stp off
bridge_fd 0

source /etc/network/interfaces.d/*
EOF
```