Восстановление поврежденных директорий и FAT
15.4. Восстановление поврежденных директорий и FAT
Нарушения в файловых структурах накопителей возникают не только по мере их старения или из за деятельности вирусов, но и при каждодневной работе. В состав операционных систем DOS и Windows входят служебные программы, предназначенные для проверки дисков и восстановления в некоторых ситуациях структур директорий (каталогов) и таблиц размещения файлов (FAT). Простейшей программой, используемой для подобных целей в DOS, является CHKDSK, однако гораздо большими возможностями обладает программа ScanDisk, и вам нужно научиться с ней работать.
15.4.1. Программа CHKDSK
Хотя эта программа является менее совершенной, чем ScanDisk и другие специализированные пакеты этого профиля, с ее помощью можно выполнить ряд важных операций по проверке дисков. Первое, что делает программа CHKDSK — это выводит более или менее подробные сведения о распределении дискового пространства и объеме свободной памяти. Большинство пользователей полагает, что отчет о параметрах диска является основным результатом работы этой программы. Однако это не так: ее основная задача проверка директорий и таблиц размещения файлов и выявление в них ошибок и несоответствий. Следует иметь в виду, что программа CHKDSK не проверяет отдельные файлы. Она может лишь проверить их непрерывность. Непрерывные файлы размещаются в нескольких смежных кластерах, что существенно ускоряет процесс их считывания и сохранения. Кроме того, в результате программных или аппаратных сбоев отдельные части файлов могут оказаться потерянными или связанными друг с другом. Программа CHKDSK позволяет обнаруживать и восстанавливать такие потерянные кластеры (ячейки размещения данных).
В среде DOS для запуска программы CHKDSK необходимо ввести следующую команду:
CHKDSK <диск>:<путь><имя файла> /F /V
где <диск> — это буквенное обозначение логического диска, с которым будет работать программа. По умолчанию подразумевается текущий диск, поэтому, если вы загрузите компьютер с дискеты (дисковод А:) и захотите проверить диск С:, то в командной строке в качестве параметров <диск>:<путь> необходимо ввести С:. Если вы хотите выяснить степень фрагментации конкретных файлов (в дополнение к полной проверке диска), то их необходимо указать в качестве параметров <путь><имя файла> (для задания группы файлов можно использовать символы подстановки ? и *). С помощью ключа /F программе CHKDSK дается указание исправлять ошибки, обнаруживаемые в структуре директорий и FAT. Без ключа /F CHKDSK ничего не записывает на проверяемый диск, что позволяет запускать программу в проверочном режиме, не рискуя случайно испортить файлы. Именно так и рекомендуется поступать во всех случаях по крайней мере, до тех пор, пока не выяснится характер и степень серьезности обнаруженной проблемы. С помощью ключа /V программе CHKDSK дается указание выводить полный отчет о результатах работы, т.е. список всех имеющихся на диске директорий и файлов и (в некоторых случаях) детали выявленных ошибок.
Программу CHKDSK можно запускать непосредственно из Window, открыв предварительно сеанс MS-DOS (в полноэкранном или оконном режиме). Для этого щелкните по кнопке “Пуск” (Start), а затем последовательно выберите пункты “Программы” (Programs) и “Сеанс MS-DOS” (MS-DOSPrompt). Наберите в командной строке CHKDSK с соответствующими ключами и нажмите на Enter.
Использование программы CHKDSK. Как следует из вышесказанного, программа CHKDSK является средством для проверки и коррекции структуры директорий на диске. Программа сравнивает ее с таблицей размещения файлов (FAT) и при обнаружении несовпадений выводит соответствующее сообщение. Как следствие такого подхода, большинство обнаруживаемых ошибок связано, так или иначе, со сбоями программного обеспечения, а не с аппаратными неисправностями. Чаще всего встречаются ошибки следующих четырех типов: потеря кластеров; ошибки в размещении файлов; обобществление кластеров, относящихся к разным файлам (cross-linking); повреждения кластеров. С помощью программы CHKDSK можно исправить ошибки только двух из четырех перечисленных типов, а именно: потерю и обобществление кластеров.
Рекомендуемые материалы
Восстановление потерянных кластеров. Потеря кластеров обычно происходит при нештатном завершении работы программы без сохранения результатов и уничтожения временных файлов. Со временем потерянные кластеры накапливаются и занимают все больше и больше места на диске. При обнаружении потерянных кластеров программа CHKDSK выводит сообщение, которое может выглядеть, например, так:
Потерянных кластеров: 10; цепочек: 3.
Преобразовать потерянные цепочки кластеров в файлы [Y. (да)/N(нет)]?
10 lost allocation units found in 3 chains.
Convert lost chains to files [Y/N]?
Если вы ответите “Да” (Y), то потерянные кластеры будут преобразованы в файлы с именами FILE????.CHK. Впоследствии вы сможете их просмотреть и если в них нет ничего, что представляет для вас интерес уничтожить, освободив тем самым место на диске. CHKDSK полезно использовать для восстановления потерянных кластеров перед запуском программ дефрагментации или сжатия диска (например, DoubleSpace).
Люди также интересуются этой лекцией: 14 Протоколы шлюзов IGP, EGP и BGP.
Имейте в виду, что потерянные кластеры — это единственная проблема, с которой можно реально справиться с помощью программы CHKDSK. Все прочие ошибки, о которых она сообщает, самой программой практически не устраняются. Вот почему очень важно на первых порах запускать программу CHKDSK без ключа /Р. Делать это надо до тех пор, пока суть проблемы не станет очевидной. Если разрешить программе вносить исправления по собственному усмотрению, то ситуация может только усугубиться.
Разделение файлов с общими кластерами
Сообщение о файлах с общими кластерами появляется тогда, когда выясняется, что для размещения двух или более файлов или директорий, упомянутых в FAT, используется одна и та же область дискового пространства (т.е. один или несколько кластеров приписываются разным файлам). Сообщение об этом выглядит следующим образом:
<имя файла> Общий кластер: <ххххх>
<имя файла> is cross linked on allocation unit <xxxxx>
Программа CHKDSK не может разделить файлы с общими кластерами в ней не предусмотрены соответствующие алгоритмы. Полностью решить эту проблему в принципе невозможно, поэтому можно порекомендовать следующий метод: скопируйте указанные в сообщениях файлы на другой диск (естественно, что после этого все они окажутся в разных кластерах), уничтожьте их оригиналы, запустите программу дефрагментации диска, а затем верните созданные ранее копии на место. Учтите, что часть информации в разделенных таким способом файлах почти наверняка окажется поврежденной, и их придется восстанавливать из резервной копии.