Skip to content
A licence key moving from a PC's firmware into a single virtual machine

Moving an OEM Licence Into a Proxmox VM, and What Moves With It

An OEM licence for the Fisher-Price OS (Windows) lives in the PC’s firmware as an ACPI table called MSDM, and QEMU will pass any such table to a guest without checking it. This covers what the table holds, a validator that refuses malformed tables before QEMU silently repairs their headers, storing them in the private half of the Proxmox cluster filesystem, Microsoft’s terms on moving an OEM licence, the one case they plainly allow, taking the table straight from the host when the licensed machine is the hypervisor, and why MAK, KMS, Active Directory and AVMA activation never touch the table.

4th October 2026 Â· 11 min Â· 2595 words Â· Damien Dye
A virtual machine's boot screen with the hypervisor's logo replaced by a product's own

Branding a Proxmox VM, and Keeping It Branded Through the Next Upgrade

A stock Proxmox VM shows Proxmox’s logo at boot, says Proxmox in its firmware vendor string and calls itself QEMU in every SMBIOS table. This replaces all of it with your product’s name: SMBIOS types 0, 1, 2, 3 and 11 with the serial number and SKU filled from the VM’s own name and size, the SeaBIOS splash and its colour trap, a branded OVMF built from Proxmox’s own tree or an option ROM driver that replaces the logo and the BGRT under Secure Boot without touching the firmware, and the web interface logo. Every change is placed so an upgrade cannot quietly undo it, and the one an upgrade can leave dangerously stale, the firmware, gets a hook that says so.

4th October 2026 Â· 24 min Â· 5661 words Â· Damien Dye
A browser connecting through Cloudflare Access to Windows VMs on a Proxmox host with Intel Arc Pro GPU virtual functions

Zero Trust VDI Without the Cloud Bill — Proxmox, Intel Arc Pro and Cloudflare Access

Part one: the architecture and the cost argument for replacing Azure Virtual Desktop with Proxmox, Intel Arc Pro SR-IOV and Cloudflare Access. On-prem OAuth for identity, browser-rendered RDP, a firewalled LXC tunnel on its own VLAN, KSM for memory density, and profiles on Ceph. The next post builds it.

2nd September 2026 Â· 17 min Â· 3677 words Â· Damien Dye

Who Actually Writes & Uses Ceph

I counted every commit to Ceph’s main branch for the last ten years — 69,613 of them from 1,718 people across 478 organisations — traced all 38 Steering Committee members to their employers, and gathered the publicly stated deployments. The result is a project that absorbed the loss of its founder and its second-largest contributor without dropping a beat, and is still shipping at the same rate today.

27th August 2026 Â· 36 min Â· 7504 words Â· Damien Dye
One NFS export mounted by both vCenter and Proxmox, so a VMDK crosses the network once instead of twice

VMware to Proxmox with Ansible — Build the Shells Before You Move a Byte

Reading a vSphere estate with the dynamic inventory, mirroring its VLANs into Proxmox SDN, and rebuilding every VM as a diskless shell before a single disk moves. Why every VMware info module hides the one field the migration needs, why vlan_id is three different types, and why one NFS export mounted twice turns the cutover into a local read.

26th August 2026 Â· 20 min Â· 4257 words Â· Damien Dye
An Ansible control node calling the Proxmox API, with the VM being built having no connection back

Creating Proxmox VMs with Ansible — The Host You Are Building Does Not Exist Yet

The community.proxmox collection is an API client, not a configuration agent, and that changes the shape of every playbook that uses it. Where the tasks actually run, why proxmox_kvm declines to converge rather than updating, why proxmox_disk and proxmox_nic are where disk and NIC changes belong, and the undocumented return value you will end up needing.

12th August 2026 Â· 25 min Â· 5224 words Â· Damien Dye
One KVM kernel module beneath five different management stacks

Proxmox VE Is Not a Hypervisor — KVM Is, and You Are Already Running It

“Is Proxmox enterprise grade?” is a question about the hypervisor, and Proxmox VE does not contain one. The hypervisor is KVM — the same kernel module underneath EC2, Google Cloud, Alibaba Cloud, Nutanix AHV and OpenShift Virtualisation. What Proxmox really maintains, why the type 1 argument is aimed at the wrong line, and what the shared foundation does not buy you.

12th August 2026 Â· 26 min Â· 5483 words Â· Damien Dye
Three storage tiers: Optane absorbing writes, NVMe holding Ceph metadata, and HDDs providing bulk capacity

Making HDD-Backed Proxmox Ceph Clusters Fast — NVMe Metadata, One Optane Per Spindle, and What It Costs You

Flash pricing has made all-NVMe hard to justify, and enterprise HDDs are worth another look. Getting acceptable latency out of them on hyper-converged Proxmox Ceph means moving RocksDB off the spindle, pairing each disk with its own Optane through bcache — Optane specifically, because NAND endurance is wrong for that job — and being honest about the failure modes it buys you.

7th August 2026 Â· 35 min Â· 7359 words Â· Damien Dye
One physical GPU split into virtual functions handed to separate Windows desktops

Licence-Free Windows VDI on Proxmox with an Intel Arc Pro B50 — and the Firmware Limit That Stopped It

Intel’s Arc Pro cards do SR-IOV natively, with no vGPU licence to buy — which makes a licence-free Windows VDI on Proxmox genuinely possible. The whole build on a B50, the Windows-first bootstrap problem, why the firmware caps it at two virtual functions, and how many each card in the B-series gives you.

7th August 2026 Â· 16 min Â· 3385 words Â· Damien Dye
Three Proxmox nodes wired in a triangle mesh with direct cables and no switch

A Switchless Proxmox Mesh with SDN OpenFabric — Ceph and Client Networks Without a 100G Switch

Three Proxmox nodes wired directly to each other in a triangle, with OpenFabric routing over the mesh and Ceph plus VXLAN client networks riding on top. Built entirely in the web interface, and honest about where the design stops scaling.

7th August 2026 Â· 14 min Â· 2783 words Â· Damien Dye