Название вводит в заблуждение, вы не переносите виртуальные машины, а просто пытаетесь восстановить несколько эквивалентный компьютер (который даже не должен быть виртуальной машиной).
Трудно ответить на этот вопрос, не зная, как вы используете виртуальную машину. Это веб-сервер? Или вы просто машина конечного пользователя? Для серверов многое хранится в /var. Файлы программы находятся в /usr, но сохранить и восстановить их правильно сложно, поскольку в них содержится множество ссылок, и вам придется восстановить соответствующую информацию об установленном программном обеспечении для установщика пакета.
Для базового компьютера конечного пользователя вы бы:
создайте список пакетов, которые вы установили явно:
comm -23 <(apt-mark showmanual | sort -u) <(gzip -dc /var/log/installer/initial-status.gz | sed -n 's/^Package: //p' | sort -u)
(в нем перечислены только пакеты верхнего уровня, а не их зависимости)
- выйти из системы вашего пользователя (или, по крайней мере, выйти из графического рабочего стола)
- copy /home /{пользователь}
- вы можете захотеть сохранить копию /etc для справки (но не восстанавливайте ее вслепую на новой машине)
И другая машина:
- создать адекватного пользователя (более важно, чтобы у него был такой же UID, как и у того же имени)(это обычно делается во время установки,)
- переустановите отсутствующие пакеты
- восстановить /home /{пользователь} (из командной строки)
Тогда тебе должно быть хорошо идти.
Если это серверная часть /var также будет полезна, но какие из них зависят от используемого программного обеспечения (а некоторые лучше не передавать в виде файлов (например, данные MySQL).