Открыть сервис

Windows NTFS

NTFS (New Technology File System) — это файловая система, разработанная корпорацией Microsoft, которая является основной для операционных систем семейства Windows NT (начиная с Windows NT 3.1 в 1993 году) и последующих версий, включая Windows 2000, Windows XP, Windows 7, Windows 8, Windows 10 и Windows 11. NTFS пришла на смену файловой системе FAT (File Allocation Table) и её расширенным версиям (FAT16, FAT32), предоставляя значительно более высокую надёжность, производительность и расширенные функциональные возможности, такие как поддержка разрешений доступа, журналирование, шифрование и квоты дискового пространства.

История

Разработка NTFS началась в конце 1980-х годов как часть проекта по созданию новой операционной системы Windows NT, которая должна была стать более стабильной и безопасной, чем DOS-совместимые версии Windows. Первая коммерческая версия NTFS (версия 1.0) была выпущена вместе с Windows NT 3.1 в 1993 году. В последующих версиях Windows NT (3.5, 3.51, 4.0) файловая система совершенствовалась, добавлялись новые возможности, такие как поддержка длинных имён файлов (до 255 символов) и улучшенная работа с дисками большого объёма.

В 2000 году с выходом Windows 2000 была представлена версия NTFS 3.0, которая включала такие важные нововведения, как:

  • Квоты дискового пространства (ограничение объёма данных для пользователей).
  • Шифрование данных на уровне файловой системы (EFS — Encrypting File System).
  • Точки повторной обработки (reparse points) и точки соединения (junction points), позволяющие создавать символические ссылки и перенаправлять доступ к папкам.
  • Поддержка разреженных файлов (sparse files), которые занимают на диске место только для реально записанных данных, а не для всего объявленного размера.

В Windows XP и Windows Server 2003 (NTFS 3.1) была добавлена поддержка дисковых дефрагментаторов и улучшена работа с теневыми копиями томов (Volume Shadow Copy Service). В Windows Vista и Windows 7 (NTFS 5.0 и 5.1) появились транзакции NTFS (TxF) — возможность атомарного выполнения операций с файлами, а также поддержка символических ссылок для файлов (а не только для папок). В последующих версиях Windows (8, 10, 11) NTFS получила незначительные улучшения, в основном связанные с производительностью и совместимостью, но фундаментальная структура осталась прежней.

Архитектура и устройство

NTFS — это журналируемая файловая система, что означает, что перед выполнением операций, изменяющих структуру данных (создание, удаление, перемещение файлов), система записывает информацию о предстоящих изменениях в специальный журнал ($LogFile). В случае сбоя питания или ошибки, при следующем запуске система может восстановить целостность, откатив или завершив незавершённые транзакции.

Основные компоненты

Вся служебная информация NTFS хранится в виде записей в главной файловой таблице (MFTMaster File Table). MFT — это, по сути, база данных, в которой каждая запись (обычно размером 1 КБ) соответствует одному файлу или папке. Каждая запись содержит атрибуты файла: имя, размер, время создания, права доступа (ACL — Access Control List), а также расположение данных на диске.

  • MFT (Master File Table) — центральный элемент NTFS. Первые 16 записей MFT (с 0 по 15) зарезервированы для системных файлов (метаданных), таких как $MFT (сама таблица), $LogFile (журнал), $Volume (информация о томе), $AttrDef (определения атрибутов), $Bitmap (битовая карта занятых/свободных кластеров), $Boot (загрузочный сектор), $BadClus (список повреждённых кластеров) и другие.
  • Кластеры — минимальные единицы хранения данных на диске. Размер кластера может варьироваться от 512 байт до 2 МБ (обычно 4 КБ для современных дисков). NTFS использует логическую адресацию кластеров (LCN — Logical Cluster Number) и виртуальную адресацию кластеров (VCN — Virtual Cluster Number) для управления фрагментацией.
  • Журналированиезапись всех операций, изменяющих метаданные, в журнал $LogFile. Это позволяет системе быстро восстанавливаться после сбоев, не выполняя полную проверку диска (chkdsk).

Атрибуты файлов

В NTFS каждый файл является набором атрибутов. Основные атрибуты включают:

  • $STANDARD_INFORMATION — стандартная информация (время создания, модификации, доступа, флаги).
  • $FILE_NAME — имя файла (может быть несколько для разных кодировок, например, для DOS-совместимости).
  • $DATA — собственно данные файла. Если данные малы, они могут храниться непосредственно в записи MFT (резидентный файл). Для больших файлов атрибут $DATA содержит ссылки на кластеры на диске.
  • $SECURITY_DESCRIPTOR — дескриптор безопасности (права доступа, владелец).
  • $INDEX_ROOT, $INDEX_ALLOCATION — для папок, содержат списки имён файлов и ссылки на их записи в MFT.

Ключевые возможности

Безопасность и разрешения

