Пятница, 29.03.2024, 05:32
ArsNet - мир НИТ
Приветствую Вас Гость | RSS
Главная План восстановления винчестера - Форум Регистрация Вход
[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 1 из 1
  • 1
Форум » Мир IT » Проблемы с железом » План восстановления винчестера
План восстановления винчестера
WilDДата: Воскресенье, 05.04.2009, 21:41 | Сообщение # 1
Папаня
Группа: Администраторы
Сообщений: 704
Репутация: 16
Статус: Вне ресурса
Пол: Мужчина
Зарегистрирован(а): 04.08.2008
Награды:
За создание сайта За перенос домена За развитие ресурса За хорошую репутации За 100 Сообщений За 250 Сообщений За 500 Сообщений За первое сообщение на форуме и вступление в наши ряды
План восстановления винчестера при разрушении управляющих системных блоков Master Boot Record (MBR) и Boot Record
Этот текст представляет данные по восстановлению разрушенных системных блоков при использовании драйвера Disk Manager и ДОС 3.30. Предполагается, что пользователь уже имеет навык работы с программами Norton Utilites 4.5 или Disk Editor 5.0.

Прежде, чем браться за восстановление винчестера нужно узнать его основные характеристики: Drive Info, Physical Characeristic, такие как:

Sides (Число сторон винчестера),
Tracks (Число дорожек),
Sector per track (Секторов на дорожку).

Для тех, кто не знаком с форматами MBR и Boot Record ниже приведены соответствующие таблицы.

Master Boot Record (MBR) - Таблица разделов диска

Самый первый сектор твердого диска (0/0/1 - Track/Side/Sector) содержит Главную корневую запись, которая загружается в память и выполняется. Последняя часть этого сектора содержит таблицу разделов - таблицу с 16-байтовыми элементами. Этой таблицей манипулирует программа Disk Manager.

Смещение Длина Содержимое
+0 1beH код загрузки и выполнения корневого сектора активного раздела
+19eH 10H | _ | _ | _ | _ | _ | элемент раздела 6
+1aeH 10H | _ | _ | _ | _ | _ | элемент раздела 5
+1beH 10H | _ | _ | _ | _ | _ | элемент раздела 1
+1ceH 10H | _ | _ | _ | _ | _ | элемент раздела 2
+1deH 10H | _ | _ | _ | _ | _ | элемент раздела 3
+1eeH 10H | _ | _ | _ | _ | _ | элемент раздела 4
+1feH 2 | 55 | aa | подпись таблицы разделов (0aa55H)

Структура элемента раздела

Смещение Длина Содержимое
+0 1 | Boot | Флаг загрузки: 0=не активен, 80H = активен. Обычно равен 80h для раздела C:
+1 1 | Hd | Начало раздела: номер головки
+2 2 | Sec | Cyl | Начало раздела: сектор/цилиндр корневого сектора
+4 1 | Sys | Код системы: 0=неизвестна, 1=DOS 12-бит FAT, 4=16-бит 51h- Disk Manager
+5 1 | Hd | Конец раздела: номер головки
+6 2 | Sec | Cyl | Конец раздела: сектор/цилиндр последнего сектора
+8 4 | младш | старш | Относительный номер начального сектора
+0cH 4 | младш | старш | Размер (число секторов)
+10H начало следующего элемента раздела или 0aa55H для последн.элемент

Замечания :
Значения цилиндра и сектора занимают 10 и 6 бит соответственно:

1 1 1 1 1 1
-5T4T3T2T1T0T9T8T7T6T5T4T3T2T1T0-
¦c c c c c c c c C c S s s s s s¦
--+-+-+-+-+-+-+-¦-+-+-+-+-+-+-+--

Значение "относительного сектора" по смещению 08H в каждом разделе эквивалентно головке, сектору и цилиндру начального адреса раздела. Относительный сектор 0 совпадает с цилиндром 0, головкой 0, сектором 1. Относительный номер сектора прирастает сначала по каждому сектору на головке, затем по каждой головке и наконец по каждому цилиндру. Применима формула:
отн_сек = (#Цил * сек_на_цил * головок) + (#Гол * сек_на_цил) + (#Сек -1)

Структура корневого сектора (Boot Record)

Корневой сектор диска или раздела диска должен иметь следующий формат:

Смещение Длина Содержимое
+0 3 | JMP | xx | xx | Переход на код загрузки
+3 8 | 'I' | 'B' | 'M' | _ | _ | '3' | '.' | '2' | OEM-имя компании и версия систем
+0bH 2 | Sect | Siz | байт на сектор
+0dH 1 | Clust | Siz | секторов на единицу распределения (кластер)
+0eH 2 | Res | Secs | резервных секторов (секторов перед первой FAT)
+10H 1 | Fat | Cnt | число таблиц FAT
+11H 2 | Root | Siz | макс.число 32-байтовых элементов корневого оглавления
+15H 1 | Med | ia | дескриптор носителя (то же, что 1-й байт FAT)
+16H 2 | Fat | Size | число секторов в одной FAT
+18H 2 | Trk | Secs | секторов на дорожку (цилиндр)
+1aH 2 | Head | Cnt | число головок чтения/записи (поверхностей)
+1bH 2 | Hidn | Sec | спрятанных секторов (исп. в схемах разделения)
1eH размер форматированной порции корневого сектора начало кода и данных загрузки

Ситуация

1. В один прекрасный момент один или несколько разделов винчестера перестали читаться и тестовые программы утверждают, что это не Hard Disk, а Drive. При этом с этим диском ДОС не может работать.

Наиболее вероятной причиной этого может быть разрушение Boot Record этого диска.

Адрес Boot Record можно найти в физическом секторе с координатами 0/0/1 (Track/Head/Sector) в соответствующем разделу элементе Partition Table. Далее надо перейти к этому сектору и просмотреть его в формате Boot Record (клавиша F7 в программе Disk Editor). Если в полях корневого сектора находится "мусор", то надо в ручную восстановить этот сектор.

Надо забить нулями остальную часть загрузочного сектора или скопировать на это место загрузочный сектор системной дискетты если раздел диска активен (C:)

Затем надо вручную заполнить управляющие поля этого сектора:

Поле Boot Record Корректное значение
OEM ID: Можете записать сюда свое имя
Bytes per sector: 512
Sectors per cluster: ??? (См. дальше)
Reserved sectors at beginning: 1
FAT Copies: 2
Root directory entries: 512
Total sectors on disk: Это значение берется из Partition Table (поле +0Ch в соответствующем элементе)
Media descriptor byte: F8 Hex
Sectors per FAT: ??? (См. дальше)
Sectors per track: Значение берется из Drive Info
Sides: Значение берется из Drive Info
Special hidden sectors: Это значение равно значению Relative Sectors (Относительный номер начального сектора) (поле +08h в соответствующем элементе Part. Table) Если диск не загрузочный, то к этому значению прибавляется число 8388608 (800000h)

В этой таблице остались незаполненными поля Sectors per FAT (Секторов на FAT) и Sectors per Claster (Секторов на кластер). Их надо вычислять дополнительно:

Sectors per FAT : Просматриваем сектора диска, следующие за Boot Record, пока не найдем начало коренного каталога. Запоминаем координаты сектора каталога. Затем вычисляем относительный номер этого сектора относительно Boot Record из расчета, что известны Число Сторон на диске, Число Секторов на Дорожку и Относительный адрес Boot Record = 1.
Затем находить искомое поле S/F:
S/F := (<Относ. сектор каталога> -1) div 2.
Sectors per Claster: Это значение надо подобрать из расчета, что оно может принимать значения 8 sect/clast или 4 sect/clast.

2. В случае разрушения Partition Table восстановить утраченные значения гораздо сложней. Здесь самое сложное - это восстановить координаты начала и конца разделов диска. Это возможно только путем просмотра содержимого винчестера и контекстного поиска строк, характерных для Boot Record каждого размера винчестера. В качестве примера таких строк можно предложить:

"NOSYSTEM", "MSDOS3.3", "Disk Boot failure" и т.д.

Если вам удастся выполнить эту кропотливую работу, остальное не представляет проблем.

Поля элементов Partition Table заполняются следующим образом:

Флаг загрузки: =0 или =80H для диска C:
Начало раздела: Номер головки. Найденное значения координат начала раздела.
Начало раздела: Сектор/цилиндр корневого сектора. Найденное значения координат начала раздела.
Код системы: =1 для диска C: или =51h для остальных разделов
Конец раздела: Номер головки. Найденное значения координат начала раздела.
Конец раздела: Сектор/цилиндр корневого сектора. Найденное значения координат начала раздела.
Относительный номер начального сектора: Вычисляется по формуле, приведенной ранее, в описании формата Part. Table
Размер (число секторов): = Относит. сектор начала следующего раздела минус Относит. сектор начала этого раздела.

3. В случае разрушения и MBR и Boot Record задача значительно усложняется. Могу только порекомендовать восстановить сначала MBR, а затем все остальное.


Заработать много денег - храбрость, сохранить их - мудрость, граматно тратить - искуство.
 
Форум » Мир IT » Проблемы с железом » План восстановления винчестера
  • Страница 1 из 1
  • 1
Поиск: