Тайны и секреты компьютера
Шрифт:
Или другая ситуация: при записи нового файла операционная система для него отвела в FAT цепочку кластеров, а в каталог записать информацию о номере его первого кластера не успела. В итоге отведенные кластеры стали потерянными — и не пустые, и не принадлежащие какому-либо файлу. Данные в них, если все же оказались записанными, стали недоступными.
Все описанные ситуации могут серьезно затруднить работу с файлами. Общие кластеры приводят к потерям данных, а потерянные — к трате свободного места и утере их содержимого. Чтобы исправить подобные ошибки файловой системы, используются программы для проверки дисков — например, ScanDisk из поставки Windows или Norton Disk Doctor из комплекта Norton Utilities. Эти программы анализируют FAT и структуру
Много интересных материалов об устройствах различных файловых систем и их характеристиках можно найти на сервере www.ixbt.ru, в разделе http://www.ixbt.ru/storage [23] ].
Об удалении файлов и восстановлении данных
Когда выполняется команда удаления файлов с жесткого диска (в Windows это происходит при очистке «Корзины», так как при простом удалении файлов с помощью команды «Удалить» или кнопки Delete файлы перемещаются в «Корзину», а не удаляются), то сама информация, находящаяся в ячейках жесткого диска, не уничтожается. Выполняется лишь пометка в FAT кластеров, ранее занимаемых этим файлом, как свободных, а в файле каталога, в котором этот файл находился, первый символ имени заменяется на знак"!". Так как длинные имена файлов хранятся в файле каталога отдельно от настоящих имен, то они в этом случае сохраняются.
23
В частности, обратите внимание на статьи "Win95.CIH: Всем смертям назло" неизвестного автора, "Быстродействие FAT и NTFS" Дмитрия Михайлова, "Файловая система NTFS" его же (весьма полезная и интересная информация).
Если в каталог и в кластеры, ранее занимаемые удаленным файлом, больше не производилось записи, то имеется возможность файл восстановить. Для этого нужно просто просмотреть файл каталога и найти в нем имя файла, узнать из записи, относящейся к этому файлу, номер первого кластера файла, а затем записать информацию из этого кластера в новый файл на свободное место винчестера.
Если файл занимал больше одного кластера, то наверняка восстановить можно лишь содержимое первого кластера. Информация о том, в каких кластерах располагалось остальное содержимое файла, утрачивается полностью, так как из FAT информация об удаленном файле стирается.
Поэтому программы восстановления удаленных файлов (к примеру, Norton UnErase Wizard) просто обьединяют в одном файле определенное число последовательных свободных кластеров (соответствующее записанному в файле каталога размеру удаленного файла) и именуют результат названием удаленного файла. Пример того, что получается — на рис. 8.10.
Рис. 8.10. Результат работы Norton UnEraze.
Этот текстовый файл snakecor.txt размером в 40 килобайт был удален, а потом восстановлен с помощью Notron UnErase Wizard, который нашел в файле каталога, где snakecor.txt находился, его имя с знаком"!" впереди, узнал оттуда размер файла и номер первого кластера, занимаемого файлом, а потом обьединил содержимое этого и следующего свободного кластера. Но, увы, программе и пользователю не повезло — изначально файл snakecor.txt был фрагментирован и в восстановленный файл попал фрагмент другого ранее удаленного файла, а не тот, который был нужен.
Что такое Unformat
При форматировании жесткого диска очищается таблица FAT (в ней все кластеры помечаются как свободные) и корневой каталог — из него удаляется вся информация о содержащихся в нем файлах и других каталогах. Сами данные на винчестере не стираются. Поэтому их можно восстановить программами типа Unformat. В этом отличие винчестера от дискеты — при проведении полного форматирования дискеты на ней заново записываются и магнитные метки начала секторов, и служебная информация, поэтому после полного форматирования данные на дискете восстановить практически нельзя. [24] "Быстрое форматирование" дискеты по своему принципу аналогично полному форматированию винчестера.
24
На самом деле с помощью специального оборудования можно считать даже ту информацию, которая была физически удалена с диска, — на месте которой были записаны другие данные. Однако это — уже технологии спецслужб; тем не менее существуют специальные программы (например, Norton WipeInfo), которые производят бесповоротное удаление информации с диска путем многократной записи случайных данных в ранее занимаемые ею магнитные ячейки.
Программа для восстановления данных после форматирования просканирует логический диск и найдет на нем файлы, бывшие некогда каталогами, ориентируясь при этом на типичные последовательности байтов ("метки"), характерные именно для файлов-каталогов. Затем она узнает из этих файлов номера первых кластеров содержащихся в них обычных файлов. К сожалению, информация об остальных кластерах, занимаемых файлами, потеряна навсегда, поэтому Unformat (как и UnErase Wizard), добавит каждому файлу следующие за первым кластером свободные кластеры в количестве, равном занимаемому ранее файлом числу кластеров, и занесет в FAT информацию об этом.
После этого Unformat создаст в корневом каталоге свежеотформатированного диска новые каталоги и укажет в этих каталогах имена и первые кластеры узнанных на предыдущем этапе обычных файлов. В результате в корневом каталоге отформатированного диска появятся папки, содержащие файлы, ранее присутствовавшие на диске. Те файлы, которые занимали меньше одного кластера или при восстановлении которых были обьединены именно те кластеры, которые они раньше и занимали (такое бывает, когда диск был дефрагментирован незадолго до форматирования), будут восстановлены полностью. Остальные — как повезет.
Такая обычная ScanDisk…
Наблюдая за работой всем известной, стандартной программы ScanDisk из Windows 95/98, можно увидеть немало интересного… Конечно, если смотреть внимательно и вдумыватся в то, что видишь.
1. Программа ScanDisk просматривает FAT. Так как вся FAT находится в одном месте диска, то считывается и проверяется она очень быстро. На этом этапе своей работы ScanDisk ищет ошибки файловой системы — общие кластеры, и в случае обнаружении таковых исправляет структуру FAT, копируя эти кластеры для каждого из содержащих их файлов и соответственно изменяя содержимое FAT.
2. А теперь ScanDisk проходит по структуре каталогов — то есть считывает все файлы-каталоги, проходя по их иерархии. Это связано с необходимостью многократного перемещения головок жесткого диска, поскольку эти файлы расположены в разных местах диска. Поэтому времени на "Проверку папок" уходит немало. На этом этапе также собираются данные для последующего анализа диска на предмет наличия потерянных кластеров — помеченных как занятые, но не принадлежащих ни одному из файлов. Сам этот анализ происходит сразу после "Проверки папок". Потерянные кластеры могут быть преобразованы в файлы или удалены.