To move an ESXi 4.0 guest is not all that hard – but you must be aware of several things along the way. Taken one step at a time, it won’t be difficult. In this discussion, we assume that you are moving from one ESXi 4.0 host to another – both with the same architecture. (Anything other than that gets much more complicated.)
First, make sure there are no snapshots. Snapshots are not compatible with this process and must be eliminated altogether.
Then, shut down the guest system. We don’t want the guest changing as it is copied across.
The next step is to copy the guest files from the original host to the destination host. This is the longest step considering you probably have gigabytes of data to transfer. This is also done from the ESXi command line.
I would normally use
rsync but it doesn’t exist on an ESXi 4.0 system; use
scp to copy the files. Your files for the guest should be located in
datastoreX is the data store containing the guest and
guest is the name of the guest host. If you renamed the host in one of the GUIs such as VSphere Client, then this will reflect the original name.
Make a directory in the remote host (using the ESXi command line interface) in one of the data stores, and then use commands like these from the original host:
scp * remotehost:/vmfs/volumes/datastoreY/guest/
This will copy the files to the remote host.
However, copying is not enough. Log into the remote host and go to the place you copied the files to. Check over the file ending in
.vmx for any references to disks that must be changed. Convert remote host paths to local disk paths – you will probably need to know the long hexadecimal path for any paths, so list that before you start editing. If you execute a
cd command to the directory containing the guest host, the long path will be in the prompt.
Next you must register the host so the system knows about it. Use this command at the command line to do this:
vim-cmd solo/registervm /vmfs/volumes/datastoreY/guest/guest.vmx
Now, to get the host started: start the host from VSphere Client. The client will give you a question to answer about where the guest came from. Click on the guest’s Summary tab and select I copied it. (which should be the default) and click Ok.
The guest will start up – and discover that the MAC address of its network interface has changed. For Linux, this means a new ethernet interface, and the configuration of the old interface is ignored: that means that there will be no network connectivity. Enter the console and change the old configuration from
eth1 (or whatever is appropriate; find out with
ifconfig -a). This change varies by which Linux distribution you use; for Ubuntu, the configuration is in
While you don’t have to reboot, it doesn’t hurt to do so after this change – and it tests the system in a clean reboot. The system should start up cleanly.
Now don’t forget to remove the original. Using the VSphere Client, right-click on the host and select Delete from Disk. This will remove the guest host entirely from the system and delete all of its files. If you want to retain the files, instead select Remove from Inventory which essentially unregisters the host, so that the system is not managing it – but the disk files remain.
One thought on “Moving a VMware ESXi 4.0 Guest From One Host to Another”
You could always just use vmware converter if you want a GUI. Stop the guest on the source, point at the VM on the source host, point and wait. It does all the work for you.