Способ 1: Копирование файлов виртуальной машины (горячий бэкап)
Этот метод предполагает копирование всех файлов виртуальной машины (VMDK, VMX и т. д.) во время её работы.
Как сделать:
Создать снимок (Snapshot)
Открыть VMware Workstation → Выбрать ВМ → VM → Snapshot → Take Snapshot
Скопировать файлы ВМ на другой диск
Найти папку с виртуальной машиной (.vmx, .vmdk, .nvram, .log)
Использовать robocopy в командной строке Windows:
Код |
---|
robocopy "C:\Users\YourUser\Documents\Virtual Machines\Ubuntu" "D:\Backup\Ubuntu" /E /XJ |
Можно также воспользоваться файловым менеджером (например, Total Commander).
Удалить снимок после копирования
В VMware: VM → Snapshot → Manage Snapshots → Delete Snapshot
Минусы:
Требуется дополнительное место на диске для хранения снимка.
Может повлиять на производительность ВМ во время копирования.
Способ 2: Использование vmrun (VMware VIX API)
VMware предоставляет инструмент vmrun, который позволяет управлять ВМ через командную строку.
Как сделать:
Код |
---|
"C:\Program Files (x86)\VMware\VMware Workstation\vmrun.exe" snapshot "C:\Path\to\VM\Ubuntu.vmx" backup-snapshot robocopy "C:\Path\to\VM" "D:\Backup\Ubuntu" /E /XJ "C:\Program Files (x86)\VMware\VMware Workstation\vmrun.exe" deleteSnapshot "C:\Path\to\VM\Ubuntu.vmx" backup-snapshot |
Преимущества:
Автоматизируемый процесс.
Позволяет управлять снимками через командную строку.
Способ 3: Бэкап данных внутри ВМ с rsync
Если вам не нужен полный образ ВМ, а только резервное копирование данных, можно воспользоваться rsync внутри Ubuntu.
Как сделать:
Расшарить диск на хосте (Windows) и примонтировать его в Ubuntu.
Выполнить команду:
Код |
---|
rsync -avz --exclude={"/proc/*","/sys/*","/dev/*","/run/*","/mnt/*","/media/*","/lost+found"} / /mnt/backup/ |
Преимущества:
Экономия места.
Упрощенный процесс восстановления.
Способ 4: Использование vim-cmd и vmkfstools (для VMware ESXi)
Если ваша виртуальная машина работает в VMware ESXi, можно использовать:
Код |
---|
vim-cmd vmsvc/snapshot.create <VM_ID> backup-snapshot vmkfstools -i /vmfs/volumes/datastore1/VM/VM.vmdk /vmfs/volumes/backup/VM.vmdk vim-cmd vmsvc/snapshot.remove <VM_ID> backup-snapshot |