Читаем Интернет-журнал "Домашняя лаборатория", 2008 №2 полностью

4. Поискать на этом диске точку входа корневой директории (ROOT). Так как она идёт сразу за 2-й копией FAT, определить размер FAT в секторах.

5. Перейти на работающий загрузочный диск, скопировать оттуда на испорченный диск таблицу разделов (MBR) и загрузочную запись (BOOT). Это будет примерно 100 первых секторов от начала диска. Короче — все сектора до первой копии FAT.

6. Скопировать с испорченного диска 2-ю копию FAT на место первой. Длину мы уже узнали в п.4.

7. После этих первых шагов винт начинает определяться как логический после перезагрузки, но файлы пока не доступны, в директориях — каша. Для того чтобы сделать диск опять полноценным, нужно посмотреть в том же DISKEDIT'е информацию о диске (количество дорожек, сторон, секторов) и прописать эту информацию в Partition table. Желательно в обе копии. Затем залезть в загрузочную запись и прописать эти данные и туда (для FAT32 туда ещё нужно прописать длину FAT в секторах и номер стартового сектора для корневой директории). Для этого придётся немножко посчитать. Следует помнить, что BOOT тоже в двух копиях, по этому изменения желательно вносить в обе.

8. Если всё было проделано правильно, то после перезагрузки винт выглядит как новенький. Нужно только полечить его антивирусом, чтобы через месяц не повторять эту процедуру по-новому.

Информация по восстановлению в вышеприведённом совете в целом верна, но вызвала у меня некоторые возражения. Автор совета, вероятно, имел дело с диском FAT32. Мне попадалось немало дисков FAT16, на которых после Win95.CIH не оставалось даже ROOT'а. Вероятно, вирус уничтожает фиксированное число секторов, начиная с таблицы разделов (MBR или Partition Table). Диски с FAT32 спасает значительно большая длина FAT. Если же вторая копия FAT не осталась — ничего приличного уже не восстановишь, при настойчивости — пару особо нужных текстовых файлов.

Комментарии к пунктам совета: 4. Средствами поиска diskedit "найти объект\подкаталог" корневую директорию не отыскать. Вот любую другую — запросто. Поэтому искать лучше подстроку "autoexec" или ИМЯ любого другого файла, наверняка имеющегося в корневой директории. Кстати, для FAT32 корневой каталог НЕ обязательно лежит сразу за FAT. И если так получилось, то искать конец FAT — задача весьма творческая.

5. Такое копирование корректно не всегда. Диски желательно брать похожие, а ещё лучше заранее сделать на загрузочную дискетку с diskedit копии MBR и BOOT.

Тогда и второй компьютер не нужен. Очевидно, что загрузочные записи FAT32 и FAT16 взаимно НЕ заменяемы (хотя бы потому, что у FAT32 она в 3 раза длиннее).

Менее очевидно, что MBR на разных НЖМД могут быть несовместимы. Например, перенесённый на НЖМД размером 8 Гб MBR, взятый на маленьком (около 1,5 Гб) диске, обрезал максимальный размер до 2 Гб, не стесняясь подправить и соответствующую запись в BIOS.

6. Если считать сектор, с которого начинается BOOT, за точку отсчёта, т. е. имеющим номер 0, то: для FAT16 первая и единственная копия BOOT имеет длину 1 сектор, FAT начинается с сектора 1; для FAT32 обе копии BOOT имеют длину 3 сектора каждая. Первая копия BOOT (рабочая) занимает сектора 0,1,2, вторая копия BOOT (резервная) — сектора 6,7,8. FAT начинается с сектора 32.

На первом разделе из лежащих на диске в физических секторах имеем следующие значения: FAT16, BOOT — Cyl 0, Side 1, Sector 1; FAT16, начало FAT — Cyl 0, Side 1, Sector 2; FAT32, BOOT — Cyl 0, Side 1, Sectors 1–3; FAT32, резервная копия BOOT — Cyl 0, Side 1, Sectors 7–9; FAT32, начало FAT — Cyl 0, Side 1, Sector 33.

7. По моим наблюдениям, единственно существенными данными являются: для MBR (или Partition Table):

— тип раздела (BIGDOS, FAT32, FAT32x, EXTEND, EXTNDx);

— активность (Yes, No); — адрес начала (Relative Sectors), который считается от того Partition Table, в котором написан!!! Прочие параметры используются только служебными программами (такими, как fdisk и diskedit).

— для BOOT: — размер кластера в секторах; — размер раздела в секторах.

Прочие параметры вычисляются при загрузке и хранятся в BOOT больше для информации.

В старых версиях diskedit размер раздела в секторах, указанный в BOOT, для просмотра и редактирования впрямую недоступен. Приходится находить и править его прямо на диске, где он лежит в шестнадцатеричном виде, что не очень удобно.

Для FAT32 действительно надо указать положение ROOT, но не в секторах, а в КЛАСТЕРАХ. Это значение ПОЧТИ всегда равно 2, в противном случае вычислить его очень непросто.

BOOT в двух копиях есть только у FAT32, у FAT16 копия BOOT одна. Никогда не видел второй копии MBR или Partition Table.

8. Если на НЖМД было несколько логических дисков, то придётся восстановить структуру из нескольких Partition Table.

Комментарии к комментариям: 5. Утверждение о возможной несовместимости MBR на разных НЖМД — неверно.

Ограничение в 2 Гб — от другого типа раздела в таблице разделов. A BIOS так и просто упомянут по ошибке — ни причём он.

Перейти на страницу:

Похожие книги