NTFS и FAT32: разница, лимиты и как выбрать

NTFS и FAT32: разница, лимиты и как выбрать Полезное

Файловая система — это способ, которым операционная система хранит файлы на диске: как размечает пространство на блоки, где держит имена файлов и атрибуты, как находит нужные данные при чтении. NTFS и FAT32 — две системы, с которыми чаще всего сталкивается пользователь Windows: NTFS стоит на системном диске, FAT32 — на старых флешках и картах памяти. Разберем лимиты каждой, добавим exFAT для сравнения и разберем, как проверить и сменить файловую систему на своем накопителе.

NTFS: возможности и ограничения

NTFS (New Technology File System) — основная файловая система Windows NT и всех современных версий Windows, начиная с Windows 2000. Информация обо всех файлах тома хранится в единой служебной структуре — главной файловой таблице (Master File Table, MFT). Под нее резервируется место на диске, обычно порядка 12% объема тома при форматировании по умолчанию.

Ключевые особенности NTFS:

  • Журналирование. Перед изменением метаданных NTFS сначала пишет запись о предстоящей операции в журнал транзакций ($LogFile). Если система упадет посреди записи, при следующей загрузке NTFS откатывает незавершенные транзакции по журналу. Это защищает целостность структуры файловой системы (кто где лежит), но не гарантирует сохранность содержимого пользовательского файла, который писался в момент сбоя — оно может быть повреждено или потеряно.
  • Права доступа. NTFS хранит списки контроля доступа (ACL) для файлов и папок: можно разрешить или запретить чтение, запись, выполнение для конкретных пользователей и групп. FAT32 таких прав не поддерживает.
  • Шифрование и сжатие. Шифрующая файловая система (EFS) шифрует отдельные файлы и папки ключом, привязанным к учетной записи пользователя и профилю Windows. При переносе диска на другой компьютер или переустановке системы без экспорта сертификата доступ к зашифрованным файлам теряется. NTFS также поддерживает прозрачное сжатие файлов на уровне файловой системы.
  • Устойчивость к фрагментации каталогов. Имена файлов и подкаталоги внутри NTFS-каталога организованы в виде B-дерева (упрощенно: сбалансированное дерево с сортировкой по имени), поэтому поиск файла в каталоге с десятками тысяч записей не деградирует так заметно, как в старых линейных структурах FAT.

По лимитам NTFS на много порядков превосходит FAT32: по документации Microsoft для Windows 10 версии 1709, Windows Server 2019 и новее максимальный размер тома NTFS — 8 петабайт, максимальный размер файла — 8 петабайт минус 2 МБ (более ранние версии Windows поддерживают тома до 256 ТБ). exFAT в этом сравнении не аутсайдер: по спецификации Microsoft ее собственный потолок размера тома и файла — тоже 128 петабайт, то есть того же порядка, что и у NTFS, а не на порядки меньше. Разница между NTFS и exFAT не в предельных цифрах, а в возможностях сверх хранения самого файла — журналировании, правах доступа и шифровании, которых у exFAT нет.

Размер кластера в NTFS по умолчанию — 4 КБ, но его можно задать вручную при форматировании (от 512 байт до 2 МБ в зависимости от размера тома). Меньший кластер экономит место на диске с множеством мелких файлов, больший — ускоряет работу с крупными файлами за счет меньшего числа операций, но увеличивает потери на «хвостах»: файл в 1 КБ на кластере 64 КБ все равно займет весь кластер целиком.

Как выбрать файловую систему под задачу

