Практические уроки восстановления данных
1 Уроки истории, анатомии, географии дает Андрей Устиц, а урок прикладного материализма — Николай Прокофьев. Им принадлежат и примечания в соответствующих разделах.
2 Вообще странно, как это все работало, по всем описаниям DOS 2.х жесткие диски в принципе не поддерживал. Возможно, фирма Olivetti что-то в нем подправила.
3 В BR вместо ВРВ были записаны нули. Что такое ВРВ, см. далее по тексту.
4 Вообще-то этот сектор имеет абсолютный адрес нуль, но так проще объяснять, поскольку не все люди — программисты, которые, как известно, считают все с нуля. Все параметры диска считаются с нуля, за одним исключением — порядковый номер сектора на дорожке считают с единицы.
5 В данном случае и далее все смещения от начала сектора считаем с нуля, поскольку именно так оно задается в параметрах поиска DE. Если первый раздел не активный, то РТ может начаться на один или два байта дальше, потому что в первом байте находится флаг активного раздела 80h или 0 (смещение 1Beh), а во втором — номер головки, с которой он начинается (смещение 1BFh).
6 Если же у вас используется FAT 32 и вам придется исправлять ВРВ, то необходимо обзавестись DE из состава NU2000. А еще лучше иметь обе версии, так как в старой не придется пересчитывать сектора в дорожки, а в новой — проще править РТ и ВРВ с новыми типами разделов.
7 Прямая формула для подсчета абсолютного сектора такова: АбсСектор = СекторНаДорожке + ВсегоСекторовНаДорожку * НомерГоловки + ВсегоСекторовНаДорожку * ВсегоГоловок * НомерДорожки — 1.
8 Не забудьте, что короткие имена файлов в директориях записаны в формате 8 + 3, прописными буквами, с дополнительными пробелами до восьми символов и без точки. Например, autoexec.bat будет записан как AUTOEXECBAT.
9 Что, кстати, и делает программа моего друга.
10 Сначала настоятельно рекомендуется все выстроить на бумаге, а затем приступать к работе с диском.
11 Клавиша «пробел» перебирает их по кругу.
12 Загрузочный раздел необходимо пометить галочкой, но сразу этого лучше не делать.
13 При сложении адреса начального сектора с длиной раздела в 99,9% случаев должен получиться адрес начала следующего раздела.
14 Детальное описание полей для FAT 32 мне, к сожалению, недоступно, а описание Extended ВРВ приведено во врезке.
15 СекторовНаROOT = (ЗаписейВROOT * 32) / РазмерСектора НачалоДанных = ЗарезервированныхСекторов + (РазмерFAT * Кол-воFAT) + СекторовНаROOT. АбсСектор = НачалоДанных + ((НомерКластера — 2) * РазмерКластера).
16Поскольку FAT две, то есть большая вероятность для первой копии найти хороший сектор во второй, и наоборот, для второй к первой.