Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Select an option

  • Save HyperNylium/3f3a8de5132d89e7f9887fdd02b2f31d to your computer and use it in GitHub Desktop.

Select an option

Save HyperNylium/3f3a8de5132d89e7f9887fdd02b2f31d to your computer and use it in GitHub Desktop.
Migrate Windows 2000 VM from VMware Player to Proxmox

Hey guys, me again. After a day of testing and fucking with VMware/Proxmox/The VM itself, i finially got it working!!!!

I just wanted to come back and make another post to firstly thank everyone who helped me figure this out. So many awesome suggestions. Moment of silence for those awesome people and the sheer amount of people at that! Glad to be a part of this community. Couldn't have done it without you guys!

Now, on to the second part. As i promissed, i am going to walk through all the steps i took to go from a VMware Player 12 VM to a glorious Proxmox VM.

Does it boot (AKA, bricked from the get-go)? Lets find out!

1.0. I first shutdown the VM in VMware Player 12 and copied all .vmdk files to an external HDD so i can start the prod server up again since player didn't have a export function. Technically there is a ovf exporter tool but didn't know at the time and i wasn't going to bring prod down again. Next, I go home.

1.1. Now that i have all .vmdk files i need at home, i am ready to begin. On my PC, i install VMware 17 Workstation and start it up. Take a moment to say "Fuck Broadcom!" and continue. Very important step! /s

1.2. When it opened, i clicked on the "Open a Virtual Machine" and selected the ".vmx" file that i had. I had a folder on the desktop called "vm" so i choose ".\vm[vm name].vmx". Took ownership of VM while i was at it.

1.3. With the imported VM, i went and started it up to make sure it was bootable, and yes, it booted like a charm.

Making a backup for restore in Windows 2000 server itself

2.0. When the VM was on, i logged into the admin account and did the following.

2.1. Go to "Start > Run..." and type "ntbackup". Click "OK".

2.2. When a window called "Backup" opens (takes a min), click on "Backup Wizard"

2.3. When the wizard opens click on "Next"

2.4. Click on "Back up selected files, drives, or network data"

2.5. Under the "What to back up:" section. On the left window, make sure you click on the checkbox for "C:" and "System State". Click "Next". screenshot

2.6. Choose a backup destination. For the ease of working with VMs, i setup my Synology NAS with SMB that allowed SMB1 and NTLMv1 auth so i can mount an SMB share to the the Windows 2000 Server VM. Chose that as my destination. Click "Next"

2.7. Make sure everything is to your liking and click "Finish". This will create a .bkf file in you chosen destination.

2.8. Shutdown the VM as we need it no longer.

Proxmox. Oh boy...

3.0. Make a new Windows 2000 Server VM from scratch. I mean, install it like-new. I personally used this ISO and as the activation key used this "FFMTB-VQTF3-7RK4K-DXC97-YM4FM". We had a key but for some reason wasn't working which was really odd. So, we went 🏴‍☠️ (kinda). Now that we got a working fresh Windows 2000 Server VM in Proxmox that works, Its time for the good stuff. Restoring from the backup...with i twist. We are going to be restoring everything BUT the "C:\WINNT\system32\drivers" folder.

3.1. Copy over your .bkf file from you destination and put it somewhere accessible by Windows. I copied mine from the SMB share and put it in "C:\mybackup.bkf".

3.2. Go to "Start > Run..." and type "ntbackup". Click "OK".

3.3. When a window called "Backup" opens (takes a min), click on "Restore Wizard"

3.4. When the wizard opens click on "Next"

3.5. In the top-ish right corner, click on "Import file..." and click on "Browse..." to choose your .bkf file. Then click on "OK" at the top right of the popup window. Will take a min for it to give you information.

3.6. In the left section where it will say "File" and have a CD and tape icon, open your backup and click on the "+" until you get to the file tree that shows you 2 more "+" buttons that start with "C:" and "System State". Make sure both are checkmarked. But DONT click on "Next" yet! we still have things to do! screenshot

