I encountered some issues when installing Proxmox on a new homelab. One method of solving these would have been to install Debian and then Proxmox from there. I decided to try my hand at troubleshooting the issues instead.

Why Proxmox

Before describing the issues I faced and how I resolved them, I though I should explain why I'm using Proxmox in the first place - why persevere through the pain?

The end state for my homelab is to have a number of different Virtual Machines (VMs) running segregated services. There are a few reasons I want to run multiple VMs:

  1. To segment any data used for services to the specific VM I'm running it in
  2. Most VMs will be running NixOS - I want to manage them remotely and become more familiar with tools like deploy-rs and nixos-anywhere
  3. I want to be able to use VMs from any machine to easily experiment with new Linux distributions

I mostly want to use VMs over containers as currently NixOS doesn't work so well with LXC, it's possible, but I haven't been thrilled with the result. I will use LXC for running some services like [Home Assistant].

Initial Boot

The first issue I had was getting the Proxmox install step to boot from USB. I kept getting an error saying: /dev fully populated

I managed to find a post on the Proxmox forum which suggested changing the boot flags to resolve the error:

# e at boot menu add nomodeset
GRUB_CMDLINE_LINUX_DEFAULT="quiet nomodeset" 

This let me proceed to the install step for Proxmox.

Booting After Install

After installing Proxmox I rebooted my machine and found I hit a similar error again - adding the aforementioned nomodeset didn't work as I found Proxmox was using systemd-boot rather than grub.

This was resolved by the following thanks to a post on Reddit:

for EFI boot (systemd-boot) add `nomodeset` to /etc/kernel/cmdline after installation; run `pve-efiboot-tool refresh` to update

Setting Safe Mode to Boot from Intel Graphics

I thought I was finally done and ready to start setting up some VMs - but no, I hit a fatal server error, which required me to change my vga settings. I found a YouTube video which explained the changes:

lspci | grep -i vga
mkdir -p /usr/share/X11/xorg.conf.d
vi /usr/share/X11/xorg.conf.d/10-fbdev.conf

Enter the following text in 10-fbdev.conf

Section "Device"
    Identifier "Card0"
    Driver "fbdev"
    BusID "pci0:2:0:0"
EndSection

Finally the system booted and I was able to start setting up Proxmox.

Bonus Tip - GPU Passthrough

Finally I wanted to leave some references I found helpful for configuring GPU passthrough for a VM in Proxmox. I needed to do this for my Jellyfin service, so I could take advantage of Intel QuickSync. For further reference on setting up and testing hardware transcoding checkout the Jellyfin documentation.

You can pass through an Intel GPU via PCI passthrough, as detailed in Proxmox documentation