NTFS
NTFS (аббревиатура от англ. new technology file system — «файловая система новой технологии») — стандартная файловая система для семейства операционных систем Windows NT фирмы Microsoft.
NTFS | |
---|---|
Разработчик | Майкрософт |
Файловая система | NTFS — new technology file system[1] |
Дата представления | Июль 1993 года (Windows NT 3.1) |
Метка тома | |
Структура | |
Содержимое папок | 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 года |
Точность хранения даты | 100 наносекунд |
Потоки метаданных | Да (см. альтернативные потоки данных) |
Атрибуты | |
Права доступа | 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), macOS, Linux |
NTFS поддерживает хранение метаданных. С целью улучшения производительности, надёжности и эффективности использования дискового пространства для хранения информации о файлах в NTFS используются специализированные структуры данных. Информация о файлах хранится в главной файловой таблице — Master File Table (MFT). NTFS поддерживает разграничение доступа к данным для различных пользователей и групп пользователей (списки контроля доступа — англ. access control lists, ACL), а также позволяет назначать дисковые квоты (ограничения на максимальный объём дискового пространства, занимаемый файлами тех или иных пользователей). Для повышения надёжности файловой системы в NTFS используется система журналирования USN. Для NTFS размер кластера по умолчанию составляет от 512 байт до 64 КБ в зависимости от размера тома и версии ОС[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 является файловая система Files-11 из ОС RSX-11 и ОС OpenVMS. Сравнение файловых систем 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
- Драйвер «NTFSDOS» от Марка Руссиновича (англ. Mark Russinovich). Стандартная версия поддерживает чтение разделов NTFS. Версия «Professional» поддерживает запись на разделы NTFS. С июля 2006 года права на утилиты Марка Руссиновича принадлежат фирме Microsoft[9]. На сайте фирмы Microsoft информации об этом продукте нет, но её без труда можно найти в сети.
Windows 9x
- Драйвер «
NTFS for Windows 98
» от Марка Руссиновича[9]. Поддерживает чтение с разделов NTFS. Для записи можно использовать драйвер DOS. На сайте фирмы Microsoft информация об этом драйвере отсутствует, но его легко можно отыскать на сторонних сайтах. - Драйвер «NTFS for Windows 98» от фирмы Paragon Software Group. В настоящий момент поддерживает как чтение, так и запись. Версия бесплатна для некоммерческого использования.
Linux
- Проект «Linux-NTFS». Включает модуль ядра и набор утилит для выполнения различных операций с файловой системой NTFS (проверка целостности, восстановление удалённых файлов, изменение размера и др.). Именно этот драйвер включается в ядро Linux ещё с версии 2.2 (с тех пор он был практически полностью переписан). Модулем ядра поддерживается практически только чтение; запись возможна лишь в существующие файлы без изменения их размера. Недавно в рамках проекта появилась утилита
ntfsmount
, использующая FUSE и позволяющая монтировать разделы NTFS с возможностью записи (с некоторыми ограничениями). Это был первый полностью свободный продукт, имеющий такую возможность.
- Проект «NTFS-3G». Возник как ответвление от проекта «Linux-NTFS». Отличается более полной поддержкой записи на разделы NTFS. 21 февраля 2007 года была выпущена версия 1.0, названная стабильной. Обеспечивает высокий уровень надёжности и производительности. В настоящее время[когда?] проект активно развивается.
- Проект «Captive NTFS» (). Создавался как «обёртка» для использования оригинального драйвера из ОС Windows NT в ОС Linux. Запись поддерживается, но драйвер работает крайне медленно и имеет некоторые технические ограничения. На официальном сайте проекта помещено объявление о прекращении разработки.
- Драйвер «NTFS for Linux» от фирмы Paragon Software. Драйвер поддерживает чтение и запись с NTFS. Кроме драйвера проект поставляет ряд утилит для создания файловой системы NTFS и выполнения некоторых операций с разделами NTFS. Доступен бесплатно для домашних пользователей[10].
OpenSolaris/Solaris
- Проект «NTFS File System Reader». Поддерживает чтение с NTFS.
BeOS-совместимые операционные системы
Для операционных систем BeOS, Zeta и Haiku существуют следующие проекты.
- Экспериментальный драйвер. Поддерживает чтение и запись с NTFS.
KolibriOS
- Драйвер, поставляемый в составе ОС KolibriOS начиная с версии 0.6.5, написан на языке ассемблера, поддерживает чтение с разделов NTFS и запуска программ.
ReactOS
Реализована поддержка NTFS «на чтение» через свободный драйвер собственного производства. Также есть экспериментальная поддержка записи, включаемая через реестр.
macOS
- В операционной системе macOS встроенный драйвер NTFS по умолчанию работает в режиме чтения. После выпуска версии Mac OS X 10.6 Snow Leopard была найдена возможность включения поддержки записи на NTFS[12].
- Драйвер «NTFS for Mac® OS X» от фирмы Paragon Software.
- Драйвер «NTFS-3G»[13].
- Драйвер «MacFUSE» версии 2.0.
Сравнение файловых систем 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 с размером кластера 64 кб выдаётся ошибка: The number of clusters exceeds 32 bits (Количество кластеров превышает 32 бита). минимальный размер тома: 8 МиБ |
запись в таблице 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 байт минус 1 килобайт практически — 244 байт минус 64 килобайта (~16 384 гигабайт или ~16 терабайт)[17] |
FAT16 поддерживает файлы размером не более 2 Гигабайт FAT32 поддерживает файлы размером не более 4 Гигабайт |
Средства безопасности | атрибуты файлов, авторизация с использованием DACL, шифрование с использованием EFS | атрибуты файлов |
Аудит | с использованием SACL | не поддерживается |
Поддержка сжатия | на уровне файловой системы для файлов, каталогов и дисков; не комбинируется с шифрованием, то есть каждый файл может быть либо сжат, либо зашифрован | на уровне диска (в FAT16); в FAT32 не поддерживается |
Максимальное количество файлов | 4 294 967 295 (232−1) | в FAT32 не более 268 435 444 (228−12) |
См. также
Примечания
- Windows XP: Format backup drives using NTFS (недоступная ссылка). Microsoft (7 сентября 2006 года). Архивировано 24 августа 2011 года.
- Mark Russinovich. Inside Win2K NTFS, Part 1 (недоступная ссылка). Microsoft Developer Network. Дата обращения: 18 апреля 2008. Архивировано 24 августа 2011 года.
- Microsoft Corporation. How NTFS works (недоступная ссылка). Дата обращения: 27 января 2008. Архивировано 24 августа 2011 года.
- Richard Russon and Yuval Fledel. NTFS Documentation (недоступная ссылка). Дата обращения: 1 июля 2007. Архивировано 13 февраля 2006 года.
- то есть в кодировке UTF-16 для Юникода версии 1, а для последующих — только в порядке совместимости
- Размер кластера по умолчанию для FAT, NTFS и exFAT.
- Overview and History of NTFS . www.pcguide.com. Дата обращения: 15 октября 2016. Архивировано 2 ноября 2016 года.
- VFAT-OS2 . www.dsteiner.com. Дата обращения: 31 мая 2017. Архивировано 20 июня 2017 года.
- Microsoft TechNet: Windows Sysinternals (англ.) (недоступная ссылка). Дата обращения: 18 сентября 2007 года. Архивировано 24 августа 2011 года.
- NTFS for Linux Express (англ.) (недоступная ссылка). Дата обращения: 28 августа 2008 года. Архивировано 24 августа 2011 года.
- How to mount NTFS and FAT32 partitions in OpenSolaris 2008.11 Архивировано 12 марта 2009 года.
- Включение поддержки чтения и записи NTFS стандартными средствами:
- в ОС «Mac OS X 10.6 Snow Leopard» Архивная копия от 8 сентября 2011 на Wayback Machine;
- в ОС «Mac OS X 10.7 Lion» Архивная копия от 12 октября 2011 на Wayback Machine.
- NTFS-3G stable read and write driver
- Обзор файловой системы NTFS . Архивировано 19 апреля 2021 года.
- Windows and GPT FAQ
- Choosing between NTFS, FAT, and FAT32 . Microsoft. Дата обращения: 13 сентября 2015.
- Microsoft Corporation. How NTFS Works (недоступная ссылка). Дата обращения: 1 июля 2009. Архивировано 24 августа 2011 года.
Ссылки
- Tulloch, Mitch NTFS Performance Hacks (англ.) (недоступная ссылка). Windows DevCenter (02/08/2005). Архивировано 24 августа 2011 года.
- Щетько Ускоряем NTFS (недоступная ссылка). Компьютерная газета. Архивировано 1 ноября 2011 года.
- Секреты NTFS. Символьные ссылки (недоступная ссылка) (19 апреля 2005 года). — статья Computerra. Дата обращения: 28 февраля 2008. Архивировано 30 ноября 2012 года.
- Как включить поддержку чтения и записи NTFS в Mac OS X 10.6 Snow Leopard стандартными средствами. (недоступная ссылка). Casing (31 мая 2011 года). — Статья MacDaily.me по материалам MacRumors.com. Архивировано 24 августа 2011 года.
- Как включить поддержку чтения и записи NTFS в Mac OS X 10.7 Lion стандартными средствами. (недоступная ссылка). © Casing (4/07/2011). — Статья MacDaily.me. Архивировано 24 августа 2011 года.
- Расширенные возможности NTFS: статьи, примеры кода, утилиты.
- Hermann, Schinagl Link Shell Extension (англ.) (недоступная ссылка). — Утилита для работы с ссылками NTFS для Windows. Дата обращения: 20 сентября 2008 года. Архивировано 24 августа 2011 года.
- Как конвертировать флешку в NTFS (недоступная ссылка). — Используются стандартные средства Windows. Архивировано 29 августа 2011 года.
- Файловая система NTFS (недоступная ссылка) (24 апреля 2000 года). — Статья iXBT.com. Архивировано 8 августа 2011 года.
- Сравнение NTFS и FAT (недоступная ссылка). — (С) Александр Фролов, 2002. Архивировано 14 октября 2011 года.
- Сравнение файловых систем exFAT, NTFS, FAT32 применительно к внешним носителям данных (недоступная ссылка). — Статья pc-hard.ru, 2011. Архивировано 24 августа 2011 года.