NTFS поддерживает систему разрешений доступа (ACL), позволяющую задавать для каждого файла или папки, какие пользователи или группы могут выполнять какие действия (чтение, запись, выполнение, изменение, полный доступ). Это реализовано через дескрипторы безопасности, которые хранятся в атрибуте $SECURITY_DESCRIPTOR. Разрешения могут наследоваться от родительских папок.

Шифрование (EFS)

Encrypting File System (EFS) — встроенная функция NTFS, позволяющая шифровать файлы и папки на уровне файловой системы. Шифрование прозрачно для пользователя: при доступе к файлу система автоматически расшифровывает его с использованием ключей, привязанных к учётной записи пользователя. EFS использует симметричное шифрование (алгоритм AES, DESX, 3DES) для данных и асимметричное (RSA) для защиты ключей.

Сжатие

NTFS поддерживает сжатие файлов и папок на уровне файловой системы. Сжатие прозрачно для приложений: данные сжимаются при записи и распаковываются при чтении. Используется алгоритм LZNT1 (вариант LZ77). Сжатие эффективно для текстовых файлов, документов, но не для уже сжатых форматов (JPEG, MP3, ZIP).

Квоты

Квоты дискового пространства позволяют администраторам ограничивать объём данных, который может хранить каждый пользователь на томе. При превышении квоты система может выдавать предупреждения или блокировать запись.

Жёсткие и символические ссылки

NTFS поддерживает жёсткие ссылки (hard links) — несколько имён для одного и того же файла на одном томе, а также символические ссылки (symbolic links) и точки соединения (junction points), которые позволяют перенаправлять доступ к папкам или файлам. В Windows Vista и новее появились символические ссылки для файлов.

Теневые копии

Теневые копии томов (Volume Shadow Copy Service) позволяют создавать моментальные снимки (snapshots) файловой системы, которые могут использоваться для восстановления предыдущих версий файлов, резервного копирования и работы с открытыми файлами.

Ограничения и недостатки

  • Совместимость: NTFS не является кроссплатформенной. Операционные системы семейства Linux и macOS имеют ограниченную поддержку NTFS (обычно только чтение, запись — через сторонние драйверы, такие как ntfs-3g, которые могут быть менее стабильными). Для полной совместимости с Windows требуется драйвер от Microsoft.
  • Фрагментация: Со временем на диске может накапливаться фрагментация файлов, что снижает производительность. В Windows встроен дефрагментатор, но для больших томов и SSD-дисков дефрагментация может быть неэффективной или вредной (для SSD рекомендуется использовать TRIM, который NTFS поддерживает).
  • Сложность восстановления: При повреждении MFT или журнала восстановление данных может быть сложным и требовать специальных инструментов. В отличие от FAT, где структура проще, NTFS имеет более сложную внутреннюю организацию.
  • Максимальный размер тома: Теоретически NTFS поддерживает тома до 256 ТБ (для Windows 10/11 — до 256 ТБ, но на практике ограничения могут быть меньше из-за размера кластера). Максимальный размер файла — 16 ЭБ (эксабайт) минус 64 КБ, но на практике ограничен размером тома.
  • Производительность на малых дисках: На дисках малого объёма (например, флешках) накладные расходы на MFT и журнал могут быть значительными, поэтому для таких носителей часто используют FAT32 или exFAT.

Применение

NTFS является стандартной файловой системой для:

  • Жёстких дисков и SSD в настольных и серверных версиях Windows.
  • Внешних накопителей, если требуется поддержка файлов размером более 4 ГБ и разрешений доступа.
  • Системных томов Windows (загрузочный диск).
  • Серверных сред, где важны надёжность, безопасность и управление доступом (Active Directory, файловые серверы).

Интересные факты

  • NTFS была разработана с учётом возможностей 64-битных процессоров, хотя изначально работала на 32-битных.
  • Внутренняя структура NTFS во многом основана на концепциях, заимствованных из файловой системы HPFS (High Performance File System) от IBM, которая использовалась в OS/2.
  • В Windows 10 и 11 появилась поддержка файловой системы ReFS (Resilient File System) для серверных и некоторых клиентских сценариев, но NTFS остаётся основной для большинства пользователей.
  • Существуют сторонние драйверы NTFS для Linux (например, ntfs-3g, который входит в состав большинства дистрибутивов) и macOS (например, Paragon NTFS, Tuxera NTFS), позволяющие выполнять запись на тома NTFS.

Источники

  • Microsoft Docs: NTFS overview
  • «Inside Windows NT» by Helen Custer (Microsoft Press, 1993)
  • «Windows Internals, Part 2» by Mark Russinovich, David A. Solomon, Alex Ionescu (Microsoft Press, 2012)
  • File System Functionality Comparison (Microsoft TechNet)
  • Спецификация NTFS (Open Specification, Microsoft)

BFOmetr — база данных и аналитика по компаниям России.

На главную BFOmetr →