Тайны и секреты компьютера
Шрифт:
Программа для восстановления данных после форматирования просканирует логический диск и найдет на нем файлы, бывшие некогда каталогами, ориентируясь при этом на типичные последовательности байтов ("метки"), характерные именно для файлов-каталогов. Затем она узнает из этих файлов номера первых кластеров содержащихся в них обычных файлов. К сожалению, информация об остальных кластерах, занимаемых файлами, потеряна навсегда, поэтому Unformat (как и UnErase Wizard), добавит каждому файлу следующие за первым кластером свободные кластеры в количестве, равном занимаемому ранее файлом числу кластеров, и занесет в FAT информацию об этом.
После этого Unformat создаст в корневом каталоге свежеотформатированного диска новые каталоги и укажет в этих каталогах имена и первые кластеры узнанных на предыдущем
Такая обычная ScanDisk…
Наблюдая за работой всем известной, стандартной программы ScanDisk из Windows 95/98, можно увидеть немало интересного… Конечно, если смотреть внимательно и вдумыватся в то, что видишь.
1. Программа ScanDisk просматривает FAT. Так как вся FAT находится в одном месте диска, то считывается и проверяется она очень быстро. На этом этапе своей работы ScanDisk ищет ошибки файловой системы — общие кластеры, и в случае обнаружении таковых исправляет структуру FAT, копируя эти кластеры для каждого из содержащих их файлов и соответственно изменяя содержимое FAT.
2. А теперь ScanDisk проходит по структуре каталогов — то есть считывает все файлы-каталоги, проходя по их иерархии. Это связано с необходимостью многократного перемещения головок жесткого диска, поскольку эти файлы расположены в разных местах диска. Поэтому времени на "Проверку папок" уходит немало. На этом этапе также собираются данные для последующего анализа диска на предмет наличия потерянных кластеров — помеченных как занятые, но не принадлежащих ни одному из файлов. Сам этот анализ происходит сразу после "Проверки папок". Потерянные кластеры могут быть преобразованы в файлы или удалены.
3. Системная область — это область, занимаемая FAT. Ониа находится в начале логического диска. В те секторы, которые FAT занимает, данные пользователя записывать нельзя, а повреждение здесь приведет к потере и расположенных на диске файлов, так как операционная система не сможет их найти.
4. Проверяется область данных пользователя на предмет поврежденных секторов. В случае обнаружения таковых в FAT будут занесены соответствующие указания.
DiskEditor
Это редактор содержимого диска, разработанный нашими соотечественниками — компанией ФизТехСофт. Он позволяет просматривать содержимое диска не средствами операционной системы, а "на физическом уровне" — побайтово, то есть смотреть, что записано в каждой электронной ячейке диска, в каждом его секторе. Вот, как, к примеру, выглядит корневой каталог логического диска — смотрите рис. 8.11, или FAT — рис. 8.12. Разобраться в хитросплетении кодов, конечно, сложно… Одно радует — операционная система делает это автоматически, а мы этого даже не замечаем.
Рис. 8.11.Это — корневой каталог диска, отображенный в DiskEditor'е. Именно так он выглядит на уровне дорожек, секторов и битов.
Основное предназначение DiskEditor'а — помощь в восстановлении информации на жестком диске в случае поражения его вирусом или повреждения служебной информации. Поэтому, как вы, наверное, заметили из рисунков, в DiskEditor'е возможны два представления информации — шестнадцатиричный (слева) и текстовый (справа).
Рис. 8.12. Святая святых диска — таблица FAT. Вот что это такое в реальности…
В случае печальной необходимости восстановления винчестера можно запустить DiskEditor с дискеты. Имеется возможность создать загрузочную дискету специально для DiskEditor'а, для чего в комплекте редактора есть специальная программа, инсталлирующая на дискету сокращенную версию операционной системы PTS-DOS, позволяющую загрузиться с этой дискеты и работать с DiskEditor'ом. Шестнадцатиричное представление информации удобно использовать для восстановления программного кода загрузочных секторов диска, ну, а текстовое представление поможет вам все-таки вытащить нужную информацию с диска (рис. 8.13). Правда, только представленную в формате простого текста или HTML и только за один прием из одного кластера (второй по всему диску искать придется), но все же хоть что-то… [25]
25
Пример восстановления загрузочных секторов диска приведен в статье http://www.ixbt.ru/storage/cih_diehard.html.
Рис. 8.13.Слева — вот файл с так нужными мне данными, который был на погибшем диске. Справа — DiskEditor нашел его на поверхности диска.
О старых BIOS и о больших дисках
Представим себе следующую ситуацию.
Наконец наступил долгожданный день, и компьютер, который у вас уже три года, дождался обновления. Пошли вы на рынок, купили новый большой винчестер. Ставите его в компьютер… и — что это, BIOS его не определяет! Ладно, вручную ставим параметры… но второй диск, новый, большой, свежекупленный, не виден из MS-DOS! Причем FDisk его распознает. Неужели вам продали некачественную вещь?
Несете его к другу, подключаете… Все видно, все форматируется. Ставите себе снова. Из MS-DOS не виден, из Windows виден. Весь.
Итак, диск исправен. Но в чем же причина таких чудес?
В устаревшем BIOS. Старые версии BIOS (выпущенные до 1999 г.) не позволяют работать с винчестерами емкостью больше 8 гигабайт, — о причинах этого рассказано выше. Системы же семейства Windows используют свои программы-драйвера для работы с винчестерами, поэтому ограничение в 8 гигабайт на них не распространяется. Однако сначала они должны загрузиться, а при загрузке волей-неволей приходится использовать средства BIOS для работы с винчестером. А это-то невозможно…
Иногда диски большой емкости на машинах со старым BIOS'ом все же видны, но работать из через BIOS можно только с их первыми 8-ю гигабайтами (именно с такими ситуациями были связаны случаи отказа загрузки WindowsNT, размещенной на логическом диске емкостью больше 8 гигабайт, после очередного обновления системных файлов — они оказывались за пределами восьмигигабайтной зоны и загрузчик NT, работающий с диском через BIOS, не мог тогда их прочитать).
Пути решения описанной проблемы, помимо приобретения новой материнской платы с более совершенным BIOS'ом (а это все платы для Pentium II, III, IV, Celeron, Duron, Athlon, а также платы для Pentium I на чипсетах Ali Aladdin, Via MVP3 и Via MVP4), могут быть такие.