Выбрать главу
Устройство NTFS. Главная таблица файлов MFT

Как и любая другая файловая система, NTFS делит все полезное место на кластеры — минимальные блоки данных, на которые разбиваются файлы. NTFS поддерживает почти любые размеры кластеров — от 512 байт до 64 Кбайт. Однако общепринятым стандартом считается кластер размером 4 Кбайт. Именно он используется по умолчанию. Принцип существования кластеров можно проиллюстрировать следующим примером.

Если у вас размер кластера составляет 4 Кб (что скорее всего), а вам нужно сохранить файл размером 5 Кб, то реально под него будет выделено 8 Кб. Так как в один кластер он не помещается, а под файл дисковое пространство выделяется только кластерами.

Для каждого NTFS-диска имеется специальный файл — MFT (Master Allocation Table — главная таблица файлов). В этом файле содержится централизованный каталог всех имеющихся на диске файлов. При создании файла NTFS создает и заполняет в MFT соответствующую запись, в которой содержится информация об атрибутах файла, содержимом файла, имени файла и т.п.

Помимо MFT имеется еще 15 специальных файлов (вместе с MFT — 16), которые недоступны операционной системе и называются метафайлами. Имена всех метафайлов начинаются с символа $, но стандартными средствами операционной системы просмотреть их и вообще увидеть не представляется возможным. Далее для примера представлены основные метафайлы:

• $MFT — сам MFT;

• $MFTmirr — копия первых 16 записей MFT, размещенная посередине диска;

• $LogFile — файл поддержки журналирования (см. ниже);

• $Volume — служебная информация — метка тома, версия файловой системы и т.д.;

• $AttrDef — список стандартных атрибутов файлов на томе;

• $ — корневой каталог;

• $Bitmap — карта свободного места тома;

• $Boot — загрузочный сектор (если раздел загрузочный);

• $Quota — файл, в котором записаны права пользователей на использование дискового пространства;

• $Upcase — файл-таблица соответствия заглавных и прописных букв в именах файлов на текущем томе. Нужен в основном потому, что в NTFS имена файлов записываются в Unicode, что составляет 65 тысяч различных символов, искать большие и малые эквиваленты которых очень нетривиально.

Что касается принципа организации данных на диске NTFS, то он условно делится на две части. Первые 12% диска отводятся под так называемую MFT-зону — пространство, в которое растет метафайл MFT.

Запись каких-либо пользовательских данных в эту область невозможна. MFT-зона всегда держится пустой — это делается для того, чтобы самый главный, служебный файл (MFT) не фрагментировался при своем росте. Остальные 88% диска представляют собой обычное пространство для хранения файлов.

Однако при нехватке дискового пространства MFT-зона может сама уменьшаться (если это возможно), так что никакого дискомфорта вы замечать не будете. При этом данные уже будут записываться в бывшую MFT-зону.

В случае последующего высвобождения дискового пространства MFT-зона снова будет увеличиваться, однако в дефрагментированном виде (то есть не единым блоком, а несколькими частями на диске). В этом нет ничего страшного, просто считается, что система более надежна, когда MFT-файл не дефрагментирован. Кроме того, при недефрагментированном MFT-файле вся файловая система работает быстрее. Соответственно, чем более дефрагментированным является MFT-файл, тем более медленно работает файловая система.

Что касается размера MFT-файла, то он примерно вычисляется исходя из 1 Мб на 1000 файлов.

Точно узнать размер и степень фрагментации MFT-файла можно с помощью стандартной утилиты Дефрагментация диска (Disk Defragmenter), входящей в состав Windows. Вызывается эта утилита следующим образом: Пуск→Все программы→Стандартные→Служебные→Дефрагментация диска.

Далее в появившемся окне программы выберите NTFS-диск и нажмите на кнопку Анализ (Analyze), а по прошествии некоторого времени — Вывести отчет (View Report). Прокрутив полученную информацию чуть вниз, вы получите исчерпывающие сведения о вашем MFT-файле (рис. 3.2).

Рис. 3.2. Узнаем размер и степень дефрагментации MFT-файла

3.2. Форматирование средствами операционной системы

Внимание! Перед тем, как отформатировать флешку, обязательно скопируйте с нее все имеющиеся файлы. В процессе форматирования все файлы на флешке будут утеряны, и восстановить их будет практически невозможно.

Чтобы отформатировать флешку, вставьте ее в один из USB-портов компьютера, откройте окно Мой компьютер (в Windows XP) или Компьютер (в Windows Vista), а затем:

1. Щелкните по значку Flash-диска правой кнопкой мыши и в появившемся контекстном меню выберите команду Форматировать….

2. В появившемся диалоговом окне Формат Съемный диск (см. рис. 3.3), в списке Файловая система вы можете выбрать тип файловой системы, в которой должна будет отформатирована флешка. Стоит отметить такую особенность, что стандартными средствами операционной системы Windows почему-то нельзя отформатировать флешку в файловой системе NTFS — только в FAT или в FAT32. По умолчанию установлена FAT32. Чтобы отформатировать флешку в NTFS, необходимо либо воспользоваться специальной программой (одной из лучших является HP Format Utility, о ней читайте чуть ниже), либо предпринять один небольшой трюк, о котором мы тоже скажем чуть ниже. В стандартной ситуации достаточно будет и форматирования в FAT32. Размер кластера в поле Размер кластера менять не рекомендуется.

Рис. 3.3. Диалоговое окно "Формат"

3. С помощью флажка Быстрое (очистка оглавления) можно указать использование быстрого форматирования, суть которого состоит в удалении таблицы файлов, имеющихся на флешке. В результате она будет восприниматься как абсолютно чистая (хотя файлы при этом фактически еще будут присутствовать, и в некоторых случаях их еще можно будет восстановить). Быстрое форматирование производится за считанные секунды, но может использоваться только тогда, когда флешка уже была ранее отформатирована. Основной недостаток быстрого форматирования состоит в том, что в ходе его не производится поиск поврежденных секторов. Основная ценность же повторного форматирования состоит как раз в поиске и исключении из работы поврежденных секторов. Таким образом, использовать быстрое форматирование не рекомендуется. Лучше подождать пару минут, но получить на выходе полностью отформатированную флешку, у которой все сектора гарантированно рабочие.

4. В поле Метка тома диалогового окна Формат Съемный диск можно ввести имя диска, под которым флешка впоследствии будет отображаться в окне Проводника и в окне Мой компьютер (Компьютер).

5. Для начала процесса форматирования нажмите кнопку Начать.

Хитрость, позволяющая штатными средствами Windows отформатировать флешку в файловой системе NTFS, состоит в том, чтобы сначала отформатировать ее по FAT32 (как было показано выше), а потом, с помощью мини-программы convert, преобразовать FAT32 в NTFS.

Чтобы воспользоваться программой convert, выберите Пуск→Выполнить, в появившемся небольшом окне введите команду cmd и нажмите OK. В результате будет открыто окно командной строки, в котором можно использовать команды-программы командной строки в текстовом (терминальном) режиме. Чтобы воспользоваться программой-командой convert для преобразования файловой системы флешки в NTFS, введите с клавиатуры