На всех fat дисках сколько имеется экземпляров таблицы fat
FAT (англ. File Allocation Table ) - архитектура файловой системы компьютера и семейство файловых систем, использующих её. FAT является простой и функциональной иерархической файловой системой. Она предоставляет высокую производительность и легковесные реализации, но не способна обеспечить такую же производительность, надёжность и масштабируемость, как современные файловые системы. Однако она поддерживается из соображений совместимости почти всеми современными ОС для ПК, мобильных устройств и встроенных систем и поэтому подходит для обмена данными между различными устройствами от 1981 и до настоящего времени.
Созданная в 1977 и изначально предназначенная для дискет, FAT вскоре адаптировали и широко использовали почти повсеместно на жестких дисках в эры DOS и Windows 9x на протяжении двадцати лет. По мере развития жёстких дисков возможности файловых систем соответствующим образом расширялись, что привело в результате к различным вариантам файловых систем: FAT12, FAT16 и FAT32. Стандарт FAT был также расширен по другим направлениям, сохраняя совместимость с ПО.
С появлением более мощных компьютеров и ОС FAT перестала быть стандартной файловой системой для Microsoft Windows.
В настоящее время файловую систему FAT можно обычно найти на дискетах, флешках, других картах и модулях с твердотельной памятью, а также в портативных и встроенных устройствах. DCF реализует FAT как стандарт для цифровых камер. FAT также используется на стадии загрузки EFI-совместимых компьютеров.
Обзор FAT
FAT является наиболее упрощенным из файловых систем, поддерживаемых Windows NT. Файловая система FAT характеризуется таблицей распределения файлов (FAT), которая на самом деле является таблицей, которая находится в самом "верху" тома. Чтобы защитить том, в случае повреждения одной из них хранятся две копии FAT. Кроме того, таблицы FAT и корневой каталог должны храниться в фиксированном расположении, чтобы правильно располагать файлы загрузки системы.
Диск, отформатированный с помощью FAT, выделяется в кластерах, размер которых определяется размером тома. Когда создается файл, в каталоге создается запись и устанавливается первый номер кластера, содержащий данные. Эта запись в таблице FAT указывает на то, что это последний кластер файла, или указывает на следующий кластер.
Обновление таблицы FAT очень важно, а также отнимает много времени. Если таблица FAT регулярно не обновляется, это может привести к потере данных. Это отнимает много времени, так как при каждом обновлении таблицы FAT необходимо переместить головки чтения диска в логическую нулевую дорожку диска.
В структуре каталогов FAT нет организации, и файлам предоставляется первое открытое расположение на диске. Кроме того, FAT поддерживает только атрибуты файлов для чтения, скрытых, системных и архивных файлов.
Недостатки HPFS
Из-за накладных расходов, задействованных в HPFS, это не очень эффективный выбор для объема менее 200 МБ. Кроме того, с объемами более 400 МБ, будет некоторое ухудшение производительности. Невозможно установить безопасность в HPFS в соответствии с Windows NT.
HPFS поддерживается только в Windows NT версиях 3.1, 3.5 и 3.51. Windows NT 4.0 не может получить доступ к разделам HPFS.
Дополнительные недостатки HPFS см. в следующих ниже.
Windows NT Server "Concepts and Planning Guide", Chapter 5, section titled "Choosing a File System"
Windows NT Набор ресурсов workstation 4.0, глава 18, "Выбор файловой системы"
Windows NT Набор ресурсов server 4.0 "Руководство по ресурсам", глава 3, раздел под названием "Какая файловая система будет использовать в каких томах"
Обзор HPFS
Сначала файловая система HPFS была представлена с ОС/2 1.2, чтобы обеспечить больший доступ к более крупным жестким дискам, которые затем появились на рынке. Кроме того, новая файловая система должна была расширить систему именования, организации и безопасности для растущих требований рынка сетевых серверов. HPFS поддерживает организацию каталогов FAT, но добавляет автоматическую сортировку каталога на основе имен файлов. Имена файлов расширяются до 254 символов двойного byte. HpFS также позволяет файлу быть составленным из "данных" и специальных атрибутов, чтобы обеспечить повышенную гибкость с точки зрения поддержки других соглашений имен и безопасности. Кроме того, единица распределения меняется из кластеров в физические сектора (512 bytes), что уменьшает потерянное пространство диска.
В hpFS записи каталогов занимают больше информации, чем в fat. Как и файл атрибутов, это включает сведения об изменении, создании и дате и времени доступа. Вместо того, чтобы указать на первый кластер файла, записи каталога в HPFS указывают на FNODE. FNODE может содержать данные файла или указатели, которые могут указать на данные файла или другие структуры, которые в конечном итоге указывают на данные файла.
HPFS пытается выделить как можно больше файла в дополнительных секторах. Это делается для повышения скорости при последовательной обработке файла.
Кроме того, HPFS включает несколько уникальных объектов специальных данных:
Конвенция о наименовании FAT
FAT использует традиционную конвенцию именования файлов 8.3, и все имена файлов должны быть созданы с набором символов ASCII. Имя файла или каталога может быть длиной до восьми символов, затем период (.) сепаратором и до трех символов. Имя должно начинаться с буквы или номера и может содержать любые символы, за исключением следующих:
Если какой-либо из этих символов используется, могут возникать неожиданные результаты. Имя не может содержать пробелы.
Зарезервированы следующие имена:
CON, AUX, COM1, COM2, COM3, COM4, LPT1, LPT2, LPT3, PRN, NUL
Все символы будут преобразованы в верхний шкаф.
Суперблок
Суперблок расположен в логическом секторе 16 и содержит указатель на FNODE корневого каталога. Одна из самых больших опасностей при использовании HPFS заключается в том, что если Суперблок потерян или поврежден из-за плохого сектора, содержимое раздела также не повреждено, даже если остальной диск в порядке. Можно восстановить данные на диске, скопив все на другой диск с хорошим сектором 16 и перестроив Super Block. Однако это очень сложная задача.
FAT12
Между апрелем и августом 1980, в процессе заимствования концепта FAT для операционной системы от SCP на 8086 - QDOS 0.10, Tim Paterson расширил элементы таблицы до 12 бит, понизил число FAT до двух, переопределил некоторые из зарезервированных значений для кластеров и модифицировал разметку диска, поэтому корневая директория стала находиться между FAT и областью данных в его реализации FAT12. Paterson также расширил девятисимвольное (6.3) имя файла до одиннадцати символов, чтобы поддерживать стиль имён файлов CP/M 8.3 и файл контрольных блоков. К августу 1980 QDOS была переименована в 86-DOS и, начиная с 86-DOS 0.42, размер и разметка директорий бы изменён с 16 байт до 32, чтобы добавить метку времени и повысить теоретический размер файла для 16 MB. 86-DOS 1.00 стала доступна в начале 1981. Позднее в 1981 86-DOS получила развитие в виде Microsoft's MS-DOS и IBM PC DOS. Возможность читать предыдущие 16-байтные директории была убрана в MS-DOS 1.20.
Размер диска хранился и вычислялся как 16-битный счетчик секторов, который ограничивал размер памяти до 32 MB при размере логического сектора в 512 байт. FAT12 использовался несколькими производителями с различными физическими форматами, но обычная дискета была размером 5.25 дюймов (130 мм), односторонняя, 40 дорожек, с восемью секторами на дорожке, что приводит к вместимости 160 KB как для системных областей, так и для файлов.
Согласно соглашению, все структуры были организованы таким образом, чтобы помещаться на первой дорожке, избегая таким образом продвижения вперед во время операций чтения и записи, хотя это зависит от производителя и физического формата диска. Любой повреждённый сектор в области структуры управления на нулевой дорожке мог привести диск в негодность. Утилита форматирования из DOS полностью отвергала такие диски. Повреждённые секторы были разрешены только в области файлов (начиная с DOS 2.0) и отмечались зарезервированным значением 0xFF7 в FAT. Это делало весь остальной кластер пригодным к использованию.
86-DOS 1.00 и PC DOS 1.0 записи директорий включали только одну дату, дату последней модификации. PC DOS 1.1 добавил поддержку времени последней модификации. PC DOS 1.x файловые атрибуты включали скрытый бит и системный бит, оставшиеся биты не определены. В то время DOS не поддерживал иерархическую файловую систему, что было до сих пор приемлемо, т. к. число файлов на диске редко превышало несколько дюжин.
BIOS Parameter Block (BPB) был введён в PC DOS 2.0, в этой версии также добавлены метки только для чтения, архив, том; биты атрибутов директорий для иерархии поддиректорий.
MS-DOS 3.0 предоставил поддержку плотно записываемых 1.2 MB 5.25-дюймовых дискет, у которых было 15 секторов на дорожке. FAT12 используется на дискетах, включая 1.44 MB и более поздние 2.88 MB диски.
Производные от FAT системы
Удаление ограничений
Во-первых, NTFS значительно увеличил размер файлов и томов, так что теперь они могут быть до 2^64 bytes (16 exabytes или 18,446,744,073,709,551,616 bytes). NTFS также возвращается к концепции кластеров FAT, чтобы избежать проблемы HPFS фиксированного размера сектора. Это было сделано, Windows NT является портативной операционной системой, и в какой-то момент может возникнуть другая технология диска. Таким образом, 512 bytes в секторе рассматривается как имеющие большую возможность не всегда хорошо подходят для выделения. Это было сделано путем определения кластера как нескольких размеров естественного распределения оборудования. Наконец, в NTFS все имена файлов основаны на Юникоде, а имена 8.3 хранятся вместе с длинными именами файлов.
Недостатки NTFS
Не рекомендуется использовать NTFS в томе, который меньше 400 МБ, из-за количества накладных расходов на NTFS. Это пространство в виде системных файлов NTFS, которые обычно используют не менее 4 МБ дискового пространства на разделе 100-МБ.
В настоящее время шифрование файлов не встроено в NTFS. Таким образом, кто-то может загрузиться в MS-DOS или другую операционную систему и использовать утилиту редактирования дисков низкого уровня для просмотра данных, хранимых в томе NTFS.
Невозможно форматирование дискетного диска с файловой системой NTFS; Windows NT форматы всех дискетных дисков с файловой системой FAT, так как накладные расходы, связанные с NTFS, не будут соответствовать дискетным дискам.
Дополнительные обсуждения недостатков NTFS см. в следующих ниже.
Windows NT Server "Concepts and Planning Guide", Chapter 5, section titled "Choosing a File System"
Windows NT Набор ресурсов workstation 4.0, глава 18, "Выбор файловой системы"
Windows NT Набор ресурсов server 4.0 "Руководство по ресурсам", глава 3, раздел под названием "Какая файловая система будет использовать в каких томах"
Версии системы FAT
exFAT
exFAT, иногда называется FAT64 — проприетарная файловая система, предназначенная главным образом для флэш-накопителей. Впервые представлена фирмой Microsoft для встроенных устройств в Windows Embedded CE 6.0. Размер кластера по умолчанию для файловой системы exFAT составляет от 4 КБ до 128 КБ в зависимости от размера тома.
Основными преимуществами exFAT перед предыдущими версиями FAT являются:
- Уменьшение количества перезаписей одного и того же сектора, что важно для флеш-накопителей, у которых ячейки памяти необратимо изнашиваются после определённого количества операций записи (это сильно смягчается выравниванием износа (wear leveling), встроенным в современные USB-накопители и SD-карты). Это было основной причиной разработки exFAT.
- Теоретический лимит на размер файла 2 64 байт (16 эксабайт).
- Максимальный размер кластера увеличен до 2 25 байт (32 мегабайта).
- Улучшение распределения свободного места за счёт введения бит-карты свободного места, что может уменьшать фрагментацию диска.
- Введена поддержка списка прав доступа.
- Поддержка транзакций (опциональная возможность, должна поддерживаться устройством).
Преимущества NTFS
NTFS лучше всего использовать для объемов около 400 МБ или более. Это происходит потому, что производительность не снижается в соответствии с NTFS, как это делается в fat, с большими размерами тома.
Возможность восстановления, разработанная в NTFS, такова, что пользователю никогда не нужно запускать какую-либо утилиту восстановления диска на разделе NTFS. Дополнительные преимущества NTFS см. в следующих ниже.
Windows NT Server "Concepts and Planning Guide", Chapter 5, section titled "Choosing a File System"
Windows NT Набор ресурсов workstation 4.0, глава 18, "Выбор файловой системы"
Windows NT Набор ресурсов server 4.0 "Руководство по ресурсам", глава 3, раздел под названием "Какая файловая система будет использовать в каких томах"
Обзор NTFS
С точки зрения пользователя NTFS продолжает организовывать файлы в каталоги, которые, как и HPFS, сортироваться. Однако, в отличие от FAT или HPFS, на диске нет "специальных" объектов и нет зависимости от оборудования, такого как сектора 512-byte. Кроме того, на диске нет специальных местоположений, таких как таблицы FAT или суперблоки HPFS.
Надежность, что особенно желательно для высококлассных систем и файловых серверов
Платформа для добавленных функциональных возможностей
Поддержка требований POSIX
Удаление ограничений файловой системы FAT и HPFS
Запасной блок
Запасной блок расположен в логическом секторе 17 и содержит таблицу "горячие исправления" и блок запасных каталогов. В HPFS при обнаружении плохого сектора запись "горячие исправления" используется для логического указать на существующий хороший сектор на месте плохого сектора. Этот метод для обработки ошибок записи известен как горячее исправление.
Версия HPFS, включенная в Windows NT, не поддерживает горячее исправление.
Turbo FAT
В своей NetWare File System (NWFS) Novell реализовала сильно модифицированный вариант FAT для операционной системы theNetWare. Для больших файлов она использовала метод повышения производительности, названный Turbo FAT.
FATX - семейство файловых систем для жестких дисков и карт памяти в консоли Microsoft's Xbox, представленной в 2001.
Используя те же идем, что и в FAT16 и FAT32, дисковые структуры FATX16 и FATX32 были упрощены, но стали фундаментально несовместимыми с обычными FAT16 и FAT32, что сделало невозможным для обычных драйверов FAT монтировать тома таких файловых систем.
Сектор, размером 4 KB, содержит 18 байтную структуру, похожую на BPB. Размер кластера 16 KB, присутствует только одна копия FAT в Xbox. Размер записей директории - 64 байта вместо обычных 32-х. У файлов могут быть имена до 42 символов при использовании набора символов OEM, максимальный размер -- 4 GB - 1 байт. Метки времени содержат даты создания, модификации и доступа, а также их время, но вместо эпохи 1980 используется 2000.
Преимущества HPFS
HPFS лучше всего для дисков в диапазоне 200-400 МБ. Дополнительные вопросы о преимуществах HPFS см. в следующих ниже.
Windows NT Server "Concepts and Planning Guide", Chapter 5, section titled "Choosing a File System"
Windows NT Набор ресурсов workstation 4.0, глава 18, "Выбор файловой системы"
Windows NT Набор ресурсов server 4.0 "Руководство по ресурсам", глава 3, раздел под названием "Какая файловая система будет использовать в каких томах"
Надежность
Для обеспечения надежности NTFS были рассмотрены три основные области: возможность восстановления, устранение сбоев в одном секторе со смертельным исходом и горячее исправление.
NTFS — это восстанавливаемая файловая система, так как отслеживает транзакции в файловой системе. При выполнении CHKDSK в FAT или HPFS проверяется согласованность указателей в каталоге, распределении и таблицах файлов. В NTFS ведется журнал транзакций с этими компонентами, чтобы CHKDSK возвращал транзакции только до последней точки фиксации, чтобы восстановить согласованность в файловой системе.
В fat или HPFS, если сектор, на который расположен один из специальных объектов файловой системы, не удается, произойдет сбой в одном секторе. NTFS избегает этого двумя способами: во-первых, не используя специальные объекты на диске и отслеживая и защищая все объекты, которые находятся на диске. Во-вторых, в NTFS хранятся несколько копий (число зависит от размера тома) таблицы master File Table.
Как и версии HPFS для ОС/2, NTFS поддерживает горячее исправление.
Конвенции о переименовании NTFS
Имена файлов и каталогов могут быть длиной до 255 символов, включая все расширения. Имена сохраняют случай, но не являются чувствительными к делу. NTFS не проводит различий между именами файлов в зависимости от случая. Имена могут содержать любые символы, за исключением следующих:
В настоящее время из командной строки можно создавать только имена файлов до 253 символов.
В зависимости от оборудования ограничения могут накладывать дополнительные ограничения размера разделов в любой файловой системе. В частности, раздел загрузки может быть размером всего 7,8 ГБ, а в таблице разделов имеется ограничение в 2 терабайта.
Дополнительные сведения о поддерживаемых файловых системах для Windows NT см. в Windows NT Набор ресурсов.
Недостатки FAT
Желательно, чтобы при использовании дисков или разделов более 200 МБ файловая система FAT не должна использоваться. Это потому, что по мере увеличения размера тома производительность с FAT быстро снижается. Невозможно установить разрешения на файлы, которые являются разделами FAT.
Разделы FAT ограничены размером не более 4 гигабайт (ГБ) под Windows NT и 2 ГБ в MS-DOS.
Дополнительные обсуждения других недостатков FAT см. в следующем примере:
Windows NT Server "Concepts and Planning Guide", Chapter 5, section titled "Choosing a File System"
Windows NT Набор ресурсов workstation 4.0, глава 18, "Выбор файловой системы"
Microsoft Windows NT Server 4.0 Набор ресурсов "Руководство по ресурсам", глава 3, раздел под названием "Какая файловая система для использования в каких томах"
Содержание
Добавлены функциональные возможности
Одной из главных задач разработки Windows NT на каждом уровне является предоставление платформы, которая может быть добавлена и построена, и NTFS не является исключением. NTFS предоставляет богатую и гибкую платформу для использования других файловой системы. Кроме того, NTFS полностью поддерживает Windows NT безопасности и поддерживает несколько потоков данных. Файл данных больше не является единым потоком данных. Наконец, в соответствии с NTFS пользователь может добавить в файл свои собственные атрибуты, определенные пользователем.
FAT16
Начальная реализация FAT16 не предоставляла больший размер раздела, чем FAT12, начальное преимущество FAT16 было использование меньших кластеров, что делало использование диска более эффективным, особенно для большого числа файлов размером в несколько сотен байт.
Когда жесткие диски стали больше, и FAT12 и FAT16 в MS-DOS / PC DOS не обеспечивали преимущества по использованию дополнительного пространства памяти, несколько производителей создали свои варианты FAT.
Некоторые вендоры (AST и NEC) поддерживали восемь вместо стандартных четырёх главных записей в их расширенной Master Boot Record (MBR). Другие вендоры работали с размерами томов, которые задавались 16-битными записями секторов и соответствующей арифметикой, повышая размер секторов, с которыми работает ОС. Эти, так называемые, логические секторы были больше (до 8192 байт), чем размер физического сектора (в основном, 512 байт), который диктовал ROM-BIOS INT 13H или аппаратным обеспечением. DOS-BIOS или System BIOS комбинировали несколько физических секторов в логические секторы, с которыми затем работала файловая система. Недостатком этого подхода была менее эффективная буферизация секторов, а также повышенное потребление памяти структурами данных в DOS.
В ноябре 1987 вместе с Compaq Personal Computer DOS 3.31 было представлено то, что сегодня просто известно, как формат FAT16, с расширением 16-битного счётчика секторов диска до 32-битного в BPB. Хотя изменения диска были минимальны, драйвер диска в DOS пришлось переписать для работы с 32-битными номерами секторов, эта задача была трудна, т. к. этот драйвер был написан на 16-битном ассемблере. Изначально результат был назван DOS 3.31 Large File System. Microsoft's DSKPROBE упоминает название BigFAT. Технически данная версия известна как FAT16B.
Поддержка POSIX
NTFS является наиболее совместимым с POSIX.1 поддерживаемых файловых систем, так как поддерживает следующие требования POSIX.1:
Имя, чувствительное к делу:
В POSIX README.TXT, Readme.txt и readme.txt все файлы.
Дополнительный штамп времени:
Дополнительный штамп времени обеспечивает время последнего доступа к файлу.
Твердая ссылка — это когда два разных файла, которые могут располагаться в разных каталогах, указывают на одинаковые данные.
Краткий обзор разметки
В файловой системе FAT смежные секторы диска объединяются в единицы, называемые кластерами. Количество секторов в кластере равно степени двойки (см. далее). Для хранения данных файла отводится целое число кластеров (минимум один), так что, например, если размер файла составляет 40 байт, а размер кластера 4 кбайт, реально занят информацией файла будет лишь 1 % отведенного для него места. Для избежания подобных ситуаций целесообразно уменьшать размер кластеров, а для сокращения объёма адресной информации и повышения скорости файловых операций — наоборот. На практике выбирают некоторый компромисс. Так как ёмкость диска вполне может и не выражаться целым числом кластеров, обычно в конце тома присутствуют т. н. surplus sectors — «остаток» размером менее кластера, который не может отводиться ОС для хранения информации.
Пространство тома FAT32 логически разделено на три смежные области:
- Зарезервированная область. Содержит служебные структуры, которые принадлежат загрузочной записи раздела (Partition Boot Record — PBR, для отличия от Master Boot Record — главной загрузочной записи диска; также PBR часто некорректно называется загрузочным сектором) и используются при инициализации тома;
- Область таблицы FAT, содержащая массив индексных указателей («ячеек»), соответствующих кластерам области данных. Обычно на диске представлено две копии таблицы FAT в целях надежности;
- Область данных, где записано собственно содержимое файлов — то есть текст текстовых файлов, кодированное изображение для файлов рисунков, оцифрованный звук для аудиофайлов и т. д. — а также т. н. метаданные — информация относительно имен файлов и папок, их атрибутов, времени создания и изменения, размеров и размещения на диске.
В FAT12 и FAT16 также специально выделяется область корневого каталога. Она имеет фиксированное положение (непосредственно после последнего элемента таблицы FAT) и фиксированный размер в 32-хбайтных элементах, т.е. при описании в Partition Boot Record указывается именно количество 32-хбайтных элементов, каждый из которых описывает какой-либо элемент корневого каталога (будь то файл или другой вложенный каталог).
Если кластер принадлежит файлу, то соответствующая ему ячейка в таблице FAT содержит номер следующего кластера этого же файла. Если ячейка соответствует последнему кластеру файла, то она содержит специальное значение (FFFF16 для FAT16). Таким образом выстраивается цепочка кластеров файла. Неиспользуемым кластерам в таблице соответствуют нули. «Плохим» кластерам (которые исключаются из обработки, например, по причине нечитаемости соответствующей области устройства) также соответствует специальный код.
При удалении файла первый знак имени заменяется специальным кодом E516 и цепочка кластеров файла в таблице размещения обнуляется. Поскольку информация о размере файла (которая располагается в каталоге рядом с именем файла) при этом остаётся нетронутой, в случае, если кластеры файла располагались на диске последовательно и они не были перезаписаны новой информацией, возможно восстановление удалённого файла.
FAT (от англ. File Allocation Table — «таблица размещения файлов») — архитектура файловой системы, сейчас широко используемая в картах памяти фотоаппаратов и других устройств.
Разработана Биллом Гейтсом и Марком МакДональдом в 1977 году. Использовалась в качестве основной файловой системы в операционных системах DOS и Microsoft Windows (до версии Windows ME).
Структура FAT определена стандартом ECMA-107.
Структура системы FAT
· таблица размещения файлов — собственно FAT (традиционно в двух экземплярах, но вообще-то количество копий указано в загрузочном секторе);
Для хранения файлов всё доступное для них пространство разбивается на кластеры. Таблица размещения файлов содержит ячейки, каждая из которых соответствует определённому кластеру диска. Если кластер принадлежит файлу, то соответствующая ему ячейка содержит номер следующего кластера этого же файла. Если ячейка соответствует последнему кластеру файла, то она содержит значение «FFFF». Таким образом выстраивается цепочка кластеров файла. Неиспользуемые кластеры помечены «0000». «Плохие» кластеры помечены специальным кодом «FFF7».
При удалении файла фактически только делается запись в каталоге, а цепочка кластеров не разрушается и данные не затираются. Это позволяет восстанавливать удалённые файлы, если на их место ещё не было ничего записано.
Максимальный размер кластера, который поддерживается в FAT, составляет 64 Кб. Зная, что максимальное количество кластеров, которое можно адресовать шестнадцатиразрядным указателем равно 65536, можно вычислить какой величины раздел можно отформатировать, применяя тот или иной размер кластера. Если взять размер кластера равным размеру физического кластера (сектора), то получим: 65536 * 512 = 32 Мб. Если взять кластер в 2 раза больше, то можно отформатировать раздел уже до 64 Мб. Ввиду того, что разрядность ФС — величина постоянная, для форматирования дисков различных размеров будут применяться разные размеры кластеров. Например, чтобы отформатировать диск более 1 Гб, нужно применять кластер 16 КБ. Поскольку размер кластера, являющийся максимально допустимым в этой ФС, равен 64 Кб, то можно определить, что максимальный размер раздела, форматируемый под FAT, равен 4 Гб.
FAT16
Файловая система FAT работает с единицами дискового пространства, называемыми кластер. Каждый кластер может включать один или несколько секторов жесткого диска (твой хард обычно разбит на сектора по 512 байт). Из чего следует, что минимальный размер кластера - 512 байт. Для хранения одного файла можно использовать один или несколько кластеров. Каждому кластеру диска в таблице FAT соответствует отдельная запись, которая либо указывает на следующий кластер файла, либо содержит метку конца файла. В составе каждого каталога хранятся имена входящих в него файлов. Вместе с именем файла хранится указатель на первый кластер этого файла. Помимо этого в каталоге хранится дата создания файла, его размер и атрибуты. Атрибуты могут указывать на то, что файл является скрытым, зарезервированным для использования операционной системой, требует архивирования (резервного копирования) или предназначен только для чтения.
Это теория, а теперь недостатки: ты никогда не задумывался, что значит "16" в названии файловой системы? А значат они то, что таблица размещения файлов FAT (File Allocation Table) идентифицирует записи, соответствующие дисковым кластерам, при помощи 16-разрядных чисел. Таким образом, в таблице можно разместить не более 65 536 записей (2 в 16-ой степени). А если учитывать то, что максимальный размер кластера - 32 Кбайта, то выходит, что максимальный раздел дискового тома - 2 Гбайта. У тебя логические диски на винте наверное ГОРАЗДО большего размера? Это недостаток номер "раз"(хотя надо отметить, что FAT32 этот недостаток почти что преодолела). Недостаток номер два - это то, что для хранения ВСЕХ файловых атрибутов система FAT использует всего 1 байт. Нельзя хранить ни сведения о праве доступа к файлу, ни о его владельце… Недостаток номер "три" кроется в том, что при использовании FAT больший размер дискового тома означает больший размер кластера, а одна из главных "невкусностей FAT" - это то, что один файл = как минимум один кластер. Пример: имеем размер кластера 32 Кбайта и файл размером в 2 Кбайта - в результате файл занимает весь кластер, т.е. мы теряем 30 Кбайт…Примерно тоже самое получится, если файл будет размером 34 Кбайта - тогда он займет два кластера и во втором мы опять потеряем 30 Кбайт… Недостатки номер "четыре и пять" - сведения о физическом расположении файлов хранятся в одном месте - таблице размещения файлов FAT, что: а) увеличивает вероятность повреждения и потери всей информации; б) снижает скорость поиска, т.к. для поиска определенного файла нужно обработать всю таблицу. Нужно признать, что FAT16 создавалась давно, во времена MS-DOS и требованиям того времени вполне удовлетворяла…
FAT32
Эта файловая система пришла на смену FAT16. Её отличие в том, что таблица размещения файлов FAT (File Allocation Table) идентифицирует записи, соответствующие дисковым кластерам, при помощи 32-разрядных чисел. В соответствии с этим максимальное количество записей становится равным 4 294 967 296 (2 в 32-ой степени). В связи с чем максимальный размер дискового тома существенно увеличивается (до 2 Тбайт). Однако это позволяет преодолеть лишь недостаток номер "раз", однако все остальные - увы остаются, что особенно обидно для владельцев небольших винтов - нерациональное расходование дискового пространства… а также частые повреждения разнообразной природы и т.д.
Логический раздел, отформатированный под файловую систему FAT, состоит из следующих областей (Рис. 21).
Загрузочный сектор содержит программу начальной загрузки операционной системы. Вид этой программы зависит от типа операционной системы, которая будет загружаться из этого раздела
Основная копия FAТ содержит информацию о размещении файлов и каталогов на диске.
Резервная копия FAT.
Корневой каталог.
Область данных предназначена для размещения всех файлов и всех каталогов, кроме корневого каталога.
Рис. 21.Физическая структура файловой системы FAT
Файловая система FAT поддерживает всего два типа файлов: обычный файл и каталог. Файловая система распределяет память только из области данных, причем использует в качестве минимальной единицы дискового пространства кластер.
Таблица FAT (как основная копия, так и резервная) состоит из массива индексных указателей, количество которых равно количеству кластеров области данных. Между кластерами и индексными указателями имеется взаимно однозначное соответствие — нулевой указатель соответствует нулевому кластеру и т. д.
Индексный указатель может принимать следующие значения, характеризующие состояние связанного с ним кластера: кластер свободен (не используется); кластер используется файлом и не является последним кластером файла - в этом случае индексный указатель содержит номер следующего кластера файла; последний кластер файла; дефектный кластер; резервный кластер.
Таблица FAT является общей для всех файлов раздела. В исходном состоянии (после форматирования) все кластеры раздела свободны и все индексные указатели, кроме тех, которые соответствуют резервным и дефектным блокам, принимают значение «кластер свободен». При размещении файла ОС просматривает FAT, начиная с начала, и ищет первый свободный индексный указатель. После его обнаружения в каталоге в поле записи «номер начального кластера» (Рис. 22) фиксируется номер этого указателя. В кластер с этим номером записываются данные файла, он становится первым кластером файла. Если файл умещается в одном кластере, то в индексный указатель, соответствующий данному кластеру, заносится код соответствующий состоянию «последний кластер файла». Если же размер файла больше одного кластера, то ОС продолжает просмотр FAT и ищет следующий индексный указатель на свободный кластер. После его обнаружения в предыдущий индексный указатель заносится номер этого кластера, который теперь становится следующим кластером файла. Процесс повторяется до тех пор, пока не будут размещены все данные файла. Таким образом создается связный список всех кластеров файла.
Рис. 22 Схема адресации файла в ФС FAT
В начальный период после форматирования файлы будут размещаться в последовательных кластерах области данных, однако после определенного количества удалений файлов кластеры одного файла окажутся в произвольных местах области данных, чередуясь с кластерами других файлов (Рис. 22) или с пустыми кластерами.
Размер таблицы FAT и разрядность используемых в ней индексных указателей определяется количеством кластеров в области данных. Для уменьшения потерь из-за фрагментации желательно кластеры делать небольшими, а для сокращения объема адресной информации и повышения скорости обмена наоборот — чем больше, тем лучше. При форматировании диска под файловую систему FAT обычно выбирается компромиссное решение и размеры кластеров выбираются из диапазона от 1 до 128 секторов, или от 512 байт до 64 Кбайт.
Очевидно, что разрядность индексного указателя должна быть такой, чтобы в нем можно было задать максимальный номер кластера для диска определенного объема. Известны файловые системы FAT12, FAT16 и FAT32, отличающиеся разрядностью индексного указателя и соответственно количеством кластеров в области данных, а значит емкость диска. В современных операционных системах используется файловая система FAT32, с 32-разрядным индексным указателем, в котором можно задать указатель для более чем 4 миллиардов кластеров (4Гбайт).
FAT32 подходит для больших дисков, она способна использовать кластеры 4 Кбайт при работе с дисками объемом до 8 Гбайт и только для дисков большего объема начинает использовать кластеры 8, 16 и 32 Кбайт.
Таблица FAT при фиксированной разрядности индексных указателей имеет переменный размер, зависящий от объема области данных диска.
При удалении файла из файловой системы FAT в первый байт записи каталога соответствующей полю «имя файла» заносится специальный признак, свидетельствующий о том, что эта запись свободна, а во все индексные указатели файла заносится признак «кластер свободен». Остальные данные в записи каталога, в том числе номер первого кластера файла, остаются нетронутыми, что оставляет шансы для восстановления ошибочно удаленного файла. Существует большое количество утилит для восстановления удаленных файлов FAT, выводящих пользователю список имен удаленных файлов с отсутствующим первым символом имени, затертым после освобождения записи.
Резервная копия FAT всегда синхронизируется с основной копией при любых операциях с файлами, поэтому резервную копию нельзя использовать для отмены ошибочных действий пользователя. Резервная копия может быть полезна только в том случае, когда секторы основной памяти оказываются физически поврежденными и не читаются.
Используемый в FAT метод хранения адресной информации о файлах не отличается большой надежностью — при разрыве списка индексных указателей в одном месте, например из-за сбоя в работе программного кода ОС по причине внешних электромагнитных помех, теряется информация обо всех последующих кластерах файла.
Файловая система построены на основе таблицы размещения файлов (File Allocation Table - FAT).
Принцип организации файловой системы FAT — табличный. Поверхность жесткого диска рассматривается как трехмерная матрица, измерениями которой являются номера поверхности, цилиндра и сектора, в соответствии с рисунком 20.1.
Под цилиндромпонимается совокупность всех дорожек, принадлежащих разным поверхностям и находящихся на равном удалении от оси вращения. Данные о том, в каком месте диска записан тот или иной файл, хранятся в системной области диска в специальных таблицах размещения файлов(FAT-таблицах).
Секторы, не содержащие пользовательских данных (файлов), не отражены в FAT. К таким секторам относятся загрузочные секторы, таблицы размещения файлов и секторы корневого каталога.
Поскольку нарушение FAT-таблицы приводит к невозможности воспользоваться данными, записанными на диске, к ней предъявляются особые требования надежности, и она существует в двух экземплярах, идентичность которых регулярно контролируется средствами операционной системы.
Сектор - наименьшая физическая единица хранения данных.Размер сектора равен 512 байт. Поскольку размер FAT-таблицы ограничен, то для дисков, размер которых превышает 32 Мбайт, обеспечить адресацию к каждому отдельному сектору не представляется возможным. В связи с этим группы секторов условно объединяются в кластеры (блоки).
Кластер - наименьшая единица адресации к данным.Размер кластера, в отличие от размера сектора, не фиксирован и зависит от емкости диска.
Рисунок 20.1 – Структура жесткого диска
При записи файла на диск, информация о нем (о типе файлов, их названиях, размерах, дате создания) записывается в корневой каталог. Кроме этого, для каждого файла в корневом каталоге есть номер кластера, с которого начинается файл. По этому номеру, система обращается в ячейку таблицы, с таким же номером, где будет записан номер следующего кластера. И так далее, до тех пор, пока не будет описано расположение всего файла на диске. Запись закончится командой "стоп".
Считывание происходит так же. Сначала считывается информация о файле, затем по указателю система переходит в таблицу и там, считывает остальные номера кластеров, которые занимает файл.
Возьмем, к примеру, (рисунок 20.2) файл mydoc.txt. В поле "указатель" стоит номер 01. По этому номеру, обратившись в FAT (номера ячеек написаны сверху), находим следующий номер 03. Обратившись по номеру 03, находим номер 04. Но номеру 04 находим номер 05, где записана команда "стоп". Итак, получилось, что файл находится в кластерах с номерами 01, 03, 04 и 05 (номера кластеров взяты произвольно для примера, чтобы облегчить понимание темы). Может так случится, что файл занимает всего один кластер, например файл zopa.sys.
На рисунке 20.3 показано, как эти файлы будут расположены на жестком диске.
Файловая система ОС, реализующих 16-разрядные поля в таблицах размещения файлов, называется FAT 16. Она позволяет разместить в FAT-таблицах не более 2 16 записей о местоположении единиц хранения данных и, соответственно, для дисков объемом от 1 до 2 Гбайт длина кластера составляет 32 Кбайт (64 сектора). Это не вполне рациональный расход рабочего пространства, поскольку любой файл (даже очень маленький) полностью оккупирует весь кластер, которому соответствует только одна адресная запись в таблице размещения файлов. Даже если файл достаточно велик и располагается в нескольких кластерах, все равно в его конце образуется некий остаток, нерационально расходующий целый кластер.
Для современных жестких дисков потери, связанные с неэффективностью файловой системы, весьма значительны и могут составлять от 25% до 40% полной емкости диска, в зависимости от среднего размера хранящихся файлов. С дисками же размером более 2 Гбайт файловая система FAT16 вообще работать не может.
В этой статье объясняются различия между таблицей распределения файлов (FAT), Высокопрофилковой файловой системой (HPFS) и файловой системой NT (NTFS) в Windows NT и их преимуществами и недостатками.
Применяется к: Windows 10 — все выпуски, Windows Server 2012 R2
Исходный номер КБ: 100108
HPFS поддерживается только в Windows NT версиях 3.1, 3.5 и 3.51. Windows NT 4.0 не поддерживает и не может получить доступ к разделам HPFS. Кроме того, поддержка файловой системы FAT32 стала доступна в Windows 98/Windows OSR2 и Windows 2000.
Преимущества FAT
Невозможно выполнить недоделку под Windows NT в любой из поддерживаемых файловых систем. Undelete utilities try to directly access the hardware, which cannot be done under Windows NT. Однако, если файл находился на разделе FAT и система перезапущена в MS-DOS, файл может быть незаверяем. Файловая система FAT лучше всего работает для дисков и/или разделов примерно в 200 МБ, так как FAT начинается с очень мало накладных расходов. Дополнительные вопросы о преимуществах FAT см. в следующих ниже.
Windows NT Server "Concepts and Planning Guide", Chapter 5, section titled "Choosing a File System"
Windows NT Набор ресурсов workstation 4.0, глава 18, "Выбор файловой системы"
Windows NT Набор ресурсов server 4.0 "Руководство по ресурсам", глава 3, раздел под названием "Какая файловая система будет использовать в каких томах"
FAT32
FAT32 — последняя версия файловой системы FAT и улучшение предыдущей версии, известной как FAT16. Она была создана, чтобы преодолеть ограничения на размер тома в FAT16, позволяя при этом использовать старый код программ MS-DOS и сохранив формат. FAT32 использует 32-разрядную адресацию кластеров. FAT32 появилась вместе с Windows 95 OSR2.
Максимально возможное число кластеров в FAT32 равно 268 435 445, что позволяет использовать тома (логические диски) объёмом до 8 ТБ. Размер кластера по умолчанию для файловой системы FAT32 составляет от 512 байт до 32 КБ в зависимости от размера тома и конкретной версии ОС. При использовании размера кластера, равного 32768 байт, максимальный размер тома составит чуть менее 8 ТБ. Хотя размер сектора может быть любым, традиционно он считается равным 1 сектору диска и равен 512 байт и т.к. эта величина не менялась с момента создания — она может считаться некоторым ПО как константа. Это может вызвать некоторые проблемы совместимости. Средство ScanDisk, входящее в состав Microsoft Windows 95 и Microsoft Windows 98, является 16-разрядной программой. Для таких программ максимальный размер кластера отдельного фрагмента памяти составляет 16 МБ минус 64 КБ. Следовательно, ScanDisk в Windows 95 или Windows 98 не может работать с томами FAT32, у которых размер таблицы FAT превышает 16 МБ минус 64 КБ. Запись в таблице FAT на томе с файловой системой FAT32 имеет размер 4 байта, поэтому ScanDisk не может работать с таблицей FAT на диске FAT32, описывающей более 4 177 920 кластеров (включая два резервных). С учётом самих таблиц FAT и при максимальном размере кластера 32 КБ размер тома может быть до 127,53 ГБ.
Максимально возможный размер файла для тома FAT32 — ~ 4 ГБ — 4 294 967 295 байт (в FAT32 под размер файла отведено 4 байта. 4 байта - это 32 бита. 2 32 -1 — 4 294 967 295 байт. Поэтому размер файла не может быть больше этого значения, иначе не получится указать его длину. Хотя цепочку в FAT таблице можно продолжать и дальше, но тогда для определения размера файла придется каждый раз пробегать по всей цепочке, а это будет занимать много времени. К тому же в FAT таблице указаны только номера кластеров, поэтому тогда можно будет узнать только округлённое значение длины файла) — это весьма важный фактор для смены файловой системы. FAT32 не поддерживает установку разрешений на доступ к файлам и папкам и некоторые другие функции современных файловых систем. Все эти причины привели к тому, что сейчас наблюдается тенденция отказа от FAT32 в пользу более продвинутых файловых систем, таких как NTFS, Ext2/Ext3. Чаще всего недоверие к NTFS возникает у пользователей из-за трудностей с назначением прав доступа (так как чаще всего они единственные владельцы файлов) и её закрытости.
Читайте также: