O título é enganoso, você não está transferindo VMs, apenas tentando reconstruir uma máquina um pouco equivalente (que nem precisa ser uma VM).
É difícil responder a essa pergunta sem saber como você usa a VM. É um servidor web? Ou você é apenas uma máquina de usuário final? Para servidores, muitas coisas são mantidas em / var. Os arquivos do programa estão em / usr, mas você salva & Restaurar isso corretamente é difícil porque contém muitos links, e você teria que restaurar as informações de software instaladas correspondentes para o instalador do pacote.
Para uma máquina básica de usuário final, você:
-
crie uma lista dos pacotes que você instalou explicitamente:
comm -23 <(apt-mark showmanual | sort -u) <(gzip -dc /var/log/installer/initial-status.gz | sed -n 's/^Package: //p' | sort -u)
(lista apenas os pacotes de nível superior, não suas dependências)
- faça logoff do usuário (ou pelo menos saia da área de trabalho gráfica)
- copy / home / {user}
- você pode querer manter uma cópia de / etc para referência (mas não a restaure cegamente na nova máquina)
E a outra máquina:
- crie o usuário adequado (é mais importante que ele tenha o mesmo UID que tenha o mesmo nome) (isso geralmente é feito no momento da instalação)
- reinstalar pacotes ausentes
- restore / home / {user} (em um prompt de comando)
Então você deve ser bom para ir.
Se for um servidor, partes de / var também serão úteis, mas quais dependem do software usado (e algumas não são transferidas como arquivos (dados do MySQL, por exemplo).