Выбор зависит не от того, какая система «лучше» в общем, а от конкретного сценария использования накопителя:

  • Системный диск с Windows. Только NTFS: она нужна для установки самой Windows (файл образа install.wim часто превышает 4 ГБ — на FAT32 он физически не запишется), плюс дает права доступа и журналирование для системных файлов.
  • Флешка для переноса файлов между Windows, macOS и Linux, файлы меньше 4 ГБ. FAT32 — гарантированно читается и пишется во всех трех системах и в большинстве бытовой техники без установки дополнительных драйверов.
  • Флешка или внешний SSD, на которых будут файлы больше 4 ГБ (видео в высоком разрешении, образы дисков, бэкапы виртуальных машин). exFAT — снимает лимит FAT32, но остается легкой и кросс-платформенной без танцев с драйверами NTFS на macOS.
  • Внешний диск, который используется только с Windows и должен переживать сбои питания без потери структуры каталогов (например, для регулярных бэкапов). NTFS — за счет журналирования.
  • Карта памяти в фотоаппарате, видеорегистраторе, старой консоли или автомагнитоле. Смотреть в инструкцию устройства: старая техника часто поддерживает только FAT32, современная — все чаще exFAT для карт большого объема.

FAT32: возможности и ограничения

FAT32 (File Allocation Table, 32-битная версия) — развитие более старых FAT12/FAT16, представленное еще в Windows 95 OSR2. Сегодня она держится не как системная файловая система Windows, а как формат по умолчанию для флешек, карт памяти фотоаппаратов и старых внешних накопителей — из-за широчайшей совместимости с бытовой техникой и прошивками, которые не умеют NTFS.

Жесткие лимиты FAT32, которые стоит знать до записи файлов:

  • Максимальный размер одного файла — 4 294 967 295 байт (2^32 — 1 байт, чуть меньше 4 ГБ). Поле размера файла в FAT32 занимает 32 бита, поэтому файл ровно в 4 ГБ на FAT32 записать нельзя — только до этого значения минус один байт. На практике это бьет по бэкапам виртуальных машин, ISO-образам дисков и видео в высоком разрешении.
  • Максимальный размер тома — зависит от реализации. По спецификации Microsoft FAT32 поддерживает тома до 2 ТБ при секторе 512 байт и до 16 ТБ при секторе 4 КБ. Но встроенный в Windows инструмент форматирования ограничивает создание нового тома FAT32 через проводник или format 32 гигабайтами — это ограничение конкретной утилиты, а не файловой системы. Диски большего объема в FAT32 форматируют сторонними утилитами или из-под другой ОС.
  • Совместимость по записи с современной Windows. Начиная с Windows 95 OSR2 и до сих пор Windows читает и пишет FAT32 без ограничений — это не «несовместимость», как иногда пишут, а рабочий формат для внешних носителей, просто без прав доступа, журналирования и шифрования NTFS.
  • Максимальная длина имени файла — 255 символов с длинными именами (LFN), как и у NTFS; ограничение в 8.3 символа (короткое имя вида FILE~1.TXT) сохраняется только для устройств и режимов, которые не поддерживают LFN.

Сравнение NTFS, FAT32 и exFAT

exFAT (Extended File Allocation Table) стоит рядом с FAT32 как современная замена для флеш-накопителей: убирает лимит 4 ГБ на файл, но, в отличие от NTFS, остается легковесной и без журнала — разработана специально для карт памяти и внешних SSD, где важна кросс-платформенная совместимость Windows/macOS/Linux, а не журналирование.

Параметр FAT32 exFAT NTFS
Максимальный размер файла 4 294 967 295 байт (~4 ГБ минус 1 байт) 128 ПБ по спецификации 8 ПБ минус 2 МБ (Windows 10 1709+, Server 2019+)
Максимальный размер тома 2 ТБ (сектор 512 байт) / 16 ТБ (сектор 4 КБ) по спецификации; форматтер Windows — 32 ГБ 128 ПБ по спецификации 8 ПБ (Windows 10 1709+, Server 2019+; более ранние версии — до 256 ТБ)
Журналирование нет нет да
Права доступа (ACL) нет нет да
Шифрование средствами ФС нет нет да (EFS)
Совместимость с Windows полная (чтение и запись) полная (чтение и запись) полная (чтение и запись)
Совместимость с macOS чтение и запись чтение и запись чтение из коробки, запись обычно только через стороннее ПО
Совместимость с Linux чтение и запись (штатно) чтение и запись (нужен exfat в ядре или пакет exfat-utils) чтение и запись (драйвер ntfs3 в современных ядрах)
Типичное применение старые флешки, карты памяти для фото- и видеотехники современные флешки и внешние SSD, файлы больше 4 ГБ системный диск Windows, внутренние накопители

