NTFS

NTFS
Разработчик Майкрософт
Файловая система NTFS — new technology file system[1]
Дата представления Июль 1993 года (Windows NT 3.1)
Метка тома
  • Для MBR: 0x07.
  • Для GPT: EBD0A0A2-B9E5-4433-87C0-68B6B72699C7.
Структура
Содержимое папок B±дерево[2]
Размещение файлов Bitmap
Сбойные сектора $badclus
Ограничения
Максимальный размер файла 264 байт (16 ЭиБ) минус 1 КиБ[3]
Максимум файлов 4 294 967 295 (232−1)[3]
Максимальная длина имени файла 255 16-битовых слов в кодировке UTF-16[4][5]
Максимальный размер тома 264 − 1 кластер[3]
Допустимые символы в названиях
Возможности
Свойства Создание, изменение, изменения согласно POSIX, доступ
Диапазон дат

1 января 1601 года — 28 мая 60 056 года

Для хранения даты и времени отведено 64 бита; шаг — 100 наносекунд (десять миллионов интервалов в секунду). Это позволяет указать дату и время в промежутке из 58 тысяч лет.
Точность хранения даты 100 наносекунд
Потоки метаданных Да (см. альтернативные потоки данных)
Атрибуты
  • Только чтение (англ. read-only);
  • скрытый (англ. hidden);
  • системный (англ. system);
  • требует архивирования (англ. archive);
  • не проиндексирован (англ. not content indexed);
  • недоступен (англ. off-line);
  • временный (англ. temporary);
  • сжатый (англ. compressed);
  • зашифрованный (англ. encrypted).
Права доступа ACL
Фоновая компрессия Пофайлово, LZ77 (Windows NT 3.51 и старше)
Фоновое шифрование Пофайлово,
DESX (Windows 2000 и старше),
Triple DES (Windows XP и старше),
AES (Windows XP Service Pack 1, Windows Server 2003 и старше)
Поддерживается ОС

Семейство Windows NT: (начиная с Windows NT 3.1 до Windows NT 4.0, Windows 2000, Windows XP, Windows Server 2003, Windows Vista, Windows Server 2008, Windows 7, Windows Server 2008 R2, Windows 8, Windows Server 2012 Windows 10, Windows Server 2016, Windows 11

), macOS, Linux

NTFS (аббревиатура от англ. new technology file system — «файловая система новой технологии») — стандартная файловая система для семейства операционных систем Windows NT фирмы Microsoft.

NTFS поддерживает хранение метаданных. С целью улучшения производительности, надёжности и эффективности использования дискового пространства для хранения информации о файлах в NTFS используются специализированные структуры данных. Информация о файлах хранится в главной файловой таблице — Master File Table (MFT). NTFS поддерживает разграничение доступа к данным для различных пользователей и групп пользователей (списки контроля доступа — англ. access control lists, ACL), а также позволяет назначать дисковые квоты[англ.] (ограничения на максимальный объём дискового пространства, занимаемый файлами тех или иных пользователей). Для повышения надёжности файловой системы в NTFS используется система журналирования USN. Для NTFS размер кластера по умолчанию составляет от 512 байт до 2 МБ в зависимости от размера тома и версии ОС[6].

История

Файловая система NTFS заменила файловую систему FAT, использовавшуюся в ОС MS-DOS и ОС Windows.

Файловая система NTFS разработана на основе файловой системы HPFS[7]. HPFS — аббревиатура от англ. high performance file system — высокопроизводительная файловая система, разработку которой вела фирма Microsoft совместно с фирмой IBM для операционной системы OS/2. Впоследствии разработчики из фирмы Microsoft добавили[8] в HPFS квотирование[англ.], журналируемость, разграничение доступа и аудит, назвали файловую систему NTFS. NTFS в значительной степени утратила присущую прародительнице (HPFS) весьма высокую производительность файловых операций.

Сравнение файловых систем NTFS и HPFS приведено в следующей таблице.

