Восстановление информации своими руками


Master boot record – техника восстановления - часть 3


Загрузитесь с системной дискеты (другого винчестера, CD-диска) и посмотрите – видны ли ваши логические диски или нет. Если да, то смело переходите к следующему пункту, в противном случае соберитесь с духом и приготовьтесь немного поработать руками и головой.

Восстановление основного раздела, созданного FDISK'ом или Disk Manager'ом в большинстве случаев осуществляется элементарно, а остальные, как правило, восстанавливать и не требуется, поскольку именно MBR гибнет чаще всего, а расширенные патриции, рассредоточенные по диску дохнут разве что при явном удалении разделов средствами FDISK/Disk Manager.

Адрес стартового сектора первого логического диска всегда равен 0/1/1 (Cylinder/Head/Sector), относительный (Relative) сектор – количеству головок жестка диска уменьшенных на единицу (сведения о геометрии диска можно почерпнуть из любого дискового редактора, в том числе и Sector Inspector'a). Конечный сектор определить несколько сложнее. Если загрузочный сектор цел (см. "загрузочный сектор – техника восстановления"), то узнать количество секторов в разделе патриции (total sectors) можно и из поля BootRecord.NumberSectors, увеличив его значение на единицу. Тогда конечный цилиндр будет равен LastCyl := TotalSectors/(Heads*SecPerTrack), где Heads – кол-во головок на физическом диске, а SecPerTrack – кол-во секторов на трек. Конечная головка равна LastHead := (Total Sector – (LastCyl*Heads SecPerTrack))/SecPerTrack, а конечный сектор равен LastSec :== (Total Sector – (LastCyl*Heads SecPerTrack)) % SecPerTrack. Пропишите полученные значения в MBR и посмотрите – не находится ли за вычисленным концом раздела следующий раздел? Это должна быть либо расширенная таблица разделов, либо boot-сектор. Если это так, создайте еще одну запись в partition table, заполнив его соответствующим образом.

А если boot-сектор отсутствует и не может быть восстановлен – реально ли восстановить таблицу разделов или нет? Да, можно. Необходимо лишь найти boot или partition следующих разделов, в чем вам поможет контекстный поиск. Ищите сектора, содержащие сигнатуру 55h AAh в конце. Отличить boot от partition очень просто (в boot секторе по смещению два байта от его начала расположен идентификатор производителя (NTFS, MSWIN4.1 и т.д.). Логично, что размер текущего раздела на один сектор меньше, а зная размер и геометрию диска можно рассчитать и конечный цилиндр/головку/сектор.




Начало  Назад  Вперед



Книжный магазин