exFAT не журналирует изменения, поэтому при внезапном отключении накопителя структура каталогов у нее восстанавливается хуже, чем у NTFS, — для системного диска или важного архива это не лучший выбор, а вот для переносной флешки риск обычно приемлем.

Как проверить и сменить файловую систему

Прежде чем менять файловую систему, стоит проверить текущую. В Windows это делает fsutil:

fsutil fsinfo volumeinfo D:

В выводе будет строка с именем файловой системы, например:

File System Name : FAT32

В Linux файловую систему подключенного накопителя показывает lsblk:

lsblk -f
NAME   FSTYPE   LABEL   MOUNTPOINT
sdb1   exfat    USB     /media/usb

Перевести том из FAT32 в NTFS можно без потери данных штатной командой convert — она перестраивает структуру на месте:

convert D: /FS:NTFS

Обратного пути «конвертировать» из NTFS в FAT32 или exFAT без потери данных нет: единственный штатный способ — полное форматирование, которое стирает содержимое тома. Перед такой операцией обязательно скопируйте нужные файлы на другой диск и дважды проверьте букву диска в команде — format необратимо очищает выбранный том целиком.

Выводы

  • FAT32 ограничивает один файл 4 294 967 295 байт (чуть меньше 4 ГБ) и требует стороннего форматирования для томов больше 32 ГБ.
  • NTFS дает журналирование, права доступа и шифрование, но хуже совместима с бытовой техникой и по умолчанию доступна на macOS только на чтение.
  • exFAT снимает лимит 4 ГБ на файл и остается кросс-платформенной, но не журналирует изменения — для системного диска не подходит.
  • Перевести FAT32 в NTFS можно без потери данных командой convert; обратный переход требует полного форматирования и бэкапа заранее.
  • Для флешек и карт памяти с файлами до 4 ГБ и максимальной совместимости годится FAT32, для файлов большего размера — exFAT, для системного диска Windows — только NTFS.

Где применяется / связь с практикой

Освойте тему на практике

Понимание лимитов файловых систем нужно не только при форматировании флешки: это часть базовой подготовки системного администратора и разработчика, который работает с дисковой подсистемой, бэкапами и кросс-платформенной инфраструктурой. Такие темы разбираются на курсе Системное программирование — там разбирают устройство операционных систем, работу с файловыми системами и низкоуровневое взаимодействие с диском на практике.

Освойте тему на практике

Если пока не уверены, что системное программирование — ваше направление, посмотрите открытые уроки Otus по смежным темам: расписание есть на странице открытых уроков.

Смежные темы: Операционные системы и программное обеспечение.

FAQ

Почему на флешку FAT32 не копируется файл размером ровно 4 ГБ?
Поле размера файла в FAT32 занимает 32 бита, максимум — 4 294 967 295 байт, то есть на один байт меньше 4 ГБ. Файл 4 ГБ и больше физически не помещается в это поле — решение: переформатировать накопитель в exFAT или NTFS либо разбить файл архиватором на части.

Почему раздел восстановления и загрузочный раздел UEFI на диске с Windows все равно FAT32, если система стоит на NTFS?
Спецификация UEFI требует, чтобы EFI System Partition (загрузочный служебный раздел) был отформатирован именно в FAT32 — это требование стандарта загрузки, а не файловой системы для хранения пользовательских данных. Сама Windows при этом стоит на основном разделе с NTFS.

Можно ли писать на NTFS-диск с Mac без сторонних программ?
Из коробки macOS монтирует тома NTFS только на чтение. Для записи нужен сторонний драйвер (платный или бесплатный) либо предварительно переформатировать накопитель в exFAT, который macOS поддерживает на чтение и запись нативно.

OTUS Журнал
Скидка 5% 12-19 октября на курсы (popup)
Бесплатные открытые уроки (поп-ап)