Например, программа Chkdsk из цепочек потерянных кластеров создает файлы с именами FILE0001. CHK, FILE0002.CHK и т.д. Программа Chkdsk преобразует потерянные кластеры в файлы так, как показано в табл. 26.17
Как видно из приведенного примера, оригинальное имя файла не восстанавливается. Однако его можно восстановить, просмотрев содержимое файлов, которые созданы программой восстановления диска.
Пересекающиеся файлы
Такие файлы появляются, когда две записи каталога неправильно указывают на один кластер. В результате кластер "содержит" данные из нескольких файлов, что, естественно, недопустимо.
В табл. 26.18 приведен пример записи файловой системы с пересекающимися файлами.
Таблица 26.18. Пересекающиеся файлы
В рассматриваемом примере два файла занимают два кластера — 1002 и 1003. Это пересечение файлов начинается с кластера 1002. Чаще всего один из пересекающихся файлов поврежден. Программы восстановления данных обычно решают проблему пересекающихся файлов следующим образом: файлы копируются с новыми именами в свободное место диска, а пересекающаяся область обоих файлов (и их остальные части) удаляется. Обратите внимание, что удаляются оба файла, т.е. устранение подобной ошибки не порождает новых проблем: например, запись в каталоге указывает на несуществующий файл. Просмотрев два восстановленных файла, можно определить, какой из них поврежден.
Для программ восстановления диска поиск пересекающихся файлов — очень простая задача, и практически все дисковые утилиты могут устранить эту проблему.
Неверный файл или каталог
Иногда информация в записи каталога для файла или подкаталога не соответствует действительности: запись содержит кластер с неверной датой или неправильным форматом. Практически все программы восстановления диска устраняют и эту проблему.
Ошибки FAT
Как уже указывалось выше в этой главе, при повреждении основной FAT доступ к файлам осуществляется с помощью дополнительной FAT. Программы восстановления диска возвращают поврежденную FAT в ее оригинальное местоположение и активизируют зеркальное копирование. FAT 32 обладает большими способностями к восстановлению, поскольку в ней используются более развитые средства зеркального копирования.
Пример поврежденной FAT приведен в табл.19.
Таблица 19. Поврежденная FAT
В рассматриваемом примере размер файла в каталоге не соответствует количеству кластеров в FAT (потерян кластер 1001), а кроме того, кластеры 1002 и 1003 являются потерянными. При восстановлении данных поврежденная FAT восстанавливается из резервной копии. Практически все программы восстановления данных успешно справляются с таким типом ошибки FAT.
Практическая часть
Восстановление диска и данных
Команды Chkdsk, Recover и Scandisk— это "реанимационная бригада" DOS, занимающаяся восстановлением поврежденных данных на диске. Эти команды имеют очень простой и не слишком дружественный интерфейс, их применение зачастую оказывает значительное воздействие на систему, но иногда только они и могут помочь. Из перечисленных утилит наиболее известны, пожалуй, Recover, которая восстанавливает программы, и Chkdsk, используемая для проверки файловой структуры диска. Многие пользователи даже не подозревают, что Chkdsk может не только проверять, но и восстанавливать поврежденную файловую структуру диска. Еще одна программа — простая утилита Debug — может помочь вам в беде, но только в том случае, если вы точно знаете, что и как делать.
Scandisk — более мощная утилита, чем Chkdsk и Recover, заменяющая эти две утилиты в DOS 6 и более поздних версиях, а также в Windows9x.
Программа Scandisk
Программа Scandisk входит в поставку DOS версий 6 и более поздних, а также в Windows9х. Она значительно мощнее утилит Chkdsk и Recover и выполняет функции их обеих. Программа Scandisk из Windows 95 OSR2 и Windows 98 может работать с FAT 32.
Программа Scandisk больше похожа на упрощенную версию NortonDiskDoctor и позволяет проверять как целостность файловой структуры, так и работу секторов на физическом уровне. Обнаружив ошибки в каталогах или в FAT, Scandisk может их исправить. После определения дефектного сектора в FAT помечается дефектный кластер, содержащий этот сектор. При этом программа пытается восстановить поврежденный файл, причем сохраняются данные как до дефектного участка, так и после него.
В Windows9х есть программа Scandisk для DOS и Windows. Файлы этих программ называются Scandisk. exe и Scandiskw. exe соответственно. Windows9xпроверяет диск в процессе установки операционной системы, а также после неверного завершения работы с системой. Вы можете также запустить программу Scandisk и ее "оконную" версию из командной строки.
Особенности работы программы Scandisk вы можете найти в книгах по операционным системам или в справочной системе Windows9x.
Дефрагментация диска
Как уже упоминалось выше, в файловой системе FAT данные в кластерах могут располагаться в любом месте диска. И при поиске файла последний считывается из нескольких мест, что, естественно, приводит к снижению производительности системы. Для перемещения файла в одно место служат программы дефрагментации диска.
В Windows9xесть программа дефрагментации диска, которая работает с файловыми системами FAT 16 и FAT 32. В Windows 98 в программу дефрагментации была добавлена функция ускорения запуска приложений— перемещение часто запускаемых программ к началу диска.
Рассмотрим работу программы дефрагментации диска на примере. В табл. 20 приведены данные о расположении файлов в FAT.
Таблица 20. Фрагментированные файлы
В рассматриваемом примере файл Usconst.txt фрагментирован на две части. После запуска программы дефрагментации этот файл может быть расположен на диске так, как показано в табл. 26.21.
В процессе дефрагментации части файла, разбросанные по всему диску, были соединены. Дефрагментация диска— довольно продолжительный процесс, поскольку необходимо выполнить большое количество операций чтения и записи.
Кроме программы дефрагментации диска, поставляемой с операционной системой Windows9х, существуют программы независимых разработчиков. Примером одной из таких программ может быть программа SpeedDisk из комплекта NortonUtilities.
Программы независимых разработчиков
Кроме стандартных программ для работы с диском, поставляемых с операционной системой, существует огромное количество дисковых программ независимых разработчиков. Самый известный пакет таких программ — NortonUtilities, разработанный фирмой Symantec. Большинство подобных программ созданы для операционных систем DOS и Windows и могут работать с файловой системой FAT 32. Все эти программы имеют существенный недостаток — их необходимо приобретать дополнительно, в то время как самые необходимые программы уже поставляются с операционной системой.
NTFS
Файловая система NTFS применяется в операционной системе WindowsNT. Несмотря на то что WindowsNT может использовать разделы с FAT, файловая система NTFS обеспечивает ряд преимуществ: большие размеры файлов и разделов, дополнительные атрибуты файлов и расширенные средства безопасности. При разработке операционной системы WindowsNT не существовало проблем обеспечения обратной совместимости, поэтому файловая система обладает особыми свойствами и поддерживается только WindowsNT.
Все операционные системы Windows (кроме WindowsNT/2000) основаны на DOS, поэтому внутри системы существует часть кода DOS. В WindowsNT/2000 DOS-программы работают в режиме эмуляции DOS. При загрузке другой операционной системы раздел с NTFS недоступен.
В файловой системе имя файла может содержать до 255 символов, включая пробелы, точки и другие символы, кроме * ? \ / ; <> |. Поскольку NTFS — 64-разрядная файловая система, размер файла и раздела может быть просто огромным — 2 байт, или 17 179 869 184 Тбайт!
Архитектура NTFS
Несмотря на существующие различия в структуре раздела файловых систем FAT и NTFS, они имеют подобные элементы, например загрузочную область. Раздел NTFS состоит из главной таблицы файлов (masterfiletable— MFT). MFT — это не то же самое, что FAT. Вместо использования таблицы со ссылками на кластеры, MFT содержит больше информации о файлах и каталогах в разделе. В некоторых случаях MFT может даже содержать файлы и каталоги.
При организации раздела NTFS система создает 10 системных файлов NTFS (табл.22).
Таблица 22. Системные файлы NTFS
Первая запись в MFT называется дескриптором (descriptor) и содержит информацию о расположении самой MFT. Загрузочный сектор в разделе NTFS содержит ссылку на расположение записи дескриптора.
Вторая запись в MFT — это зеркальная копия дескриптора. Такое избыточное хранение данных обеспечивает большую устойчивость к ошибкам.
Третья запись — это запись файла журнала. Все операции (транзакции) в NTFS записываются в специальный файл журнала, что позволяет восстановить данные после сбоя. Остальная часть MFT состоит из записей для файлов и каталогов, которые хранятся в разделе. В файле NTFS хранятся атрибуты, определенные пользователем и системой. Атрибуты в разделе NTFS — это не простые флаги из раздела FAT. Вся информация о файле, т.е. атрибуты, в NTFS сохраняется вместе с файлом и является частью самого файла. Каталоги в NTFS состоят в основном из индексов файлов в этом каталоге и не содержат такой информации о файле, как размер, дата, время и др.
Таким образом, MFT — это не просто список кластеров, это основная структура хранения данных в разделе. Если файл или каталог относительно небольшой (около 1 500 байт), его запись может храниться в MFT. Для больших массивов данных в MFT помещается указатель на файл или каталог, а сами данные располагаются в других кластерах в разделе. Эти кластеры называются экстентами (extents). Все записи в MFT, включая дескрипторы и файл журнала, могут использовать экстенты для хранения дополнительных атрибутов. Атрибуты файла, которые являются частью записи MFT, называются резидентными (resident), а атрибуты, расположенные в экстентах, — нерезидентными (nonresident).