SuperDee AFAIK нет таких прог, чтобы структуру NTFS (и даже FAT) прямо на диске восстанавливали. Это очень опасно для данных, в любом нормальном эвристике есть предупреждение о том, что на пострадавший диск никакая запись не производится, пока инфа не будет восстановлена на другой физический носитель.
P. S. Вы перепутали MBR c файловой системой. MBR у Вас в порядке.
pasvel Был бы очень благодарен за пояснение Если бы Вы еще и последовали советам...
Предполагается, что посекторный образ уже сделан (WinHex -> Clone Disk). Иначе к дальнейшему приступать совершенно не рекомендуется! Кроме того, при отсутствии посекторного образа рекомендуется немедленно прервать сканирование в R-Studio и выключить винт! I. Простой путь.
Запустите WinHex, откройте файл образа (File -> Open). В меню Specialist выберите Interpret Image File As Disk.
0. Определение дополнительных данных.
Справа вверху окна редактирования нажмите Access -> Partition -> Boot Sector. Внизу в строке состояния Вы увидите номер показанного сектора. Это номер первого сектора раздела (
смещение начала раздела).
Нажмите Alt+F12 и выберите Boot Sector NTFS. Там есть Sectors Per Cluster - размер кластера (
количество секторов на кластер).
1. Поиск файлов MFT, MFT Mirror.
Справа вверху окна редактирования нажмите Access -> Partition -> Open. Там же, отметьте чекбокс с иконкой каталога. Должен появиться список файлов, среди них - $MFT, $MFTMirr.
2. Определение области размещения MFT.
Нажмите два раза на файл $MFT. ВинХекс немного подумает и выведет список кластеров, принадлежащих MFT. Если Вы перейдете в конец списка, то увидите там "Fragments: ___". Это количество фрагментов. Если фрагмент один, значит его первый и последний кластер - это первый и последний кластер в списке. Если фрагментов более одного, значит нужно полистать список и найти первый и последний кластер каждого фрагмента.
Чтобы перейти от номера кластера к номеру сектора на NTFS разделе, нужно умножить номер кластера на размер кластера в секторах. Таким образом, Вы можете определить границы каждого фрагмента в секторах.
Если Вы открываете в R-Studio логический диск, то эти координаты и надо вводить, только после числа (номера сектора) через пробел
sec - это укажет R-Studio, что границы заданы в секторах.
Например, Вы видите список кластеров с 786432 по 805791. При 8 секторах на кластер (подсмотрели в Boot Sector NTFS) имеем номера секторов с 6291456
sec по 6446328
sec. Это и будут координаты данного фрагмента, которые мы вводим в R-Studio.
Если Вы открываете в R-Studio физический диск, то к полученным номерам секторов нужно прибавить смещение начала раздела (номер первого сектора раздела).
II. Сложный путь (Путь Джедая).
Этот способ может потребоваться, если на диске есть существенные повреждения, и WinHex (или другой редактор) не позволяет комфортно "путешествовать" по нему. Предполагается, что WinHex Вы освоили, и для Вас не проблема открыть физический/логический диск, перейти в нужный сектор (Alt+G) и т. д.
0. Определение параметров разделов.
Почитайте популярную статью про MBR и таблицу разделов:
www.akina.hop.ru/mbr.php3. Определите координаты раздела, инфу с которого надо восстановить.
1. Определение расположения начала файла $MFT.
Почитайте популярную статью про NTFS
http://www.iatp.irklib.ru/sites/Karmadanov/Recovery/8_NTFS_Data.htm. Главное, что Вам там понадобится: формат загрузочного сектора, формат FILE Record, прослеживание списка атрибутов.
Теперь, когда Вы знаете, где начинается раздел, Вы можете открыть его загрузочный сектор в виде шаблона Alt+F12 и посмотреть все что нужно. В том числе, начальные кластеры файлов $MFT и $MFTMirr. Как пересчитать их в сектора, Вы знаете из описания "Простого пути".
2. Определение координат файла $MFT.
Начало этого файла у Вас уже есть. Но как определить координаты фрагментов? Эта информация хранится в атрибуте 80h (DATA) файловой записи $MFT (ее легко найти в начале MFT, самая первая запись). Проследите список атрибутов до атрибута 80. От начала атрибута через Alt+G сместитесь на 20h байтов. Теперь курсор указывает в двухбайтовое поле - смещение списка экстентов. Вернитесь в начало атрибута, сместитесь на указанное количество байт. Курсор указывает на первый байт списка экстентов. Этот список имеет следующий формат. Он состоит из элементов, каждый элемент указывает на соответствующий фрагмент файла (в данном случае MFT). Элемент списка экстентов состоит из трех полей: один "сервисный" байт, несколько байт размера экстента, несколько байт смещения экстента. Первая цифра (знак) сервисного байта - количество байт в поле смещения экстента, вторая цифра - количество байт в поле размера экстента. Рассмотрим пример:
32 A0 4B 00 00 0C. Здесь мы видим, что поле размера экстента занимает два байта, а поле смещения - три байта. Причем размер экстента - 4BA0h кластеров, а смещение экстента - 0C0000h кластеров (обратите внимание на формат чисел, старшие байты записаны справа, такой формат называется High Endian, например 11 22 33 в дампе следует понимать как 332211h). Смещение первого экстента задается относительно начала раздела, смещение последующих экстентов - относительно предыдущих фрагментов. Элементы списка экстентов следуют друг за другом, пока не закончатся нулевым сервисным байтом.
Если Вы расшифруете ранлист $MFT, Вы будете знать координаты его фрагментов, которые нужно задать в R-Studio. Не забывайте, что в списке экстентов координаты в кластерах, а в R-Studio надо вводить в секторах (как пересчитать - Вы знаете).