Proxmox VE 9.1 on an HPE MicroServer Gen8 — and the “UI Is Dead” Trap
Plan ahead. Not in the “print a checklist and laminate it” way — in the Homelab Arena way: know your loadout before you step into the fight.
This was a reinstall, not a mystery box unboxing. I knew what was in the chassis before the ISO even finished downloading: a big SSD for the hypervisor and fast VM disks, plus HDDs for bulk storage. Same machine, same intent, clean slate. The whole point of a reinstall is that the boring parts stay boring.
Of course, the arena has a sense of humor.
After installation, I couldn’t reach the Proxmox UI from another machine on the same network. From the host, I could ping other machines just fine — so networking looked alive — but the web UI was a brick wall. No login screen. No TLS warning. Just… nothing.
That’s when I stopped guessing and asked the only question that matters:
Is anything even listening on port 8006?

0) Decide your storage layout (recommended)
Before you install, decide where things will live. It’s not just aesthetics — it’s how you avoid turning your hypervisor into a junk drawer.
Recommended pattern:
- SSD: Proxmox OS + VM/CT “fast” storage (LVM-thin is totally fine)
- HDDs: bulk storage + backups (often ZFS)
Reality note: on this run, Proxmox only showed 3×4TB HDD under Node → Disks. I expected 4. The box disagreed. We’ll live with reality and move forward.
1) Prep the MicroServer Gen8 BIOS (important)
- Boot the server and enter BIOS (usually F9).
- Enable virtualization:
- Intel VT-x
- VT-d / IOMMU if you want passthrough later (optional)
- Storage controller mode:
- If you plan ZFS later, you want raw disks, not a hardware RAID volume.
- Save and reboot.
This is the part everyone rushes. It’s also the part that decides whether the install is “boring” or “an evening.”
2) Download Proxmox VE 9.1 ISO + create install media
- Download the Proxmox VE 9.1 ISO.
- Create a bootable USB — or do what I did and use iLO Virtual Media.
Gen8 note: USB boot can be picky. iLO Virtual Media removes one variable from the equation and keeps your install path consistent.
3) Install Proxmox onto the SSD
In the installer:
- Select the SSD as the target disk.
- Filesystem choice:
- Ext4 + LVM-thin (simple, solid, predictable)
- Set timezone + root password + email.
- Networking:
- Prefer a static IP
- Hostname like
pve.local(or your internal domain)
Let it install and reboot.
Happy path is:
https://<your-proxmox-ip>:8006
4) The trap: host can ping the LAN, but the UI is unreachable
Here’s what I saw:
- From the Proxmox host: I can ping other machines ✅
- From my laptop: UI doesn’t load ❌
This is the worst kind of failure because it looks like a networking problem. Your brain starts drafting theories: firewall, bridge, VLAN tagging, wrong gateway, DNS, cables, switch ports, the weather.
But the fastest check is this:
ss -lntp | grep 8006
If you don’t see anything listening on :8006, it’s not your browser and it’s not your switch. The service isn’t running.
In my case, ss showed no 8006 listener.
Then I found the next clue:
can’t load
/usr/lib/x86_64-linux-gnu/perl5/5.40/auto/PVE/RADOS/RADOS.so
Translation: Proxmox wasn’t starting cleanly. If pveproxy doesn’t come up, there’s no UI. The network can be perfect and you’ll still be staring at a blank tab.
5) The fix: make the Gen8 boot the install the way it actually wants
This is the part my future self will thank me for — the next time I reinstall Proxmox on another Gen8, or when I forget everything and pretend this is “new” again.
What finally gave me a stable Proxmox 9.1 install:
- Update BIOS to the latest version
- Boot the installer via iLO virtual media
- Enter BIOS (F9)
- Set the SATA device to Legacy under System Options
- reboot and go back into BIOS
- Under Standard Boot Order (IPL) → Boot Controller Order
- Select: PCI Embedded Intel(R) SATA controller #2
- Ensure BIOS is in Legacy mode
- Reinstall Proxmox
After that, the machine booted consistently and the UI service started normally — which means port 8006 listens and the UI loads like it’s supposed to.
6) What my SSD layout looks like (real-world state)
On this box, Proxmox is using the default LVM + LVM-thin layout:
- The SSD is likely
/dev/sdd /dev/sdd3is the LVM physical volume- Volume group:
pve - Logical volumes:
root,swap, anddata datais the LVM-thin pool for VM disks- ~3.87TB thinpool
- basically empty (0% used)
Translation: OS and VM disk pool share the SSD, and I have plenty of runway for VMs without making storage decisions under pressure.
7) Disable the subscription repo and update the system
Before you start building anything on top, make sure updates are predictable. That starts with repos.
A) Disable/remove the enterprise repo
If you’re not using a paid subscription:
rm -f /etc/apt/sources.list.d/pve-enterprise.list
B) Ensure the no-subscription repo is enabled
Create (or overwrite) the no-subscription list:
cat >/etc/apt/sources.list.d/pve-no-subscription.list <<'EOF'
deb http://download.proxmox.com/debian/pve bookworm pve-no-subscription
EOF
C) Update + upgrade (the boring, necessary ritual)
apt update
apt full-upgrade -y
reboot
After reboot, confirm you’re healthy:
ss -lntp | grep 8006
pveversion
Conclusion
This reinstall was a reminder that the best plans aren’t “perfect plans” — they’re plans that survive contact with reality. I knew my drive layout. I knew what I was reinstalling. And I still ran into the kind of failure that feels like networking until you do one simple check and realize: nothing is even listening.
That’s the real lesson: when the UI is unreachable, don’t start with theories. Start with proof. Check 8006. Confirm whether the management plane is actually alive. In my case, the RADOS.so error was the breadcrumb, and the Gen8-specific boot/controller settings were the fix that turned a flaky reinstall into a repeatable procedure.
Now the arena is quiet again — in the best way. The node boots consistently, the UI comes up, the SSD thinpool is ready, and updates are under control. From here, everything you build on top can be intentional instead of reactive. And that’s the whole point.