NTFS відстежує пошкоджені кластери, виділяючи їх атрибуту $ DATA файлу метаданих файлової системи $ BadCLus (запис MFT 8). Атрибут $ DATA, якому присвоєно ім'я $ BAD, зберігається в розрідженому форматі; коли система виявляє пошкоджений кластер, він додається в цей атрибут. Як говорилося в главі 11, розріджений файл економить місце за рахунок відмови від виділення кластерів, якщо вони заповнені нулями. Зазначений розмір атрибута $ Bad відповідає загальним обсягом файлової системи, але спочатку йому не виділяється ні один кластер. Виявляючи пошкоджені кластери, Windows додає їх в атрибут $ Bad, але багато жорсткі диски виявляють пошкоджені сектори ще до того, як це зробить файлова система.
Інформація про фото $ BadCLus в файлової системі нашого тестового образу виглядає так:
# Istat -f ntfs ntfsl.dd 8 [. ]
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
У цьому розділі описані мої спостереження щодо стратегії, використовуваної Windows ХР при виділенні нових кластерів NTFS. Як і в інших файлових системах, стратегія виділення залежить від конкретної ОС, і в різних реалізаціях NTFS можуть використовуватися різні стратегії. Я помітив, що Windows ХР використовує алгоритм оптимального підбору. Це означає, що дані розміщуються таким чином, щоб найбільш ефективно використовувати доступний простір, навіть якщо це не перший або не слід доступний блок. Отже, при невеликому обсязі записуються дані містяться в кластери, що входять в невелику групу вільних кластерів - замість великої групи, в якій можуть зберігатися великі файли. Наприклад, в сценарії, показаному на рис. 12.1, для файлу потрібно виділити 10 кластерів. В системі існує три групи вільних кластерів. Перша група знаходиться в кластерах 100-199, друга - в кластерах 280-319, а третя - в кластерах 370-549. Алгоритм оптимального підбору виділяє під новий файл кластери 280-289, тому що це найменша з можливих груп кластерів, в яких поміститься новий файл.
Мал. 12.1. Алгоритм оптимального підбору виділяє 10 кластерів з найменшого можливого вільного простору