Putting a head on the headless

I’m a noob to type 1 hypervisors. I have two machines at home. I’m investigating the idea of converting one to be an XCP-ng server, however, the household frequently needs two computers available. Is there any way to use the same keyboard, mouse, and monitor that is connected to the XCP-ng server and provide a “head” to one of the many running VMs on that server?

Meaning, can I interact with a single VM directly at the console of the XCP-ng server?

I fully recognize that this is an atypical use case but I’m curious to know if there is a solution for this. It seems that if XCP-ng had a Display/Window Manager extension then such a thing could be possible.


You would have to pass through an additional GPU and a PCI USB card to one of the VMs… Should be doable, though, if it’s worth it.

I know with Proxmox you can add x-windows and a desktop environment, in theory ! It’s built on debian so I can see that it should be possible, but I can imagine the moment you update things can easily go wrong. I’ve never done this, way too much hassle. Just buy something cheap off ebay if you need a 2nd PC.

Alternatively you could just install a linux desktop on one of the drives (or a partition of one of the drives) and then use any one of the various VM/Container options available to host your existing services. You can do everything xcp-ng is doing, just without the pretty gui. I suppose you could run xcp-ng in one of those VM’s if you really wanted that interface.

I have this same setup (only use containers now) with my only workstation and it runs great. Saves some power and streamlines everything. Just give it enough ram and use other disks for VMs and you won’t even know the VM/Containers are running in the background.

With all that said, the GPU pass through is the easiest route if that is available.

@neogrid I hear you. It’s likely the “best” answer but I want to see if I can get a single machine solution working.

@liquidjoe & chrisfonte

can you elaborate on the use any one of the various VM/Container options available to host your existing services comment? I’m not tracking here.

This need is for my wife and kids. They’re not linux people. So, I’m trying to setup a Windows VM on xcp-ng where they can use it just like it was the only OS on the machine. Basically, what I’d like to accomplish is to have xcp-ng running with my various VMs for my homelab that I can remote into with one Windows VM that is GUI accessible from the console and acts like “normal” windows install.

If I do the GPU and USB passthrough then I have display, mouse and keyboard. No? Is there anything else that would be needed? Any pointers (additional details) here would be greatly appreciated.

Yes, you could do the GPU passthrough, and possibly USB but instead pass a whole hub through as PCI.

For the first part, I don’t know what that means either.

The setup I suggested assumed you would use a linux desktop like GNOME for your family. But it can be done with pass through just the same. If they don’t have specific software requirements that are windows only, then this setup works great. 99% of my family’s needs are done in a browser anyway.

It has been awhile since I messed with full VMs, but is necessary if you want to run windows. I used KVM and virt-manager for this. There are a bunch of install guides, probably search for this with ubuntu and you’ll be good to go. You can probably import your existing VMs too (I have not tried this).

Going this route would be a higher learning curve, but if you value learning then it is well worth it. Plus your setup would easily kill two birds with one stone. Like I said, I do this with my workstation running a half dozen containers and it works great.