DE | EN

Introduction

The aim of this guide is to migrate Windows and Linux hosts from an ESXi server to Proxmox VE.

There's many ways to do it, however we will explore one of the easier options.

Make sure both the ESXi Server and Proxmox are in the same network, for this migration to work you need to shutdown the virtual machines.

Adding ESXi as storage

Before we can do any migrating, connect to your Proxmox VE server, click Datacenter and navigate to Storage, then hit Add and select ESXi:

Add ESXi

You'll be prompted with a window like this:

ESXi Configuration

Fill it out, here's some information about the fields:

Field Info
ID This is the id name of your storage entry, you could name it after the ESXi server.
Server Enter the IP of the server, make sure it is reachable over the network.
Username The username you use to connect to the ESXi server, by default: "root".
Password The password you use to connect to the ESXi server.
Skip Certificate Verification In most cases this needs to be checked, by default ESXi comes with a self signed certificate.

Adding the storage entry

When done, it should look something like this:

ESXi Configuration Filled

Then add it by clicking Add.

You will also have a new entry in Storage:

ESXi in Storage

You can now use the sidebar to navigate to your node, and click your newly added storage.

This will show you all VMs on your ESXi server.

When you click an entry, the Import button becomes available.

Import button

Before importing you should prepare your VMs, the next steps in this guide will be about that.

Windows

This should cover Windows Server as well as Windows Client VMs.

Uninstall VMware tools

You could do this later, but it doesn't hurt to do it now.

It can be uninstalled like any other Windows program:

Uninstall VMware tools

Warning: This may fail on some older VMware tools versions.

If nothing happens when clicking Uninstall, you could try to mount the VMware tools ISO, and run the setup64 file with "/c" from a command line.

Qemu Guest Agent

Here's a wiki entry by Proxmox: https://pve.proxmox.com/wiki/Qemu-guest-agent

That page links to https://pve.proxmox.com/wiki/Windows_VirtIO_Drivers.

And that page finally links to: https://fedorapeople.org/groups/virt/virtio-win/direct-downloads/archive-virtio/?C=M;O=D, which is where you can obtain the ISO file.

Here's some handy links from that page:

Once you have the ISO file, upload it to your ESXi Datastore.

Then attach the ISO file to your VM.

Navigate to the files from explorer, and run/install following as Administrator:

  • virtio-win-gt-x64.msi
  • virtio-win-guest-tools.exe

Starting the import

Remove the ISO from the VM, take note of the IP configuration if you haven't already, then shutdown the VM and head over to Proxmox.

Navigate from the left side to your ESXi storage, select your VM and hit Import.

You'll see a window like this:

Import Guest

You can change some resources here if you need to.

The live import checkbox may sound like live migration, but it's not. This checkbox will start the VM during the migration as soon as it can, while it still migrates. I suggest to leave that off if you're unsure.

Click Advanced and make sure the SCSI controller is set to VirtIO SCSI single.

Import Guest Advanced

You can change the network model to VirtIO, you'll have to reconfigure your IP configuration later, keep that in mind.

Hit Import to start the import.

You may need to scroll down when it's finished to find TASK OK, you can close the task viewer now.

Task Viewer

Finalizing import

Navigate to the Options of your VM, and enable QEMU Guest Agent.

Options - Qemu Guest Agent Windows

Start the VM and check if everything works as expected.

Windows Boot

Set the IP configuration from within Windows by clicking Console.

Congratulations, you have migrated a VM from ESXi.

Windows Final

Linux

Before you migrate a linux VM, make sure you know how to change the IP configuration to a different network interface.

It will most likely change after the migration.

On Ubuntu you'd find this configuration file here: /etc/netplan/
After changing this file, you can apply the configuration by running: sudo netplan apply

You'd figure out which the new interface name is by running: ip link

Now install the qemu guest agent package, this differs for every distribution. On debian based systems you can do it like this:

sudo apt-get update; sudo apt-get install qemu-guest-agent -y

Qemu Guest Agent

Take note of your IP configuration if you haven't already, then shutdown your VM, then navigate to the side navigation of your Proxmox and select your ESXi Storage.

Select your VM and hit Import:

Import List Linux

You'll get a window like this:

Import Guest Linux

You can change some resources here if you need to.

The live import checkbox may sound like live migration, but it's not. This checkbox will start the VM during the migration as soon as it can, while it still migrates. I suggest to leave that off if you're unsure.

Click Advanced and make sure the SCSI controller is set to VirtIO SCSI single.

Import Guest Advanced Linux

You can change the network model to VirtIO, you'll have to reconfigure your IP configuration later, keep that in mind.

Hit Import to start the import.

You may need to scroll down when it's finished to find TASK OK, you can close the task viewer now.

Task Viewer Linux

Navigate to the Options of your VM, and enable QEMU Guest Agent.

Options - Qemu Guest Agent Linux

Start the VM and check the network interfaces, adjust network configuration files if necessary.

🎉 Congratulations, you have migrated a Linux VM from ESXi to Proxmox VE.

Linux Final