Migrate physical Windows 10 to VM and start on console

I have used the vmware standalone convertor software to convert a bare metal windows machine to a virtual machine that I imported to a proxmox vm. I had to play with the vm configs (efi boot, edi disk etc) to get it to boot but it was doable. You could try cloning the baremetal windows with clonezilla and then restore the backup to the proxmox vm disk (done this too) but you still would have to get the vm config settings correct for it to boot.
 
I have used the vmware standalone convertor software to convert a bare metal windows machine to a virtual machine that I imported to a proxmox vm. I had to play with the vm configs (efi boot, edi disk etc) to get it to boot but it was doable. You could try cloning the baremetal windows with clonezilla and then restore the backup to the proxmox vm disk (done this too) but you still would have to get the vm config settings correct for it to boot.
Thanks. How did you set the EFI boot properly? Did you refer to an EFI partition or just the one being created by proxmox?
 
Proxmox would give me a complaint about no efi disk present even though the cloned machine had its own efi partition. I just Add > EFI Disk from the hardware section to get proxmox to not complain. It would give the same complaint (No efi disk) if I were creating a new vm and installing windows from scratch. So I just default to adding the efi disk. If you are not worried about the windows environment showing up as a virtual machine in taskmanager you can change some things to virtio hardware. For me I just found it easier to stick with a template that just makes the machine not appear as virtual.

These settings are what I usually use. The pci device and cd drives would be up to you (and your testing/needs). I'm not even worried about the mac address in this screenshot since it's a template that I just copy paste and the mac gets changed anyways.

ss.jpg
 
Last edited:
Did you refer to an EFI partition or just the one being created by proxmox?
EFI Boot partition created by Windows is mandatory to boot Windows.
EFI disk created by PVE is only for Secure Boot, it also allow saving UEFI settings too but not technically required to boot guest.
 
Proxmox would give me a complaint about no efi disk present even though the cloned machine had its own efi partition. I just Add > EFI Disk from the hardware section to get proxmox to not complain. It would give the same complaint (No efi disk) if I were creating a new vm and installing windows from scratch. So I just default to adding the efi disk. If you are not worried about the windows environment showing up as a virtual machine in taskmanager you can change some things to virtio hardware. For me I just found it easier to stick with a template that just makes the machine not appear as virtual.

These settings are what I usually use. The pci device and cd drives would be up to you (and your testing/needs). I'm not even worried about the mac address in this screenshot since it's a template that I just copy paste and the mac gets changed anyways.

View attachment 67171
Thanks! This was extremly helpful. Obviously my backup with disk2vhd was kind of corrupt as I didn't use VSS. Tried with another machine with active VSS disk2vhd and applied your settings: managed to start the machine.
Questions:
1. Why are you not using the SCSI virtio driver?
2. Your disk format is qcow2. Any advantages over "non-qcow2"? Did you create the disk from a vhd?
3. What does backup=0 mean?
4. How could you select the EFI disk from your imported disk? For me only local-zfs is available in the drop down when adding EFI Disk.
 
EFI Boot partition created by Windows is mandatory to boot Windows.
EFI disk created by PVE is only for Secure Boot, it also allow saving UEFI settings too but not technically required to boot guest.
How do I achieve to have the Windows EFI Boot partition selectable when adding EFi Disk? Or is this not necessary? At least I was able now to start the VM with the PVE EFI disk...
 
1. I'm not using virtio stuff because it causes the machine to show up as a virtual machine in taskmanager. This is to allow some programs to work correctly. You can use virtio if you want.

2. If I import a disk to a vm it usually imports as qcow2. You are free to experiment.

3. I believe it's proxmox's backup feature for the vm disk. I don't store any vm data directly inside the vm disk so I never worry about losing the vm disk. You are free to experiment.

4. I don't select the efi disk for the windows machine (in the context of importing a converted machine). I just make sure the vm config (template) is able to boot the vm disk properly. Once it can boot, the vm should be able to handle the rest on its own.
 
Thanks, your answers are very helpful for me!
I assume the VM config you screenshoted is kind of gaming PC. How do you connect to the machine? From the console directly or remotely via Remote Desktop?
 