3.7. After checkmarking both "C:" and "System State", go into "C:" by clicking the "+" next to it. A popup window will come up. Just make sure the path to the .bkf file is correct and click on "OK". Will take a min for it to show the folder structure for "C:".

3.8. After you click into "C:", you will see your C drives folder structure. Keep clicking on the "+" until you get to "C:\WINNT\system32"

3.9. Now that you are in the "system32" directory, scroll down until you see a folder called "drivers". Untick that folder. What we have just done is make sure we are restoring everything from the old system BUT the drivers. Click on "Next" when you are done. screenshot

3.10. Now in the next page, click on "Advanced...".

3.11. Set "Restore files to" to "Original localtion" which should be the default. Click "Next >"

3.12. Set "When restoring file that already exist" to "Always replace the file on disk". Click "Next >"

3.13. On the next page, make sure "Restore security" and "Restore junction points [i aint typing all that]" is checked and click on "Next >"

3.14. Finally, click on "Finish" and let the restore happen.

3.15. When the restore finished if you were using an SMB share, make sure you unmount that before agreeing to restart the system. Had some issues with it not booting.

Holy shit. It works!!!

4.0. After it reboots, go ahead and put in your password to login.

4.1 Last step to this is to make sure everything worked. All local users are present, folder permissions, special applications, etc.

And thats it guys. 1 and a half days of testing later, this is the road i took to migrate to Proxmox.

Some things that didn't work out of the box:

  1. In our server, we have a special app that controlls certain machines. Needed to install the driver for that again and restart the app. Going to see if it works some time next Saturday. Dont want to fuck prod for Monday now do i (this is written on a Sunday, and a somewhat responsible sysadmin) :)

  2. Network drivers. In proxmox, the default network adapter is set to "Realtek RTL8139". When Windows booted, i saw that instead of going at full 1gb or whatever, it was stuck at 100mb/s. Not sure how to fix that. But thats a next Saturday me issue haha.

Now, to go over things in my original post that was recommended but didn't work:

  1. Clonezilla from inside VM. Clonezilla'd from the VM using the samba_server destination option and restored to a Proxmox VM that had nothing on its internal 15GB IDE hard drive. SeaBIOS was finding the OS, but was stuck at "Booting from Hard Drive...". Tried to do a repair from the Windows 2000 Server ISO and didn't change anything. Failed.

  2. VMware -> esxi -> Proxmox. Fired up an ESXi server on VMware Workstation (couldn't get it to work in Proxmox VM) and from VMware Workstation went to "File > Connect to Server...". After it connected, while the VM was off, i dragged and dropped the VM onto the IP address now showing in the sidebar and did a transfer. Saw the VM in ESXi panel. In Proxmox, i went to "Datacenter > Storage" and added ESXi. Then under the node it connected to (for me, the storage showed under "local-zfs") i went into the storage, clicked on the VM and clicked on the button to transfer. I think it was called "Migrate" if i am not mistaken. After the transfer from ESXi to Proxmox, SeaBIOS gave the error "Could not find operating system". Tried to do a repair from the Windows 2000 Server ISO and didn't change anything. Failed.

  3. Normal qm importdisk. The first thing i tried that failed. First imported the VM into VMware Workstation then went to "File > Export to OVF...". Copied the .vmdk disk that it outputed into Proxmox and did the usual qm importdisk [VMID] ./tmp/vm.vmdk local-zfs --format raw. Also tried to import with qm importovf [VMID] ./vm.ovf local-zfs which didn't work. Same "OS not found" even after repair. Also tried to import the .ovf file into Virtualbox and change the disk from isci to IDE and it booted in VB. But as soon as i exported as .ova and imported that into Proxmox, it gave the same "OS not found".

And that was about a entire day of me going though comments, trying out some stuff, it not working, cursing to the idiot who put this critical system in VMware Player, etc etc.

Again, i want to thank the amazing people that helped me in the comments and gave some really good advise. I couldn't have done it without you guys!

Cheers!

EDIT: fixing links and added screenshots.

EDIT2: put wrong ISO i used as the new Windows 2000 Server ISO. Updated with this ISO that i actually used.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment