VladimirNechaev
Contributor
Contributor

Восстановление данных из delta-файла

Добрый день.

ESX 3.0(да, знаю что уже версия 5.5...), кластер из 8 хостов.

С одной из виртуальных машин произошла непонятная ситуация: после попытки удалить snapshot через GUI появилась сообщение о невозможности его удаления. Через некоторое время машина начала миграцию с одного хоста на другой который не смогла завершить (в течении всей ночи пыталась мигрировать) и после этого подвисла. Попытки перезапустить машину не помогли (к сожалению уже не вспомню какая ошибка была), мигрировали её на другой хост и там она завелась. Но в процессе этой миграции и прочих попыток восстановить произошла следующая ситуация: к машине было подключено два диска, один (системный) нормально завелся и заработал, на втором пропала часть файлов, но замечено это было не сразу. В папке машины находится файл формата vmdk и имеющий в своем название "000001-delta" при попытке посмотреть что в нем есть с помощью утилиты R-Studio видны пропавшие файлы/папки с реальным обьёмом, но заполненные нулями. Восстанавливаются они некорректно. Попытка исправлять параметр "parentcid" в конфигурационном файле относящемся к 000001-delta чтобы снова подцепить этот диск результатов не дала. Через Virtual Infrostructure Client снапшотов для данной машины не видно. Утилита rvtoos пишет "Possibly a Zombie vmdk file! Please check." на этот delta-файл.

Вопрос: возможно ли восстановить информацию с такого диска?

Tags (3)
3 Replies
Sladky
Virtuoso
Virtuoso

Именно в вашем случае восстановить что либо дельное уже нельзя. Вы исполртили файл-исходник, относительно которого делалась дельта. Теперь у вас есть просто дельта, без основы.

VCP5
0 Kudos
apmyp86
Contributor
Contributor

     У меня была аналогичная проблема. Ко мне обратились с проблемой - не запускается виртуальная машина ругаясь на диски. Пользуясь поиском в сети испробовал разные варианты:

1. Исправление CID parentCID цепочек .vmdk (безрезультатно для моего случая);

2. Восстановление поврежденного .vmdk командой vmware-vdiskmanager -R <my-vmware-disk>.vmdk (безрезультатно для моего случая);

3. Попытки восстановление данных из отдельных .vmdk такими программами как r-studo, getdataback for ntfs, diskinternals vfms recovery, r.saver. Больше всего понравилась r.saver.

     На официальном сайте r.saver начал изучать коммерческое ПО восстановление данных. И решил попробовать ufs explorer standard recovery. В данном ПО есть возможность указать последовательность .vmdk. Это и помогло восстановить всю информацию с виртуального диска.

     Не большая инструкция как собрать виртуальный диск из дельт в ufs explorer:

1) Открываем последовательно все части виртуального диска кнопкой "Открыть"; (в моем случае *-flat.vmdk,*-000001-delta.vmdk,*-000002-delta.vmdk,*-000003-delta.vmdk);

2) В списке подключенных хранилищ нажимаем правой клавишей мыши на последнюю дельту (в моем случае *-000003-delta.vmdk) и выбираем пункт "Сделать "Дельтой для..."" и указываем на пред идущий .vmdk (в моем случае *-000002-delta.vmdk) и т.д. до *-flat.vmdk. В списке подключенных хранилищ будут появляться .vmdk уже с разделами. ;

ufs.png

3) Нажимаем правой кнопкой мыши по необходимому разделу последней дельты из полученных .vmdk из пункта 3 и выбираем пункт "Посмотреть файловую систему";

4) Находим важную информацию выделяем и копируем кнопкой "копировать в...".

     Так же можно сохранить собранный диск в .img

     Надеюсь что описанная выше мини инструкция кому то еще поможет Smiley Happy

0 Kudos
zaq_nau
Contributor
Contributor

а как быть если одного файла из цепочки нету. есть

server_2-delta.vmdk

server_2.vmdk

server_2-000001-delta.vmdk

server_2-000001.vmdk

server_2-000003-delta.vmdk

server_2-000003.vmdk

server_2-000004-delta.vmdk

server_2-000004.vmdk

ParentID server_2-000003.vmdk и server_2-000004.vmdk ссылаются на server_2.vmdk, а server_2-000001.vmdk на несуществующий vmdk.

0 Kudos