I use starwind convertor . I have migrated a few physical windows machines including my own workstation. Works every time.
How do you connect to your workstation after migration? I assume, you're still sitting in front of it?
For me after the installation of proxmox, I only see the root login at the console (I can connect remotely to VMs running on the host). I'd like to learn, how to work with a VM, when sitting at the console...
 
How I connect to my windows vm depends on how it's setup and/or what I plan to do with it.

If it's basic stuff then I use remote desktop. If it's gaming then I use sunshine/moonlight with the nvidia cards I passthrough to the vm.
 
Last edited:
If I understand correctly, to use the console, I'd need to install (and autostart) a remote client on the proxmox server (ideally in some kind of isolated space). Remote client candidates are
* virt-viewer (connects to any proxmox hosted VM, locally or remotely)
* Remmina (connects to various hosts via RDP, VNC, ...)
Any recommendations?

For the isolated environment, is it worth looking into LXC? Can it be executed/displayed at the server's console?
 
You can use the noVNC option per the vm and access its console that way in a new browser window. You can use virt-viewer if the display option is configured correctly in the vm. You can use remina for linux to windows remote desktop connection. You can use xrdp for linux to windows remote desktop connection. You can use windows to windows remote desktop connection. This is all in the context of connecting to a windows virtual machine. Performance will depend on the environment. Again, you are free to experiment. I would start with getting your windows vm to boot up on its own, then use the noVNC console option to look around the environment.
ss.jpg

In re-reading your first post, it sounds like you are trying to access the windows vm from the proxmox host console in which case I would not recommend that. You would want to access the proxmox host via the webgui (for typical tasks and vm/lxc access) from another computer.
 
I understand to get the previous behaviour (start machine and get login to Windows), I would have kind of unintended use of proxmox, as it's meant to be used headless. But nonetheless I'd like to use the machine as a terminal, similar to Developer Workstations with Proxmox.
So I need to autostart a remote client, like Remmina, at the console and let it handle the visual login to the VM running on the local proxmox host directly. I think it's named single-application mode or kiosk mode - no desktop environment is needed, and it should be light weight (LXDE, LightDM?). I found Reddit Debian boot into one app, Prox Kiox, Start x application instead of desktop environment on Ubuntu, Launch programs on LXDE startup, Debian RDP Desktop Environment [German].
Can anyone guide me in the proper direction for Proxmox? I don't understand the Pros & Cons of these solutions...
 
as docs says :
"Installing additional packages could lead to a hardly upgradeable system and is not supported from the Proxmox support team and therefore only for expert use."

You need time to try, dig and learn on how it works.
Your links is a good start.
 
Last edited:
  • Like
Reactions: gfngfn256
At one point in time I created a headless debian system and launched all GUI apps from the cli. I installed kvm/qemu to run virtual machines and then I launched everything from the cli to include the remote viewer to access the virtual machine console. That was ages ago. I don't know where (or if) I stored the notes on that build. It was a proof of concept for myself. And it was easier because it was just a debian environment.

What you want to do is "possible" but as mentioned here and on your link, installing a gui environment on the proxmox host is not supported so you will have to forge your way.
 
Ok, thanks for confirming it should be possible.
I did follow Debian kiosk installer and replaced chromium by remmina and it seems to kind of work as expected. Still need to figure out:

* how to dynamically detect attached hardware like monitors, USB devices and forward audio both ways.

* how to optimize the footprint of the client: are there better alternatives for the single app usecase to starting Xorg, Windowmanager, Desktop Manager and then the client?
Would a Qt based client somehow help to improve? I‘ve heard of framebuffer in that context as well, but don’t know if it’s worth digging into it deeper.

* improve security: I‘ve set the kiosk user‘s shell to /bin/false, but I guess substantially more can be done here: any suggestions?
 

About

The Proxmox community has been around for many years and offers help and support for Proxmox VE, Proxmox Backup Server, and Proxmox Mail Gateway.
We think our community is one of the best thanks to people like you!

Get your subscription!

The Proxmox team works very hard to make sure you are running the best software and getting stable updates and security enhancements, as well as quick enterprise support. Tens of thousands of happy customers have a Proxmox subscription. Get yours easily in our online shop.

Buy now!