Virtuals Don’t Move
I use Virtual Machines often, for a plethora of reasons. And every once in a while I find myself needing to move them from one computer to another. I’ve had it come up enough that I’ve found there is a ‘right’ and ‘wrong’ way to do this.
As an aside, this same logic can also apply when updating the Virtual Machine software itself.
Wrong Way
A Virtual Machine at rest is a file like any other. Tend to be on the larger side, but a file is a file. As such, they can be copied like any other, from one computer to another. Do it directly over the network, or use an intermediate step (USB, cloud, whatever).
The files will copy fine (assuming you aren’t running the Machine when you make the attempt). And installing the Manager should be straightforward enough. As should be importing the Machines. It’s when you turn it back on things can go sideways.
Sure, it might start back up fine. Everything could be good. But if the ‘new’ system is different then the ‘old’ in any meaningful way? Expect errors, as the virtual environment is not lining up with the actual hardware the way it expects to. Depending on how you’ve saved states, this may make the Machine completely unusable. And as far as I can tell, unrecoverable. Hence, the wrong way.
Right Way
This takes a little planning and requires a bit more understanding. But if you’re using Virtual Machines already…
A Machine can be in either an ‘online’ or ‘offline’ state. Which is to say, the saved state could be actively running, or it could be shutdown. Much like your actual computer. And just like a hard drive, which can be moved between computers while it is ‘offline’, so too can Virtual Machines.
While there can be much convenience in saving ‘online’ states, they don’t transfer well. While they might, and you are welcome to take the chance, best to plan for them not. So take any ‘online’ Machines, start then up, and do a proper shutdown from inside. Then save is as a new ‘offline’ state. And that ‘offline’ state is what you copy.
Now technically, you’ll probably copy both (and more) due to the way the files are stored. But it’s the ‘offline’ version that matters. Install the Manager, do your import, and you should be all set now. Run as you see fit, saving more ‘online’ states as needed. Just remember to also make ‘offline’ versions should you ever need to move again.
Why Way?
An ‘online’ Machine, much like any running computer, is operating on certain hardware. A particular CPU, type of RAM, etc. And should that suddenly change, it might no longer be running at all.
I compare it to the tablecloth trick. You can, in theory, yank a tablecloth off a table without disturbing the plates/cups/etc sitting on it. But in practice? If you don’t know what you are doing, you’re more likely to make a mess then get it right.
An ‘online’ Machine on ‘new’ hardware might work. The ‘new’ hardware might lineup just right with the ‘old’ that it keeps virtualling along. In theory, I’m sure it could be done. In practice? I’ve never had two computers close enough to have had it work. ‘Online’ Machines always die in transit. But ‘offline’? I’ve got one that been chugging away for over a decade as it’s moved between a number of different physical systems.
Disclaimer
Having shared this, I’m sure there is someone that knows a way to move ‘online’ Machines. As ever, I can only speak from my experiences and what worked for me. If you’ve got a way to move ‘online’ Machines, I’m happy to hear it. I like to be wrong. In this case, because being wrong means I get to learn something new.