Что сделать прямо сейчас
- Выключите виртуальную машину, чтобы гостевая система перестала писать на диск.
- Скопируйте всю папку ВМ, включая небольшой дескриптор и все файлы экстентов, на другой накопитель.
- Откройте дескриптор .vmdk или файл .qcow2 в разделе Восстановление удалённых файлов и просканируйте гостевой раздел.
- Сохраняйте восстановленные файлы в папку на хосте, а не обратно в виртуальную машину.
Пошаговая инструкция
Остановите виртуальную машину
Завершите работу гостя штатно или выключите питание; не приостанавливайте её, чтобы продолжить работу. Работающий гость пишет журналы, обновления и данные подкачки в виртуальный диск, и любая такая запись может попасть туда, где лежат удалённые файлы.
Скопируйте папку ВМ
Скопируйте папку с виртуальным диском на другой физический накопитель. У VMware это небольшой дескриптор .vmdk и файлы экстентов вроде имя-flat.vmdk или имя-s001.vmdk, у QEMU и KVM обычно один файл .qcow2. Работайте с копией, оригинал не трогайте.
Держите экстенты рядом с дескриптором
Дескриптор VMDK — короткий текстовый файл, где перечислены имена файлов экстентов. Они должны лежать в той же папке под исходными именами, иначе диск не собрать. Если вы скачивали диск из хранилища, проверьте, что получены и дескриптор, и большой файл данных.
Откройте виртуальный диск
В FileFix Ultimate откройте Восстановление удалённых файлов, выберите Файл образа диска и нажмите Открыть файл образа. Укажите дескриптор .vmdk или файл .qcow2. Диск откроется только для чтения, а его разделы появятся в списке, как у физического диска.
Просканируйте гостевой раздел
Выберите раздел, где были файлы: у гостя Windows обычно это большой том NTFS, у Linux — корневой или домашний том ext4. Запустите Сбалансированное сканирование. Если файловая система не распознана, Глубокое сканирование по сигнатурам всё равно ищет известные типы файлов.
Сохраните на хост
Просмотрите результаты, отметьте нужное и сохраните в папку на хосте или на другой диск. Обратите внимание на метки состояния: файлы с отметкой о проверке прошли независимую проверку формата.
Какие форматы виртуальных дисков открываются и чем они различаются
Диски VMware бывают нескольких видов. Монолитный sparse VMDK растёт по мере записи гостем. streamOptimized VMDK — сжатый вариант, который часто встречается в экспортах OVA и OVF. flat VMDK — заранее выделенный сырой файл, описанный отдельным небольшим дескриптором. FileFix Ultimate читает все три, а также QCOW2 версий 2 и 3 из QEMU, KVM и Proxmox, VHD и VHDX из Hyper-V и сырые файлы .img.
В дисках sparse и QCOW2 области, в которые гость никогда не писал, вообще не хранятся в файле. Это делает файлы компактными, но означает, что блок, освобождённый гостем и возвращённый хостом, может просто больше не существовать.
Снимки, тонкие диски и TRIM внутри гостя
Если у ВМ есть снимки, новые изменения хранятся в дельта-файлах рядом с базовым диском. Если открыть только базовый файл, вы увидите гостя в состоянии на момент снимка, и это даже полезно, если файлы удалили позже. Если нужно самое свежее состояние, обычно проще всего сначала объединить снимки в копии ВМ в гипервизоре и открыть результат.
Современные гостевые системы могут отправлять команды TRIM или unmap для удалённого пространства, и некоторые гипервизоры после этого сжимают тонкие или sparse-диски. Если так произошло, удалённые блоки могли исчезнуть из файла, как на SSD. Лучше всего восстановление обычно работает на толстых или flat-дисках и у гостей с отключённым возвратом пространства.
Частые ошибки
Если запустить ВМ, чтобы установить внутрь программу восстановления, запись пойдёт на тот самый диск, который нужно спасти. Команда восстановления или сжатия гипервизора на исходном диске может отбросить свободное пространство. Если переименовать файлы экстентов и потом открыть дескриптор, связь между ними нарушится; ничего не переименовывайте и сохраняйте структуру папок.
Когда это не поможет
- Зашифрованные виртуальные машины нельзя прочитать без расшифровки гипервизором; для BitLocker внутри гостя нужен ключ восстановления.
- Гостевые системы на неподдерживаемых файловых системах, таких как ReFS, Btrfs или ZFS, можно искать только по сигнатурам, без имён и папок.
- Если файл экстента отсутствует или переименован и часть диска пропала, файлы из этой части восстановить нельзя.
- Пространство, освобождённое гостем через TRIM и возвращённое хостом из тонкого или sparse-диска, обычно уже не содержит старых данных.
- Нельзя открыть VMDK снимков (дочерние), которым нужен родительский диск, диски seSparse и vmfsSparse, а также прямое сопоставление устройств. Используйте базовый диск или сначала объедините снимки в гипервизоре.
Чем поможет FileFix Ultimate
- Открывает только для чтения VMDK (sparse, streamOptimized и flat), QCOW2 v2 и v3, VHD, VHDX, E01 и сырые образы.
- Показывает разделы внутри виртуального диска и читает гостей с NTFS, FAT32, exFAT и ext2, ext3, ext4, возвращая имена и папки.
- Переходит к поиску по сигнатурам 68 типов файлов, если гостевая файловая система не распознана.
- Может объединить несколько образов дисков, включая VMDK, в виртуальный RAID 0, 1, 5 или JBOD.
FileFix Ultimate бесплатен для личного использования, работает офлайн и никогда не записывает данные на диск, с которого выполняется восстановление. Для работы и бизнеса нужна годовая лицензия на каждый ПК. Проверьте подпись перед запуском.
Частые вопросы
Можно ли восстановить на хосте сам удалённый файл VMDK?
Это другая задача: .vmdk удалён с диска хоста, поэтому сканируйте этот диск и ищите дескриптор и его большой файл данных. Крупный flat- или sparse-экстент часто фрагментирован и может вернуться лишь частично.
Нужно ли устанавливать VMware или QEMU, чтобы открыть диск?
Нет. Файл виртуального диска читается напрямую, достаточно, чтобы файлы были на ПК с Windows 10 или 11. Гипервизор нужен, только если вы хотите сначала объединить снимки.
Какой файл выбирать — маленький или большой?
Для VMware выбирайте маленький дескриптор .vmdk: он сообщает программе, где лежат экстенты с данными. Если дескриптор утерян, flat-экстент можно открыть как сырой образ.
Изменит ли открытие диск или сломает ли ВМ?
Нет. Файл открывается только для чтения и ничего в него не пишется, поэтому ВМ загрузится как раньше. И всё же работать с копией — самая безопасная привычка.