Параметр NTFS Files-11 HPFS
Что используется для размещения файлов? Кластеры Кластеры Полосы по 8 МиБ, разбитые на секторы
Что используется для пометки кластеров, как занятых? По одной битовой карте для каждого тома По одной битовой карте для каждого тома По одной битовой карте секторов на каждую полосу
Как хранится информация о файлах и каталогах? В пространстве MFT хранится информация и о файлах, и о каталогах Почти так же, как в NTFS, но аналогичный MFT каталог называется MFD Традиционные каталоги[прояснить]
Поддержка контроля доступа Реализуется с помощью набора прав доступа Реализуется почти так же, как в NTFS Контроль доступа не встроен в файловую систему. Поддержка этой возможности реализуется внешними процессами
Поддержка потоков данных Для каждого файла можно создать ограниченное только ёмкостью тома множество именованных потоков. Имя потока записывается в виде «filename.ext: streamname» (имя файла с расширением, символ «:» (двоеточие), имя потока). Прямого аналога потоков нет, есть понятие версии файла. Версии именуются «filename.ext;version» аналогично синтаксису имён потоков в NTFS Потоки не поддерживаются. Имеется только 64 КиБ для хранения расширенных атрибутов.

Версии NTFS

Различают несколько версий NTFS. Номер версии драйвера файловой системы (NTFS.sys) не стоит в зависимости от версии самой файловой системы.

Версия NTFS Поддержка со стороны ОС Примечания
Windows
1.0 Windows NT 3.1
1.1 Windows NT 3.5
1.2 Windows NT 3.51 Встречается название в версии драйвера — «NTFS 4.0»
2.x н/д Нет официальных данных о выпуске NTFS данной версии
3.0 Windows 2000 Встречаются названия «NTFS V5.0» и «NTFS 5».
В этой версии появились дисковые квоты[англ.], шифрование файлов и папок, разрежение файлов, точки перехода[англ.], обновлён порядковый номер журналирования (USN), добавлен каталог $Extend и его файлы, внесены изменения в организацию дескрипторов безопасности (для разных файлов одинаковые настройки безопасности могут описываться одним дескриптором).
3.1 Windows XP,
Windows Server 2003,
Windows Server 2003 R2,
Windows Vista,
Windows 7,
Windows Server 2008,
Windows Server 2008 R2,
Windows 8,
Windows Server 2012 RTM
Windows 8.1
Windows 10
Windows Server 2016
Windows Server 2019
Windows 11
Вышла осенью 2001 года с выпуском Windows XP. Встречается название «NTFS V5.1». Добавлено сохранение резервной копии MFT.

Поддержка операционными системами

Спецификации файловой системы NTFS закрыты. Это создаёт определённые трудности при реализации её поддержки в продуктах, не принадлежащих фирме Microsoft, например, разработчикам драйверов для свободных операционных систем приходится заниматься обратной разработкой файловой системы NTFS.

В данный момент полноценная поддержка NTFS присутствует только в ОС семейства Windows NT от фирмы Microsoft. Существующие средства доступа к разделам NTFS для других ОС перечислены ниже.

