Различная структура хранения файлов и каталогов, восстановление данных.

Автор: | 01.11.2005
     Жесткий диск — основное устройство хранения данных. Он может иметь различную структуру хранения файлов и каталогов, которая обеспечивает непосредственное расположение данных на диске. Файловая система чаще всего интегрирована в операционную, а некоторые операционные системы поддерживают несколько файловых систем.
     Большинство существующих на сегодняшний день файловых систем построены на основе таблицы размещения файлов (File Allocation Table — FAT), которая содержит дорожки данных в каждом кластере на диске. Существует несколько типов файловой системы FAT — FAT 12, FAT 16 и FAT 32. Они отличаются количеством цифр, используемых в таблице размещения файлов. Другими словами, в FAT 32 используется 32-разрядное число для хранения дорожки данных в каждом кластере, в FAT 16 — 16-разрядное число и т.д. В настоящее время существуют следующие типы файловой системы FAT:

  • FAT 12, используемая в разделах емкостью не более 16 Мбайт (например, дискета);
  • FAT 16, используемая в разделах емкостью от 16 Мбайт до 2 Гбайт;
  • FAT 32, используемая (необязательно) в разделах емкостью от 512 Мбайт до 2 Тбайт.

     Файловые системы FAT 12 и FAT 16 изначально применяются в DOS и Windows и поддерживаются практически всеми известными на сегодняшний день операционными системами. Большинство персональных компьютеров поставляется с жесткими дисками, на которых установлена одна из файловых систем FAT.      Файловая система FAT 32 поддерживается операционной системой Windows 95B и более поздними версиями, а также Windows 2000, которая также поддерживает файловую систему NTFS. Некоторые операционные системы имеют собственную файловую систему. Например, Windows NT/2000/XP поддерживают файловую систему NT File System (NTFS); OS/2 поставляется с собственной файловой системой High Performance File System (HPFS).

     Для обеспечения пользовательским приложениям доступа к файлам независимо от типа используемого диска в операционной системе предусмотрено несколько структур. Эти структуры поддерживаются системами Windows и представлены ниже в порядке расположения на диске:

  • загрузочные секторы главного и дополнительного разделов;
  • загрузочный сектор логического диска;
  • таблицы размещения файлов (FAT);
  • корневой каталог;
  • область данных;
  • цилиндр для выполнения диагностических операций чтения/записи.

     В отличие от жесткого диска, на дискетах нет загрузочных секторов главного и дополнительного разделов и диагностического цилиндра. Эти структуры создаются программой Fdisk, которая не применяется для дискет, так как они не могут быть разбиты на разделы.
     Каждая дисковая область применяется для конкретной цели. Повреждение одной из перечисленных областей обычно приводит к ограничению доступа к другим областям, вызывая сбои в работе. Например, операционная система не сможет получить доступ к диску, если повреждена главная загрузочная запись. Таким образом, понимание логики работы каждой структуры и их взаимодействия оказывает значительную помощь в устранении неполадок.      Впервые поддержка жестких дисков была реализована в DOS 2.0, выпущенной в 1983 году. В этой операционной системе впервые использовалась 16-разрядная файловая система FAT и поддерживалось деление диска на разделы, т.е. создание на диске логических томов. Выполнять разделение диска необходимо даже в том случае, если вы собираетесь использовать только один раздел. Разделы диска иногда называют логическими томами, поскольку операционная система присваивает каждому из них отдельную букву.      В настоящее время практически все накопители на жестких дисках делятся на несколько разделов, с которыми работает установленная операционная система. Однако, разделив диск, можно установить несколько операционных систем — по одной в каждый раздел, и эти системы смогут нормально сосуществовать на одном диске.      Чтобы установить на один жесткий диск несколько операционных систем, его надо разбить на разделы. Например, вы можете с помощью программы Fdisk создать на диске один или несколько разделов для установки на них DOS или Windows 9х, а оставшуюся часть диска предоставить для другой операционной системы. Каждый раздел в операционной системе будет иметь вид отдельного диска.      Информация о каждом разделе сохраняется в загрузочном секторе раздела (или логического диска) в начале каждого раздела. Существует также основная таблица списка разделов, помещенная в загрузочный сектор главного раздела.

     Загрузочный сектор главного раздела (или главная загрузочная запись (Master Boot Record — MBR)) является первым сектором на жестком диске (цилиндр 0, головка 0, сектор 1) и состоит из двух элементов.

  • Таблица главного раздела. Содержит список разделов на диске и расположение загрузочных секторов соответствующих логических дисков. Эта таблица очень маленькая и может содержать максимум четыре записи. Таким образом, для получения большего количества разделов в операционной системе (например, DOS) можно создать один дополнительный раздел и поместить в него несколько логических дисков.
  • Главный загрузочный код. Небольшая программа, которая выполняется системной BIOS. Основная функция этого кода — передача управления в раздел, который обозначен как активный (или загрузочный).

     Загрузочный сектор — это первый сектор на любом логическом диске DOS. Например, на дискете или на диске Zip это самый первый физический сектор, так как дискету нельзя разбить на разделы и она имеет только один логический диск. На жестком диске загрузочный сектор (секторы) располагается в начале каждого раздела, не являющегося дополнительным, или в начале любой области диска, распознаваемой как логический диск DOS.
     Эти секторы немного похожи на загрузочные секторы разделов, так как содержат таблицы со специальной информацией о логическом диске.

  • Блок параметров диска, в котором содержится специфическая информация, например размер раздела, количество используемых секторов диска, размер кластера и метка тома.
  • Загрузочный код — программа, которая начинает процесс загрузки операционной системы. Для DOS и Windows 9x/Me это файл Io.sys.

     Загрузочный сектор дискеты загружается ROM BIOS, а при загрузке системы с жесткого диска MBR передает управление загрузочному сектору активного раздела. В обоих случаях загрузочный сектор логического диска получает управление. Он выполняет некоторые проверки и затем пытается прочитать с диска первый системный файл (в DOS/Windows это файл Io.sys). Загрузочный сектор не виден, так как находится вне области хранения файлов логического диска.      Каталог — это база данных, содержащая информацию о записанных на диске файлах. Каждая запись в ней имеет длину 32 байт, и между записями не должно быть никаких разделителей. В каталоге сохраняется практически вся информация о файле, которой располагает операционная система.

  • Имя файла и расширение — восемь символов имени и три символа расширения; точка между именем и расширением файла подразумевается, но не включается в эту запись.
  • Замечание
    В Windows 9х имя файла может состоять из 255 символов в структуре каталога 8.3
    .

  • Байт атрибутов файла, содержащий флаг, который представляет стандартные атрибуты файла.
  • Время и дата создания файла или его модификации.
  • Размер файла в байтах.
  • Ссылка на начальный кластер — номер кластера, с которого начинается файл.

