NTFS отслеживает поврежденные кластеры, выделяя их атрибуту $DATA файла метаданных файловой системы $BadCLus (запись MFT 8). Атрибут $DATA, которому присвоено имя $BAD, хранится в разреженном формате; когда система обнаруживает поврежденный кластер, он добавляется в этот атрибут. Как говорилось в главе 11, разреженный файл экономит место за счет отказа от выделения кластеров, если они заполнены нулями. Указанный размер атрибута $Bad соответствует общему размеру файловой системы, но изначально ему не выделяется ни один кластер. Обнаруживая поврежденные кластеры, Windows добавляет их в атрибут $Bad, но многие жесткие диски выявляют поврежденные секторы еще до того, как это сделает файловая система.

Информация о файле $BadCLus в файловой системе нашего тестового образа выглядит так:

# istat -f ntfs ntfsl.dd 8 [...]

Attributes:

Type: $STANDARD_INFORMATION (16-0) Name: N/A Resident size: 72 Type: $FILE_NAME (48-3) Name: N/A Resident size: 82 Type: $DATA (128-2) Name: $Data Resident size: 0 Type: $DATA (128-1) Name: $Bad Resident size: 1052803072

Обратите внимание: файл содержит два атрибута $DATA, причем атрибут по умолчанию ($Data) является резидентным и имеет нулевой размер. Атрибут $DATA с именем $Bad является нерезидентным и имеет размер 1 052 803 072 байта, однако адреса кластеров не показаны, потому что файловая система не содержит поврежденных кластеров. Размер атрибута совпадает с размером файловой системы, показанным в выходных данных fsstat.

Алгоритмы выделения

В этом разделе описаны мои наблюдения относительно стратегии, используемой Windows ХР при выделении новых кластеров NTFS. Как и в других файловых системах, стратегия выделения зависит от конкретной ОС, и в разных реализациях NTFS могут использоваться разные стратегии. Я заметил, что Windows ХР использует алгоритм оптимального подбора. Это означает, что данные размещаются таким образом, чтобы наиболее эффективно использовать доступное пространство, даже если это не первый или не следующий доступный блок. Следовательно, при небольшом объеме записываемые данные помещаются в кластеры, входящие в небольшую группу свободных кластеров - вместо большой группы, в которой могут храниться большие файлы. Например, в сценарии, показанном на рис. 12.1, для файла требуется выделить 10 кластеров. В системе существует три группы свободных кластеров. Первая группа находится в кластерах 100-199, вторая - в кластерах 280-319, а третья - в кластерах 370-549. Алгоритм оптимального подбора выделяет под новый файл кластеры 280-289, потому что это наименьшая из возможных групп кластеров, в которых поместится новый файл.

Рис. 12.1. Алгоритм оптимального подбора выделяет 10 кластеров из наименьшего возможного свободного пространства

Категория данных содержимого кластеры | Криминалистический анализ файловых систем | Структура файловой системы


Криминалистический анализ файловых систем



Новости за месяц

  • Март
    2020
  • Пн
  • Вт
  • Ср
  • Чт
  • Пт
  • Сб
  • Вс