MS-DOS

  • Драйвер «NTFS for Windows 98» от Марка Руссиновича[9]. Поддерживает чтение с разделов NTFS. Для записи можно использовать драйвер DOS. На сайте фирмы Microsoft информация об этом драйвере отсутствует, но его легко можно отыскать на сторонних сайтах.
  • Драйвер «NTFS for Windows 98 Архивная копия от 31 августа 2009 на Wayback Machine» от фирмы Paragon Software Group. В настоящий момент поддерживает как чтение, так и запись. Версия бесплатна для некоммерческого использования.
  • Проект «Linux-NTFS Архивная копия от 21 февраля 2006 на Wayback Machine». Включает модуль ядра и набор утилит для выполнения различных операций с файловой системой NTFS (проверка целостности, восстановление удалённых файлов, изменение размера и др.). Именно этот драйвер включается в ядро Linux ещё с версии 2.2 (с тех пор он был практически полностью переписан). Модулем ядра поддерживается практически только чтение; запись возможна лишь в существующие файлы без изменения их размера. Недавно в рамках проекта появилась утилита ntfsmount, использующая FUSE и позволяющая монтировать разделы NTFS с возможностью записи (с некоторыми ограничениями). Это был первый полностью свободный продукт, имеющий такую возможность.
  • Проект «NTFS-3G». Возник как ответвление от проекта «Linux-NTFS Архивная копия от 21 февраля 2006 на Wayback Machine». Отличается более полной поддержкой записи на разделы NTFS. 21 февраля 2007 года была выпущена версия 1.0, названная стабильной. Обеспечивает высокий уровень надёжности и производительности. В настоящее время[когда?] проект активно развивается.
  • Проект «Captive NTFS» ([1] Архивная копия от 14 января 2010 на Wayback Machine). Создавался как «обёртка» для использования оригинального драйвера из ОС Windows NT в ОС Linux. Запись поддерживается, но драйвер работает крайне медленно и имеет некоторые технические ограничения. На официальном сайте проекта помещено объявление о прекращении разработки.
  • Драйвер «NTFS for Linux Архивная копия от 14 февраля 2006 на Wayback Machine» от фирмы Paragon Software. Драйвер поддерживает чтение и запись с NTFS. Кроме драйвера проект поставляет ряд утилит для создания файловой системы NTFS и выполнения некоторых операций с разделами NTFS. Доступен бесплатно для домашних пользователей[10].
  • Проект «NTFS File System Reader». Поддерживает чтение с NTFS.
  • Проект «NTFS-3G». Необходимо установить дополнительные пакеты[11].

BeOS-совместимые операционные системы

Для операционных систем BeOS, Zeta и Haiku существуют следующие проекты.

Реализована поддержка NTFS «на чтение» через свободный драйвер собственного производства. Также есть экспериментальная поддержка записи, включаемая через реестр.

Сравнение файловых систем FAT и NTFS

Ограничения / возможности NTFS FAT16 и FAT32
Размеры диска в теории 264 байт (16 ЭиБ или 18 446 744 073 709 552 000 байт)

на практике 255 ТБ старые версии, 8 ПБ более новые[14]