Информация о расположении файла, т.е. расположении оставшихся кластеров, содержится в FAT.      Существует два основных типа каталогов: корневой каталог и подкаталог. Различаются они максимальным количеством хранящихся файлов. На каждом логическом диске в фиксированном месте, сразу же за копиями FAT, располагается корневой каталог. Размеры корневых каталогов варьируются в зависимости от размера диска, но каждый конкретный корневой каталог имеет фиксированное максимальное число файлов. Длина корневого каталога фиксируется при создании логического диска и не может быть изменена в процессе работы.

     Все каталоги имеют одинаковую структуру. Записи в этой базе данных сохраняют важную информацию о файлах, которая связана с информацией, хранящейся в FAT, посредством одного из полей записи — номера первого занимаемого файлом кластера на диске. Если бы все файлы на диске не превышали размеров одного кластера, потребности в FAT вообще бы не возникло. В FAT содержится информация о файле, отсутствующая в каталоге, — номера кластеров, в которых расположен весь файл.

     Таблица размещения файлов (FAT) содержит номера кластеров, в которых расположены файлы на диске. Каждому кластеру в FAT соответствует одно число. Секторы, не содержащие пользовательских данных (файлов), не отражены в FAT. К таким секторам относятся загрузочные секторы, таблицы размещения файлов и секторы корневого каталога.
     В файловой системе FAT дисковое пространство разбивается не на секторы, а на группы секторов, которые называются кластерами (ячейками размещения). Кластер содержит один или несколько секторов. Размер кластера определяется при делении диска на разделы с помощью программы Fdisk и зависит от размера создаваемого раздела. Наименьший размер диска, который может занимать файл ненулевого размера, — один кластер. Каждый файл использует целое число кластеров. Например, если файл занимает на один байт больше размера кластера, то для его размещения на диске будет выделено два кластера.
     FAT — это электронная таблица, управляющая распределением дискового пространства. Каждая ячейка этой таблицы связана с определенным кластером на диске. Число, содержащееся в этой ячейке, сообщает о том, использован ли данный кластер под какой-либо файл и, если использован, где находится следующий кластер этого файла.      Область данных диска — это область, следующая за загрузочным сектором, таблицами размещения файлов и корневым каталогом на любом логическом диске. Эта область контролируется с помощью FAT и корневого каталога и делится на ячейки размещения, называемые кластерами. В этих кластерах и располагаются сохраняемые на диске файлы.      Программа разбиения диска на разделы Fdisk всегда резервирует последний цилиндр жесткого диска для выполнения диагностических операций. Из-за этого Fdisk указывает меньшее количество цилиндров, чем существует на самом деле. Операционная система не использует этот цилиндр, поскольку он находится вне разделов.      В системах с дисковыми интерфейсами IDE или SCSI контроллер должен выделить дополнительную область после разделов для хранения таблицы испорченных дорожек и запасных секторов. В этом случае разница между фактическим числом цилиндров и тем, что показывает Fdisk, будет еще больше.

     Область диагностики позволяет выполнять тестирование чтения/записи жесткого диска, не повреждая данных на диске. Программы форматирования жестких дисков на низком уровне обычно используют этот цилиндр для тестирования чередования диска либо для хранения необходимой во время форматирования информации.

     Ошибки в файловой системе появляются скорее из-за программных, нежели из-за аппаратных сбоев (например, при неверном завершении работы Windows).      Это наиболее распространенная ошибка файловой системы, при которой кластеры в FAT помечаются как используемые, хотя на самом деле таковыми не являются. Эти потерянные кластеры появляются при неверном завершении работы приложения или крахе системы. Программы восстановления диска могут обнаружить эти кластеры и восстановить их.      Программы восстановления диска просматривают диск и создают копию FAT в оперативной памяти. Затем эта копия сравнивается с «настоящей» FAT и таким образом выявляются потерянные кластеры, т.е. не принадлежащие ни одному из существующих файлов. Практически все программы восстановления могут сохранять информацию из потерянных кластеров в файл, а затем обнулять их.

     Например, программа Chkdsk из цепочек потерянных кластеров создает файлы с именами FILE0001.CHK, FILE0002.CHK и т.д.

     Такие файлы появляются, когда две записи каталога неправильно указывают на один кластер. В результате кластер «содержит» данные из нескольких файлов, что, естественно, недопустимо.      Чаще всего один из пересекающихся файлов поврежден. Программы восстановления данных обычно решают проблему пересекающихся файлов следующим образом: файлы копируются с новыми именами в свободное место диска, а пересекающаяся область обоих файлов (и их остальные части) удаляется. Обратите внимание, что удаляются оба файла, т.е. устранение подобной ошибки не порождает новых проблем: например, запись в каталоге указывает на несуществующий файл. Просмотрев два восстановленных файла, можно определить, какой из них поврежден.

     Для программ восстановления диска поиск пересекающихся файлов — очень простая задача, и практически все дисковые утилиты могут устранить эту проблему.

     Иногда информация в записи каталога для файла или подкаталога не соответствует действительности: запись содержит кластер с неверной датой или неправильным форматом. Практически все программы восстановления диска устраняют и эту проблему.      Команды Chkdsk, Recover и Scandisk — это «реанимационная бригада» DOS, занимающаяся восстановлением поврежденных данных на диске. Эти команды имеют очень простой и не слишком дружественный интерфейс, их применение зачастую оказывает значительное воздействие на систему, но иногда только они и могут помочь. Из перечисленных утилит наиболее известны, пожалуй, Recover, которая восстанавливает программы, и Chkdsk, используемая для проверки файловой структуры диска. Многие пользователи даже не подозревают, что Chkdsk может не только проверять, но и восстанавливать поврежденную файловую структуру диска. Еще одна программа — простая утилита Debug — может помочь вам в беде, но только в том случае, если вы точно знаете, что и как делать.      Scandisk— более мощная утилита, чем Chkdsk и Recover, заменяющая эти две утилиты в DOS 6 и более поздних версиях, а также в Windows 9х.      Программа Scandisk входит в поставку DOS версий 6 и более поздних, а также в Windows 9х. Она значительно мощнее утилит Chkdsk и Recover и выполняет функции их обеих. Программа Scandisk из Windows 95 OSR2 и Windows 98 может работать с FAT 32.      Программа Scandisk больше похожа на упрощенную версию Norton Disk Doctor и позволяет проверять как целостность файловой структуры, так и работу секторов на физическом уровне. Обнаружив ошибки в каталогах или в FAT, Scandisk может их исправить. После определения д ефектного сектора в FAT помечается дефектный кластер, содержащий этот сектор. При этом программа пытается восстановить поврежденный файл, причем сохраняются данные как до дефектного участка, так и после него.

     В Windows 9х есть программа Scandisk для DOS и Windows. Файлы этих программ называются Scandisk.exe и Scandiskw.exe соответственно. Windows 9х проверяет диск в процессе установки операционной системы, а также после неверного завершения работы с системой. Вы можете также запустить программу Scandisk и ее «оконную» версию из командной строки.

     Файловая система NTFS применяется в операционной системе Windows NT/2000/XP. Несмотря на то что Windows NT может использовать разделы с FAT, файловая система NTFS обеспечивает ряд преимуществ: большие размеры файлов и разделов, дополнительные атрибуты файлов и расширенные средства безопасности. При разработке операционной системы Windows NT не существовало проблем обеспечения обратной совместимости, поэтому файловая система обладает особыми свойствами и поддерживается только Windows NT.
     Все операционные системы Windows (кроме Windows NT/2000/XP) основаны на DOS, поэтому внутри системы существует часть кода DOS. В Windows NT/2000/XP DOS-программы работают в режиме эмуляции DOS. При загрузке другой операционной системы раздел с NTFS недоступен.      Несмотря на существующие различия в структуре раздела файловых систем FAT и NTFS, они имеют подобные элементы, например загрузочную область. Раздел NTFS состоит из главной таблицы файлов (master file table — MFT). MFT — это не то же самое, что FAT. Вместо использования таблицы со ссылками на кластеры, MFT содержит больше информации о файлах и каталогах в разделе. В некоторых случаях MFT может даже содержать файлы и каталоги.      В Windows 2000/XP используется новая версия NTFS — файловая система NTFS 5. При установке Windows 2000/XP все существующие разделы NTFS автоматически обновляются до NTFS 5. Если на компьютере также используется Windows NT (мультизагрузка), то необходимо установить пакет обновления Service Pack 4 (SP4) или последующий, чтобы эта система могла работать с разделами NTFS 5. В процессе обновления изменяется версия драйвера NTFS.SYS.
     Файловая система NTFS 5 обладает несколькими новыми свойствами.

  • Квотирование диска. Администраторы системы могут устанавливать для пользователей ограничения на использование диска. Эти квоты могут быть нескольких уровней: Off, Tracking и Enforced.
  • Шифрование. NTFS5 поддерживает автоматическое шифрование и дешифрование файлов при их записи и считывании с диска.
  • Особые объекты файловой системы. Позволяют использовать точки монтирования, т.е. перенаправление записи и считывания данных из папки на другой раздел или физический диск.
  • Поддержка больших файлов. Это свойство позволяет более экономно расходовать дисковое пространство.
  • Журнал номеров последовательных обновлений. Обеспечивает ведение журнала всех изменений файлов раздела.

     Обратите внимание, что большинство этих свойств поддерживается только операционной системой Windows 2000.      В этом разделе речь пойдет о наиболее часто встречающихся ошибках файловых систем и способах их устранения. Чаще всего могут появляться следующие системные сообщения об ошибках:

  • Missing Operating System;
  • NO ROM BASIC — SYSTEM HALTED;
  • Boot error Press F1 to retry;
  • Invalid drive specification;
  • Invalid Media Type;
  • Hard Disk Controller Failure.

     Такое сообщение об ошибке указывает на проблемы в главной загрузочной записи или записях таблицы раздела. Запись в таблице раздела может указывать на сектор, который не является началом раздела. Такая ошибка иногда появляется вследствие разряда батареи на системной плате, что приводит к удалению параметров BIOS.
     Для решения проблемы прежде всего необходимо проверить правильность установки параметров в BIOS. Главную загрузочную запись можно восстановить с помощью команды Fdisk /MBR. В других случаях решить возникшую проблему можно с помощью радикальных средств — разбивки диска на разделы и форматирования с последующей повторной установкой операционной системы и необходимых приложений.      Эту ошибку генерирует AMI BIOS в случае повреждения или отсутствия загрузочного сектора или главной загрузочной записи на загрузочном диске. Кроме того, такая ошибка может появиться при неправильной установке параметров жесткого диска в BIOS. Для решения этой проблемы необходимо проверить параметры диска в BIOS или же восстановить главную загрузочную запись с помощью команды Fdisk /MBR.      Эта ошибка генерируется Phoenix BIOS при отсутствии жесткого диска или загрузочных областей. Наиболее частая причина появления этой ошибки — отсутствие активного раздела.      Такая ошибка появляется в том случае, если жесткий диск не разбит на разделы, записи таблицы разделов повреждены или же содержат неверные данные. Для устранения подобных проблем воспользуйтесь программой Fdisk либо программами пакета Norton Utilities.      При появлении такого сообщения скорее всего поврежден (или не инициализирован) загрузочный сектор, каталог или таблица размещения файлов. Например, такая ошибка появляется, если диск разбит на разделы, но не отформатирован с помощью команды Format. Для устранения этой ошибки необходимо использовать одну из программ восстановления диска или же просто отформатировать диск.      Такого типа ошибка появляется вследствие неверных параметров накопителя, установленных в BIOS, а также плохого подключения кабелей к накопителю или системной плате. Для устранения этой проблемы прежде всего проверьте подключение накопителя, а затем установите в BIOS его правильные параметры.      Чтобы устранить проблемы при доступе к жесткому диску, выполните ряд действий.

  • Загрузите компьютер с загрузочной дискеты (ее иногда называют аварийным диском). Это может быть загрузочная дискета как DOS, так и Windows, главное, чтобы на ней были записаны следующие программы: Fdisk.exe, Format.com, Sys.com и Scandisk.exe. Лучше, если это будет аварийный диск с операционной системой Windows 98 или более поздней.
  • Если с загрузочной дискеты нельзя загрузить операционную систему, скорее всего существуют проблемы с аппаратным обеспечением.
  • Запустите с загрузочной дискеты программу Fdisk. В меню выберите вывод сведений об имеющихся разделах (четвертый пункт меню).
  • Если отображается список разделов, проверьте наличие активного раздела: в столбце состояния возле одного из разделов должна быть буква А.
  • Если в списке не отображается ни одного раздела и вы не желаете восстанавливать данные на диске, создайте новый раздел (или разделы), а затем отформатируйте его. При выполнении этих действий все данные на диске будут уничтожены.
  • Если вам необходимо восстановить данные, воспользуйтесь одной из программ восстановления данных.
  • Если список разделов отображается и один из них активный, очевидно, повреждены системные файлы. Для их восстановления введите команду Sys С:.
  • Теперь ваш жесткий диск содержит системные файлы той операционной системы, которая была на загрузочном диске.
  • Извлеките дискету из дисковода и перезагрузите компьютер. Если и сейчас при загрузке появляются ошибки, они, скорее всего, вызваны неверной конфигурацией жесткого диска в BIOS.
  • Запустите программу Scandisk с загрузочного диска и проверьте диск на наличие ошибок.
  • При проверке диска с помощью программы Scandisk, не забудьте выполнить проверку поверхности диска. При появлении большого количества поврежденных секторов необходимо заменить накопитель на жестких дисках.

В начало страницы