|
Форум iHDD.RU Ремонт накопителей и восстановление информации
|
Восстановление Partition Table
|
Автор |
Сообщение |
AlexLambin
Зарегистрирован: 05.02.2006 Сообщения: 12
|
Добавлено: Вс, 05 Фев, 2006 02:27 Заголовок сообщения: Восстановление Partition Table |
|
|
Здравствуйте.
Дело обстоит так. Я удалил MBR на винте. До этого на нем находилось 2 логических диска FAT 32. Диск С я восстановил с использованием образа, созданного с помощью NERO. Диск D восстановить не могу. Пробовал прогу EasyRecovery. Диска она так и не нашла.NDD тоже не дал положительных результатов.
С помощью DiskEditora смотрел содержимое сектора, который следует сразу после диска С - он пустой,т.е. таблицы раделов там нет. При помощи того же DiskEditor'а нашел каталог диска D. Вычислив расстояние в секторах между каталогом и FAT'ом диска С, я рассчитал местоположение FAT'а для D. Посмотрел содержимое полученного сектора и обнаужил нечто похожее на FAT.
Т.е. и FAT и каталог целы. Однако ни одна из программ, коорыми я пользовался не могли найти потеряный диск.
Что же мне теперь делать? Может кто-нибудь посоветует какой-нить дельный софт? Если нет, то дайте пожалуйста совет, как мне дальше действовать, чтобы восстановить диск.
Заранее всем спасибо! |
|
Вернуться к началу |
|
|
AlexLambin
Зарегистрирован: 05.02.2006 Сообщения: 12
|
Добавлено: Вс, 05 Фев, 2006 02:32 Заголовок сообщения: |
|
|
Да, чуть не забыл.
После последнего переразбиения диска с помощью Partition Magic я создал какие-то дискеты. Может они могут быть полезными? Если да, то как из них вытянуть инфу о размерах и расположении разделов? |
|
Вернуться к началу |
|
|
Antech
Зарегистрирован: 03.10.2005 Сообщения: 1281
|
Добавлено: Вс, 05 Фев, 2006 16:29 Заголовок сообщения: |
|
|
Разделы обычно начинаются с нулевой головки и первого сектора, это так, к слову.
А вообще-то Вам следует найти бут-сектор раздела D. Ну там найдете характерные слова типа "FAT32" и сигнатуру 55AA в конце сектора. Далее соорудите таблицу разделов вручную (для удобства в WinHex есть шаблон, под DOS можно DMDE попробовать, если в Вашем редакторе нет шаблонов). Если нужно, то описание структуры таблицы разделов есть тут: akina.hop.ru/mbr.php3 |
|
Вернуться к началу |
|
|
AlexLambin
Зарегистрирован: 05.02.2006 Сообщения: 12
|
Добавлено: Вс, 05 Фев, 2006 21:45 Заголовок сообщения: |
|
|
Дело в том, что загрузочного сектора диска D нет. Я искал фразу "FAT32" на всём пространстве, где был диск D и ничего не нашёл.
Я подозреваю, что при восстановлении диска С с образа, раздел для него получился немного больше, что могло привести к затиранию загрузочного сектора диска D. Хотя я и сомневаюсь, что такое возможно.
В принципе, наверное можно вычислить положение загрузочного сектора диска D(по известным координатам каталога и FAT) и в этот сектор скопировать загрузочный сектор другого диска (например С). При этом, естественно, надо будет изменить кое-какие поля.
Может кто-нить подскажет, как можно вычислить координаты загрузочного сектора в моём случае?
А что с дискетами от PartitionMagic? Пригодятся или нет? |
|
Вернуться к началу |
|
|
Antech
Зарегистрирован: 03.10.2005 Сообщения: 1281
|
Добавлено: Пн, 06 Фев, 2006 12:26 Заголовок сообщения: |
|
|
AlexLambin
Да уж, значит не все так просто... Загрузочный сектор действительно можно было бы попробовать скопировать от другого FAT32 раздела. Весь вопрос - в том, куда именно. Начало таблиц FAT сохранилось? Каждая должна начинаться с байта F8h. Посмотрел сейчас начало раздела FAT16 на флэшке (у меня маленький образ - только начальный кусок), там за бут-сектором следующий сектор - уже первая таблица FAT. Так вот. Найдите вторую таблицу FAT, она должна начинаться с известного нам уже байта F8. Начало первой таблицы наверняка затерто, но есть ведь вторая! Скопируйте ее на место первой так, чтобы их "хвосты" совпали (предполагается, что хоть что-то от первой таблицы осталось). Теперь у Вас есть 2 полноценных таблицы. Сразу перед первой вставьте бут-сектор какого-нибудь здорового FAT32 раздела. Поправьте некоторые параметры (sectors per cluster, sectors per FAT...). В таблице разделов создайте раздел, указывающий на Ваш бут-сектор. Теперь в WinHex используйте кнопочку Access, чтобы браузить по каталогам (он менее чувствителен к глюкам, чем обычные браузеры). В идеале все заработает. В реале - скорее всего, нет: ошибки неизбежны, да и sectors per cluster под вопросом...
Кстати, надеюсь Вы "FAT32" не в юникоде искали?
Покопайтесь на дискетах, которые создал PM! Там могут быть какие-нибудь отчеты (видел тут один отчет PM на iXBT, так там все нужные параметры BS есть). |
|
Вернуться к началу |
|
|
AlexLambin
Зарегистрирован: 05.02.2006 Сообщения: 12
|
Добавлено: Пн, 06 Фев, 2006 13:56 Заголовок сообщения: |
|
|
1)Фразу "FAT32" я искал не в юникоде.
2)Не могли бы Вы дать мне ссылку на тот отчет PM?
Дело в том, что сама таблица FAT32 по всей видимости не повреждена. Я уже встречал в начале исчезнувшего диска нечто похожее на неё (первый элемент - F8h FFh FFh FFh, второй - FFh FFh FFh FFh, часто встречающиеся EOF и т.п.). Остаётся открытым вопрос - куда именно (на каком расстоянии от таблицы FAT) поместить бут-сектор.
Кстати как вычислить размер диска в кластерах. Я имею в виду, следует ли в этот размер включать служебные области диска (FAT,каталог и т.п.)? |
|
Вернуться к началу |
|
|
Antech
Зарегистрирован: 03.10.2005 Сообщения: 1281
|
Добавлено: Пн, 06 Фев, 2006 14:31 Заголовок сообщения: |
|
|
AlexLambin
Не могли бы Вы дать мне ссылку на тот отчет PM?
Вот, нашел: http://forum.ixbt.com/topic.cgi?id=11:33585
Я уже встречал в начале исчезнувшего диска нечто похожее на неё (первый элемент - F8h FFh FFh FFh, второй - FFh FFh FFh FFh, часто встречающиеся EOF и т.п.).
А вторая аналогичная таблица после нее есть? Она, естественно, тоже с F8h должна начинаться.
Остаётся открытым вопрос - куда именно (на каком расстоянии от таблицы FAT) поместить бут-сектор.
Попробуйте прямо в предыдущий сектор. Т. е. бут сектор - и в следующем секторе начинается первая таблица FAT, как я уже говорил, я такое на флэшке только что видел (правда, там FAT16).
Кстати как вычислить размер диска в кластерах. Я имею в виду, следует ли в этот размер включать служебные области диска (FAT,каталог и т.п.)?
Да, это полный размер раздела. Только вот там вроде не в кластерах, а в секторах. |
|
Вернуться к началу |
|
|
AlexLambin
Зарегистрирован: 05.02.2006 Сообщения: 12
|
Добавлено: Вт, 07 Фев, 2006 14:02 Заголовок сообщения: |
|
|
Спасибо за ссылку. Хотелось бы узнать имя файла отчёта
Второй копии FAT я не нашёл
По поводу FAT16. Для этой файловой системы, число "зарезервированных" секторов всегда равно 1. Поэтому таблица FAT следует непосредственно после бут-сектора. Для FAT32 это число "обычно" равно 32. Т.к. я не знаю, какую именно копию FAT я нашёл (1-ю или 2-ю), то, соответственно, не могу определить место бут-сектора. Может кто подскажет?
Да, и ещё вопрос. Как, зная длину раздела в секторах, вычислить размер таблицы FAT в секторах? Нужно ли при этом учитывать "зарезервированные" (для бут-сектора и т.п.) сектора, сектора для таблиц FAT и для каталога? |
|
Вернуться к началу |
|
|
Tomset
Зарегистрирован: 29.09.2005 Сообщения: 1594 Откуда: Москва.
|
Добавлено: Вт, 07 Фев, 2006 14:36 Заголовок сообщения: |
|
|
AlexLambin
Цитата: | Может кто-нить подскажет, как можно вычислить координаты загрузочного сектора в моём случае? |
На другом харде сделай похожее размещение разделов и по образу и подобию ищи на потерпевшем. |
|
Вернуться к началу |
|
|
Antech
Зарегистрирован: 03.10.2005 Сообщения: 1281
|
Добавлено: Вт, 07 Фев, 2006 16:18 Заголовок сообщения: |
|
|
AlexLambin
вычислить размер таблицы FAT в секторах
У Вас есть Nкластеров=NсекторовРаздела/NсекторовКластера. Каждый кластер в таблице пусть описывается 4 байтами. Тогда NбайтТаблицы=4*Nкластеров, NсекторовТаблицы=NбайтТаблицы/512. Примерно так, я думаю. Ку?
я не знаю, какую именно копию FAT я нашёл
Если она начинается с F8h, и после нее идет (не важно через сколько секторов) нечто похожее на ROOT (там на вид обычно легко заметить directory entries), то это вторая копия. Да и как могла сохраниться первая и улететь вторая, если мы знаем, что был затерт непрерывный кусок от нулевого до определенного LBA?
А Вы не подскажите, между таблицами FAT нет никакого зарезервированного пространства, вторая начинается сразу после первой, в следующем секторе?
BTW, TomSet дал очень полезный совет: все эти выкладки и рассуждения полезно проверять на здоровом FAT32 разделе. |
|
Вернуться к началу |
|
|
AlexLambin
Зарегистрирован: 05.02.2006 Сообщения: 12
|
Добавлено: Вт, 07 Фев, 2006 18:08 Заголовок сообщения: |
|
|
Насколько я помню, таблицы FAT следуют непосредственно друг за другом. Но в этом я не совсем уверен. Сегодня вечером уточню.
У Вас есть Nкластеров=...
Т.е. Вы считаете, что в этот размер входят и служебные части раздела? Хм. Вообще говоря, если исходить из того, что FAT используется только для адресации файлов, то довольно странно, что в её размер надо включать служебную область раздела. Ну да ладно...
Кстати, я слышал, что вторая таблица FAT на самом деле редко содержит актуальную информацию. Это связано с тем, что многие операционные системы часто не утруждают себя производить изменения обеих копий. Так ли это?
По поводу затирания первой таблицы FAT. Довольно странно всё это. Ведь затереть я её мог только тем, что хранилось в образе диска, который я сохранял. На самом деле, таблица должна была затерется не какой-нибудь ерундой, а своей же копией, сделанной несколькими часами ранее. |
|
Вернуться к началу |
|
|
AlexLambin
Зарегистрирован: 05.02.2006 Сообщения: 12
|
Добавлено: Ср, 08 Фев, 2006 02:15 Заголовок сообщения: |
|
|
Копии фат следуют непосредственно друг за другом.
В общем я проделал следующее.
1) Посчитал расстояние от начала фат2 до начала каталога. Это и есть размер фат в секторах.
2) Зная размер фат в секторах и начало 2-ой фат, я вычислил начало первой фат. К моему немалому удивлению, полученное значение оказалось на диске С! Т.е., по всей видимости, при восстановлении с образа Nero размер диска С был определён неверно. Более того, на место тех секторов, которые изначально находились в начале диска D была записана какая-то ерунда, которая и затёрла бут-сектор и фат1.
3) Полагая, что число "зарезервированных" секторов равно 32, получил местоположение бут-сектора диска D. Естественно, на этом месте находилась какая-то ерунда.
Таким образом, теперь мне необходимо восстановить диск D по каталогу и фат2. Это вообще реально? В фат2 содержатся актуальные данные? Если реально, то подскажите пожалуйста, как мне рассчитать поля для бут-сектора с учетом того, что имеется всего 1 копия фат. |
|
Вернуться к началу |
|
|
Antech
Зарегистрирован: 03.10.2005 Сообщения: 1281
|
Добавлено: Ср, 08 Фев, 2006 10:24 Заголовок сообщения: |
|
|
AlexLambin
Вы считаете, что в этот размер входят и служебные части раздела?
Не уверен. Посмотрите на исправном FAT32 разделе (у меня нет такого).
таблица должна была затерется не какой-нибудь ерундой, а своей же копией, сделанной несколькими часами ранее.
Это зависит от глюков и особенностей проги, которой Вы делали образ. Я не довряю деструктивным автоматическим прогам, ВинХекс надежнее - делает только то, что просишь.
Посчитал расстояние от начала фат2 до начала каталога. Это и есть размер фат в секторах.
А как же First cluster of root? Там вроде обычно двойка. Так как это не может быть относительно начала раздела, то очевидно, отсчет начинается после таблиц FAT. Т. е. между FAT2 и ROOT еще 1 (или 2?) кластера.
восстановить диск D по каталогу и фат2. Это вообще реально?
Думаю, да. Вряд ли популярные ОС не изменяют FAT2, так что FAT2 наверняка актуален. Впрочем, Вы можете это проверить.
как мне рассчитать поля для бут-сектора
Простите, у меня нет столько времени (да и опыта), это Вы уж как-нибудь сами сделайте.
http://www.iatp.irklib.ru/sites/Karmadanov/Recovery/4_BS_FAT.htm |
|
Вернуться к началу |
|
|
AlexLambin
Зарегистрирован: 05.02.2006 Сообщения: 12
|
Добавлено: Ср, 08 Фев, 2006 15:34 Заголовок сообщения: |
|
|
А как же First cluster of root
Хм. Интересно. Наверное Вы правы. Сегодня вечером уточню.
В общем, скорее всего придётся покупать ещё 1 винт на 200 Гб и разбивать его так же как и первый. Осталось только выяснить первоначальный, истинный размер диска С.
PS Спасибо за ссылку |
|
Вернуться к началу |
|
|
Antech
Зарегистрирован: 03.10.2005 Сообщения: 1281
|
Добавлено: Ср, 08 Фев, 2006 16:31 Заголовок сообщения: |
|
|
AlexLambin
А зачем Вам второй хард?
Если надо просто изучить "живой" FAT32, Вы можете что угодно использовать (старый маленький винт, флэшку, жалко что дискету Винда в FAT32 не хочет форматить ).
Если надо слить инфу, то непонятно, зачем размечать его аналогично имеющемуся. |
|
Вернуться к началу |
|
|
AlexLambin
Зарегистрирован: 05.02.2006 Сообщения: 12
|
Добавлено: Ср, 08 Фев, 2006 17:28 Заголовок сообщения: |
|
|
1) Аналогичное разбиение необходимо для того, чтобы посмотреть точные поля бут-сектора и таблицы разделов.
2) Мне негде достать хард, который можно было бы переразбить
3) На новый хард можно будет полностью скопировать мой диск и в случае неудачи восстановить копию. Кстати, не подскажете, с помощью какой проги можно скопировать один винт на другой "сектор в сектор"? |
|
Вернуться к началу |
|
|
Antech
Зарегистрирован: 03.10.2005 Сообщения: 1281
|
Добавлено: Чт, 09 Фев, 2006 10:06 Заголовок сообщения: |
|
|
AlexLambin
с помощью какой проги можно скопировать один винт на другой "сектор в сектор"?
Есть такая прога, и Вы ее знаете. WinHex. Под DOS - CopyR и CopyR DMA (но я ими не пользовался, говорят, CopyR DMA глючит на некоторых мамах).
Аналогичное разбиение необходимо для того, чтобы посмотреть точные поля бут-сектора и таблицы разделов
Таблица разделов интереса не представляет, там более/менее даже мне ясно.
Но если у Вас будет второй винт, то почему бы не воспользоваться рекаверилками типа R-Studio, Active@Undelete e.t.c.? Наверняка это будет быстрее, чем вручную.
Или Вы ради спортивного интереса? Но в таком случае с дополнительным винтом - "никаких очков за стиль" . |
|
Вернуться к началу |
|
|
AlexLambin
Зарегистрирован: 05.02.2006 Сообщения: 12
|
Добавлено: Пт, 10 Фев, 2006 13:44 Заголовок сообщения: |
|
|
Не могли бы Вы дать ссылку, откуда можно слить WinHex и лекарство к нему?
Проги типа R-Studio и EasyErase смогли восстановить лишь 90% инфы (я недавно проводил дефрагментацию ). Однако они не смогли восстановить самые ценные для меня данные, которые я записал на винт за последнее время.
Повторюсь - винт мне необходим лишь для того, чтобы иметь резервную копию. Я с такой ситуацией сталкиваюсь впервые и могу чего-нить испортить. А если под руками есть копия винта, то если что, можно все вернуть. Вот |
|
Вернуться к началу |
|
|
Antech
Зарегистрирован: 03.10.2005 Сообщения: 1281
|
Добавлено: Пт, 10 Фев, 2006 14:43 Заголовок сообщения: |
|
|
AlexLambin
Ссылку на варез дать не могу, тут правила не разрешают. Но найти в сети WinHex и крак - не проблема (ищите, например, версию 11.26 - для нее лекарство найдется легко). |
|
Вернуться к началу |
|
|
AlexLambin
Зарегистрирован: 05.02.2006 Сообщения: 12
|
Добавлено: Ср, 15 Фев, 2006 14:38 Заголовок сообщения: |
|
|
Всем спасибо за участие!!!
Я восстановил все (100%).
В общем, вот что я сделал.
1) Вычислил размер фат FAT_size. Он равен разности начального сектора 2-й копии фат и начального сектора корневого каталога.
2) Нашел начало 1-й копии фат FAT1_beg = FAT2_beg - FAT_size.
3) Скопировал 2-й фат на место 1-го.
4) Нашел местоположение загрузочного сектора диска D (D_beg). Обычно в FAT32 между загрузочным сектором и 1-й копией фат находится 32 зарезервированных сектора. В них располагаются 2 копии загрузочного сектора и соответствующие им структуры FAT_Info.
Это число (32) указывается в самом загрузочном секторе. Поэтому в дальнейшем при правке загр. сектора диска D (см. ниже) необходимо в соответствующее поле вписать "32".
У меня много проблем было связано с тем, что диск D начинался не с нового цилиндра, а с дорожки № 76. Как я умудрился сделать такое разбиение винчестера, я не помню. Но вот Вам мой совет - ВСЕГДА при создании раздела делайте его выровненным по границе цилиндра (0 дорожка,1-й сектор). Хотя многие производители программного обеспечения и утверждают, что их продукты нормально работают с невыровненными разделами, я могу утверждать - это всё полная фигня. Partition Magic и Partition Table Doctor ругались и иногда отказывались видеть (!) разделы на винчестере даже после того, как я его восстановил и перекачал с него все файлы.
5) В Partition Table создал расширеный (Extended) раздел.
Его начало (EXT_beg) высчитал след. образом. Цилиндр - тот же, что и у загр. сектора D;головка - 0;сектор - 1.
Конец раздела (EXT_end) - самый последний сектор винта.
Размер равен EXT_size = EXT_end - EXT_beg + 1
Колличество секторов до раздела EXT_before = C_size + 63 = EXT_beg_LBA - 1,
где 63 - начало диска С
EXT_beg_LBA - начало расширенного раздела в LBA
C_size - размер диска С из Partition Table
6) Первый сектор расшир. раздела обнулил и вписал в него Partition Table с 1-й записью. Эта запись - начало диска D относительно начала расшир. раздела. Причём тут есть одна тонкость. Параметры "начало" и "конец" заданы относительно начала винта, а "размер" и "колличество секторов до раздела" - относительно начала расшир. раздела. Например, начало у меня было 1275,76,1, а колличество секторов до раздела - 76*63 = 4725.
Размер диска D - D_Size = EXT_end - D_beg + 1
7) На место загрузочного сектора D вписал загрузочный сектор диска С: и изменил некоторые параметры. Все изменения сейчас уже не помню, но вот некоторые из них:
FAT_SIZE - вычислено ранее.
Размер (в секторах) - из EXT_Partition_Table
Колличество секторов в кластере - определил с помощью проги Ontrack Easy Recovery. Но можно и самому посчитать CLUST_NUM = PART_SIZE / (FAT_SIZE_IN_SEC * 512 / 4). Полученное значение округлить до ближайшей степени двойки.
HIDEN_SECTORS - колличество секторов до раздела (в моём случае - 4725).
8 ) Сектор, следующий за загрузочным обнулил - там должна была находиться структура FAT_Info.
9) Сделал копию загрузочного сектора и поместил её на расстоянии 6 секторов от начала диска D. Обнулил следующий сектор. |
|
Вернуться к началу |
|
|
|
|