приблизительно 243 байт (8 ТиБ)
Размер тома теоретически — 264 — 1 кластер; разметка диска в стиле MBR позволяет создавать разделы, размеры которых не превышают 2 ТБ; чтобы обойти это ограничение, необходимо использование динамических дисков или разметки GPT (используя GPT, можно создать разделы диска размером до 9.4 ЗБ (9.4 × 1021 байт); выбор стиля разметки предоставляется при инициализации (первоначальной разметке) диска, начиная с версии Windows Server 2003 SP1, Windows XP x64 Edition, Windows Server 2003 x64 Edition и все версии NT выше 6.0[15]

ограничение файловой системы NTFS на количество кластеров
практически — 255 тб: 232 (максимальное количество адресуемых кластеров) * 64кб (максимальный размер кластера).

При попытке создать том большего размера, том создаётся, но при форматировании в NTFS с размером кластера 64 кб выдаётся ошибка: The number of clusters exceeds 32 bits (Количество кластеров превышает 32 бита).

минимальный размер тома: 8 МиБ
минимальный рекомендуемый размер тома: 10 МиБ[16]

запись в таблице FAT на томе с файловой системой FAT32 имеет размер 4 байта, поэтому средство ScanDisk не может работать с таблицей FAT на диске FAT32, описывающей более 4 177 920 кластеров (включая два резервных). С учётом самих таблиц FAT и при максимальном размере кластера 32 кБайт размер тома может быть до 127.53 ГБ. В ОС Windows 2000 нельзя отформатировать том размером более 32 ГБайт с файловой системой FAT32. Драйвер FastFAT для ОС Windows 2000 поддерживает монтирование томов, размер которых превышает 32 ГБайт, с файловой системой FAT32 (с определёнными ограничениями), но такой том нельзя создать с помощью утилиты format
Форматирование дискет Windows не позволяет форматировать дискеты в NTFS. Существует утилита ntfsflp от Марка Руссиновича; утилита побайтово записывает на дискету готовый бинарный образ тома NTFS; размер тома совпадает с размером дискеты За счёт отсутствия журналирования в FAT32 уменьшается износ блоков флеш-накопителя для модулей памяти, изготовленных по flash-технологиям, что позволяет продлить их срок службы.
поддержка ссылок разных типов NTFS поддерживает жёсткие (англ. hard links) и символьные ссылки, соединения для каталогов (англ. junctions), volume mount point[англ.] FAT не поддерживает ссылки
Максимальный размер файла теоретически — 264 байт минус килобайт

практически — 244 байт минус 64 килобайта (~16 384 гигабайт или ~16 терабайт)[17]

FAT16 поддерживает файлы размером не более 2 Гигабайт

FAT32 поддерживает файлы размером не более 4 Гигабайт

Средства безопасности атрибуты файлов, авторизация с использованием DACL, шифрование с использованием EFS атрибуты файлов
Аудит с использованием SACL не поддерживается
Поддержка сжатия на уровне файловой системы для файлов, каталогов и дисков; не комбинируется с шифрованием, то есть каждый файл может быть либо сжат, либо зашифрован (сжатие возможно только для разделов диска до 16 ТБ) на уровне диска (в FAT16); в FAT32 не поддерживается
Максимальное количество файлов 4 294 967 295 (232−1) в FAT32 не более 268 435 444 (228−12)

См. также

Примечания

  1. Windows XP: Format backup drives using NTFS. Microsoft (7 сентября 2006). Архивировано из оригинала 24 августа 2011 года.
  2. Mark Russinovich. Inside Win2K NTFS, Part 1. Microsoft Developer Network. Дата обращения: 18 апреля 2008. Архивировано из оригинала 24 августа 2011 года.
  3. 1 2 3 Microsoft Corporation. How NTFS works. Дата обращения: 27 января 2008. Архивировано из оригинала 24 августа 2011 года.
  4. 1 2 3 Richard Russon and Yuval Fledel. NTFS Documentation. Дата обращения: 1 июля 2007. Архивировано 13 февраля 2006 года.
  5. 1 2 3 то есть в кодировке UTF-16 для Юникода версии 1, а для последующих — только в порядке совместимости
  6. Размер кластера по умолчанию для FAT, NTFS и exFAT Архивная копия от 14 июля 2015 на Wayback Machine.
  7. Overview and History of NTFS. www.pcguide.com. Дата обращения: 15 октября 2016. Архивировано 1 ноября 2016 года.
  8. VFAT-OS2. www.dsteiner.com. Дата обращения: 31 мая 2017. Архивировано 20 июня 2017 года.
  9. 1 2 Microsoft TechNet: Windows Sysinternals (англ.). Дата обращения: 18 сентября 2007. Архивировано из оригинала 24 августа 2011 года.
  10. NTFS for Linux Express (англ.). Дата обращения: 28 августа 2008. Архивировано из оригинала 24 августа 2011 года.
  11. How to mount NTFS and FAT32 partitions in OpenSolaris 2008.11 Архивировано 12 марта 2009 года.
  12. Включение поддержки чтения и записи NTFS стандартными средствами:
  13. NTFS-3G stable read and write driver. Дата обращения: 24 мая 2009. Архивировано 7 июля 2009 года.
  14. Обзор файловой системы NTFS. Архивировано 19 апреля 2021 года.
  15. Windows and GPT FAQ. Дата обращения: 6 апреля 2013. Архивировано 3 апреля 2013 года.
  16. Choosing between NTFS, FAT, and FAT32. Microsoft. Дата обращения: 13 сентября 2015. Архивировано 8 сентября 2015 года.
  17. Microsoft Corporation. How NTFS Works. Дата обращения: 1 июля 2009. Архивировано из оригинала 24 августа 2011 года.

Ссылки