Fat32 lba что это

Обновлено: 03.07.2024

Файловая система FAT (File Allocation Table) была разработана Биллом Гейтсом и Марком Макдональдом в 1977 году и первоначально использовалась в операционной системе 86-DOS. Чтобы добиться переносимости программ из операционной системы CP/M в 86-DOS, в ней были сохранены ранее принятые ограничения на имена файлов. В дальнейшем 86-DOS была приобретена Microsoft и стала основой для ОС MS-DOS 1.0, выпущенной в августе 1981 года. FAT была предназначена для работы с гибкими дисками размером менее 1 Мб и вначале не предусматривала поддержки жёстких дисков.

Структура раздела FAT изображена на рисунке.

Рисунок 1. Структура раздела с файловой системой FAT

В файловой системе FAT дисковое пространство логического раздела делится на две области – системную и область данных (см. рис. 1). Системная область создается и инициализируется при форматировании, а впоследствии обновляется при манипулировании файловой структурой. Системная область файловых систем FAT состоит из следующих компонентов:

  • загрузочная запись (boot record, BR);
  • резервная область;
  • таблицы размещения файлов;
  • область корневого каталога (не существует в FAT32).

Область данных логического диска содержит файлы и каталоги, подчиненные корневому, и разделена на участки одинакового размера – кластеры. Кластер может состоять из одного или нескольких последовательно расположенных на диске секторов. Число секторов в кластере должно быть кратно 2N и может принимать значения от 1 до 64. Размер кластера зависит от типа используемой файловой системы и объема логического диска.

Назначение, структура и типы таблицы размещения файлов

Своё название FAT получила от одноимённой таблицы размещения файлов – File Allocation Table, FAT. В таблице размещения файлов хранится информация о кластерах логического диска. Каждому кластеру соответствует элемент таблицы FAT, содержащий информацию о том, свободен данный кластер или занят данными файла. Если кластер занят под файл, то в соответствующем элементе таблицы размещения файлов указывается адрес кластера, содержащего следующую часть файла. Номер начального кластера, занятого файлом, хранится в элементе каталога, содержащего запись об этом файле. Последний элемент списка кластеров содержит признак конца файла (EOF – End Of File). Первые два элемента FAT являются резервными.

Файловая система FAT всегда заполняет свободное место на диске последовательно от начала к концу. При создании нового файла или увеличении уже существующего она ищет самый первый свободный кластер в таблице размещения файлов. Если в процессе работы одни файлы были удалены, а другие изменились в размере, то появляющиеся в результате пустые кластеры будут рассеяны по диску. Если кластеры, содержащие данные файла, расположены не подряд, то файл оказывается фрагментированным.

Существуют следующие типы FAT – FAT12, FAT16, FAT32. Названия типов FAT ведут свое происхождение от размера элемента: элемент FAT12 имеет размер 12 бит (1,5 байт), FAT16 – 16 бит (2 байта), FAT32 – 32 бита (4 байта). В FAT32 четыре старших двоичных разряда зарезервированы и игнорируются в процессе работы операционной системы.

За таблицами размещения файлов следует корневой каталог. Каждому файлу и подкаталогу в корневом каталоге соответствует 32-байтный элемент каталога (directory entry), содержащий имя файла, его атрибуты (архивный, скрытый, системный и «только для чтения»), дату и время создания (или внесения в него последних изменений), а также прочую информацию. Для файловых систем FAT12 и FAT16 положение корневого каталога на разделе и его размер жестко зафиксированы. В FAT32 корневой каталог может быть расположен в любом месте области данных раздела и иметь произвольный размер.

Форматы имен файлов

Структура элемента каталога для короткого имени файла представлена в таблице 1.

Первый байт короткого имени выполняет функции признака занятости каталога:

  • если первый байт равен 0xE5, то элемент каталога свободен и его можно использовать при создании нового файла;
  • если первый байт равен 0x00, то элемент каталога свободен и является началом чистой области каталога (после него нет ни одного задействованного элемента).

Таблица 1. Структура элемента каталога для короткого имени файла

На использование ASCII-символов в коротком имени накладывается ряд ограничений:

  • нельзя использовать символы с кодами меньше 0x20 (за исключением кода 0x05 в первом байте короткого имени);
  • нельзя использовать символы с кодами 0x22, 0x2A, 0x2B, 0x2C, 0x2E, 0x2F, 0x3A, 0x3B, 0x3C, 0x3D, 0x3E, 0x3F, 0x5B, 0x5C, 0x5D, 0x7C;
  • нельзя использовать символ пробела (0x20) в первом байте имени.

В файловых системах FAT32 и VFAT (виртуальная FAT, расширение FAT16) включена поддержка длинных имен файлов (long file name, LFN). Для хранения длинного имени используются элементы каталога, смежные с основным элементом. Имя файла записывается не ASCII-символами, а в Unicode. В одном элементе каталога можно сохранить фрагмент длиной до 13 символов Unicode. Неиспользованный участок последнего фрагмента заполняется кодами 0xFFFF. Структура элемента каталога для длинного имени файла представлена в таблице 2.

Таблица 2. Структура элемента каталога для длинного имени файла

В первом секторе логического диска с системой FAT располагается загрузочный сектор и блок параметров BIOS. Начальный участок данного блока для всех типов FAT идентичен (таблица 3). Различия в структуре загрузочных секторов для разных типов FAT начинаются со смещения 0x24. Для FAT12 и FAT16 структура имеет вид, показанный в таблице 4, для FAT32 – в таблице 5.

Таблица 3. Начальный участок загрузочного сектора

Таблица 4. Структура загрузочного сектора FAT12/FAT16

Смещение Размер, байт Описание 0x24 1 Номер дисковода для прерывания 0х13 0x25 1 0x26 1 Признак расширенной загрузочной записи (0x29) 0x27 4 Номер логического диска 0x2B 11 Метка диска 0x36 8 Текстовая строка с аббревиатурой типа файловой системы

Таблица 5. Структура загрузочного сектора FAT32

Размер, байт Описание 4 Количество секторов, занимаемых одной копией FAT 2 Номер активной FAT 2 Номер версии FAT32: старший байт - номер версии, младший – номер ревизии. В настоящее время используется значение 0:0 4 Номер кластера для первого кластера корневого каталога 2 Номер сектора структуры FSINFO в резервной области логического диска 2 Номер сектора(в резервной области логического диска), используемого для хранения резервной копии загрузочного сектора 12 Зарезервировано (содержит 0)

Кроме перечисленных в таблицах 2-го и 3-го полей, нулевой сектор логического диска должен содержать в байте со смещением 0x1FE код 0x55, а в следующем байте (смещение 0x1FF) – код 0xAA. Указанные два байта являются признаком загрузочного диска.

Таким образом, загрузочный сектор выполняет две важные функции: описывает структуру данных на диске, а также позволяет осуществить загрузку операционной системы.

На логическом диске с организацией FAT32 дополнительно присутствует структура FSInfo, размещаемая в первом секторе резервной области. Эта структура содержит информацию о количестве свободных кластеров на диске и о номере первого свободного кластера в таблице FAT. Формат структуры описан в таблице 6.

Таблица 6. Структура сектора FSInfo и резервного загрузочного сектора FAT32

Размер, байт Описание 4 Значение 0x41615252 – сигнатура, которая служит признаком того, данный сектор содержит структуру FSInfo 480 Зарезервировано (содержит 0) 4 Значение 0x61417272 (сигнатура) 4 Содержит текущее число свободных кластеров на диске. Если в поле записано значение 0xFFFFFFFF, то число свободных кластеров неизвестно, и его необходимо вычислять 4 Содержит номер кластера, с которого дисковый драйвер должен начинать поиск свободных кластеров. Если в поле записано значение 0xFFFFFFFF, то поиск свободных кластеров нужно начинать с кластера номер 2 12 Зарезервировано (содержит 0) 4 Сигнатура 0xAA550000 – признак конца структуры FSInfo

Для доступа к содержимому файла, находящемуся на разделе с файловой системой FAT, необходимо получить номер первого кластера файла. Этот номер, как мы уже установили, входит в состав элемента каталога, содержащего запись о файле. Номеру первого кластера соответствует элемент таблицы FAT, в котором хранится адрес кластера, содержащего следующую часть файла. Элемент FAT, соответствующий последнему кластеру в цепочке, содержит сигнатуру конца файла. Для FAT12 это значение составляет 0xFFF, для FAT16 – 0xFFFF, для FAT32 – 0xFFFFFFFF.

Рассмотрим программную реализацию алгоритма чтения для каждого типа FAT, и начнём с FAT16.

Все исходные тексты, рассматриваемые в статье, доступны на сайте журнала.

Программная реализация алгоритма чтения файла с логического раздела с файловой системой FAT16

Разработаем модуль, выполняющий чтение N первых кластеров файла, созданного на разделе с файловой системой FAT16. Параметр N (число кластеров для считывания) является переменной величиной и задается пользователем. Имя файла соответствует формату «8.3», т.е. является коротким. Модуль функционирует под управлением ОС Linux.

Определим необходимые заголовочные файлы:

Заголовочный файл split.h имеет следующее содержание:

__u8 name[9]; // имя файла

__u8 ext[4]; // расширение файла

int name_len, // длина имени файла

ext_len; // длина расширения файла

Cтруктура split_name предназначена для хранения составных частей короткого имени файла (имени и расширения) и их длин.

В заголовочном файле определены структурные типы, описывающие основные компоненты файловой системы FAT – загрузочный сектор, сектор FSInfo, структуры элементов каталога для короткого и длинного имён файлов.

Рассмотрим кратко поля, которые входят в каждую из этих структур.

    1. Структура загрузочного сектора struct fat_boot_sector:
      • __s8 system_id[8] – системный идентификатор;
      • __u8 sector_size[2] – размер сектора в байтах;
      • __u8 cluster_size – размер кластера в секторах;
      • __u16 reserved – число резервных секторов в резервной области раздела;
      • __u8 fats – количество копий FAT;
      • __u8 dir_entries[2] – количество 32-байтных дескрипторов файлов в корневом каталоге;
      • __u8 sectors[2] – число секторов на разделе; если это поле равно 0, используется поле total_sect;
      • __u8 media – тип носителя, на котором создана файловая система;
      • __u16 fat_length – размер FAT в секторах;
      • __u32 total_sect – размер раздела FAT в секторах (если поле sectors == 0).
      • __u32 fat32_length – размер FAT32 в секторах;
      • __u32 root_cluster – номер первого кластера корневого каталога;
      • __u16 info_sector – номер сектора, содержащего структуру FSInfo.

    Следующие поля данной структуры используются только FAT32:

    1. Структура сектора FSInfo struct fat_boot_fsinfo:
      • __u32 signature1 – сигнатура 0x41615252;
      • __u32 signature2 – сигнатура 0x61417272;
      • __u32 free_clusters – количество свободных кластеров. Если поле содержит -1, поиск свободных кластеров нужно начинать с кластера номер 2.
    2. Структура элемента каталога короткого имени struct msdos_dir_entry:
      • __s8 name[8],ext[3] – имя и расширение файла;
      • __u8 attr – атрибуты файла;
      • __u8 ctime_ms – это поле уточняет время создания файла до мс (используется только FAT32);
      • __u16 ctime – время создания файла (используется только FAT32);
      • __u16 cdate – дата создания файла (используется только FAT32);
      • __u16 adate – дата последнего доступа к файлу (используется только FAT32);
      • __u16 starthi – старшие 16 бит номера первого кластера файла (используется только FAT32);
      • __u16 time,date,start – время и дата создания файла, номер первого кластер файла;
      • __u32 size – размер файла (в байтах).
    3. Структура элемента каталога длинного имени:
      • __u8 id – номер элемента;
      • __u8 name0_4[10] – символы 1 – 5 имени;
      • __u8 attr – атрибуты файла;
      • __u8 alias_checksum – контрольная сумма короткого имени;
      • __u8 name5_10[12] – символы 6 – 11 имени;
      • __u8 name11_12[4] – символы 12 – 13 имени.

    Продолжим рассмотрение программной реализации алгоритма и определим имя раздела, на котором создана файловая система FAT16:

    struct fat_boot_sector fbs; // структура загрузочного сектора

    struct msdos_dir_entry dentry; // структура элемента каталога

    __u16 *fat16; // сюда копируем таблицу FAT16

    __u16 sector_size; // размер сектора (из FAT16)

    __u16 dir_entries; // число 32-байтных дескрипторов

    // в root-каталоге (0 для FAT32)

    __u16 sectors; // общее число секторов в разделе

    __u32 fat16_size; // размер FAT16

    __u32 root_size; // размер корневого каталога

    __u32 data_start; // начало области данных

    __u16 byte_per_cluster; // размер кластера в байтах

    __u16 next_cluster; // очередной кластер в цепочке

    __u8 *dir_entry = NULL; // указатель на записи каталога

    int hard; // дескриптор файла устройства

    Начнём рассмотрение с главной функции:

    Задаем полное имя файла, содержимое которого мы хотим прочитать. Напомню, что мы работаем только с короткими именами файлов. Порядок работы с длинными именами в данной статье не рассматривается.

    __u8 *full_path = "/Folder1/Folder2/text.txt";

    Открываем файл устройства:

    hard = open(FAT16_PART_NAME, O_RDONLY);

    Считываем первые 10 кластеров файла. Считывание выполняет функция fat16_read_file(). Параметры функции – полное имя файла и число кластеров для чтения. Функция возвращает число прочитанных кластеров или -1, если при чтении произошла ошибка:

    num = fat16_read_file(full_path, 10);

    if(num < 0) perror("fat16_read_file");

    else printf("Read %d clusters ", num);

    Закрываем файл устройства и выходим:

    Функция чтения кластеров файла имеет следующий вид:

    int fat16_read_file(__u8 *full_path, int num)

    struct split_name sn; // структура для хранения составных частей файла

    __u8 tmp_name_buff[SHORT_NAME]; // буфер для временного хранения составных элементов полного пути файла

    static int i = 1;

    __u16 start_cluster, next_cluster;

    Параметры функции мы перечислили при рассмотрении функции main.

    Подготовительные операции – обнуляем буфер tmp_name_buff и структуру struct split_name sn:

    memset(tmp_name_buff, 0, SHORT_NAME);

    memset((void *)&sn, 0, sizeof(struct split_name));

    Первым символом в абсолютном путевом имени файла должен быть прямой слэш (/). Проверяем это:

    if(full_path[0] != "/") return -1;

    Считываем с раздела загрузочный сектор:

    if(read_fbs() < 0) return -1;

    Считанный загрузочный сектор находится сейчас в глобальной структуре struct fat_boot_sector fbs. Скопируем из этой структуры размер сектора, число записей в корневом каталоге и общее число секторов на разделе:

    memcpy((void *)&sector_size, (void *)fbs.sector_size, 2);

    memcpy((void *)&dir_entries, (void *)fbs.dir_entries, 2);

    memcpy((void *)&sectors, (void *)fbs.sectors, 2);

    Определим размер кластера в байтах:

    byte_per_cluster = fbs.cluster_size * 512

    Отобразим информацию, находящуюся в загрузочном секторе:

    printf("System id - %s ", fbs.system_id);

    printf("Sector size - %d ", sector_size);

    printf("Cluster size - %d ", fbs.cluster_size);

    printf("Reserved - %d ", fbs.reserved);

    printf("FATs number - %d ",fbs.fats);

    printf("Dir entries - %d ", dir_entries);

    printf("Sectors - %d ", sectors);

    printf("Media - 0x%X ", fbs.media);

    printf("FAT16 length - %u ", fbs.fat_length);

    printf("Total sect - %u ", fbs.total_sect);

    printf("Byte per cluster - %d ", byte_per_cluster);

    Вычисляем размер FAT16 в байтах и считываем её:

    fat16_size = fbs.fat_length * 512;

    if(read_fat16() < 0) return -1;

    Считываем корневой каталог:

    if(read_root_dentry() < 0) return -1;

    Сейчас указатель dir_entry позиционирован на область памяти, содержащую записи корневого каталога. Размер этой области памяти равен размеру корневого каталога (root_size).

    Сохраним (для контроля) содержимое корневого каталога в отдельном файле:

    fat = open("dir16", O_CREAT|O_WRONLY, 0600);

    write(fat, dir_entry, root_size);

    Вычисляем начало области данных:

    data_start = 512 * fbs.reserved + fat16_size * fbs.fats + root_size;

    Имея все записи корневого каталога, мы можем добраться до содержимого файла test.txt. С этой целью организуем цикл. В теле цикла проведем разбор полного имени файла, выделяя его элементы – подкаталоги (их у нас два, Folder1 и Folder2) и имя искомого файла (test.txt).

    memset(tmp_name_buff, 0, SHORT_NAME);

    memset((void *)&sn, 0, sizeof(struct split_name));

    for(n = 0 ; n < SHORT_NAME; n++, i++)

    Заполняем структуру struct split_name sn соответствующей информацией. Заполнение выполняет функция split_name, при этом выполняется проверка имени файла на соответствие формату «8.3»:

    if(split_name(tmp_name_buff, &sn) < 0)

    printf("not valid name ");

    Для каждого элемента полного имени файла определяем начальный кластер. Для этого ищем в элементах каталога (начиная с корневого) запись, соответствующую элементу полного имени, и считываем эту запись. Процедуру поиска выполняет функция get_dentry():

    printf("No such file! ");

    Проверяем атрибуты файла. Если это каталог, считываем его содержимое и продолжаем цикл:

    if(read_directory(dentry.start) < 0) return -1;

    Если это файл – считываем первые num кластеров. Для контроля считанную информацию сохраним в отдельном файле:

    tmp_buff = (__u8 *)malloc(byte_per_cluster); // сюда будет считываться содержимое кластера

    n = open("clust", O_CREAT|O_RDWR, 0600); // в этом файле сохраним считанную информацию

    printf("file`s first cluster - 0x%X .. ", start_cluster);

    Для считывания кластеров файла организуем цикл:

    for(i = 0; i < num; i++)

    memset(tmp_buff, 0, byte_per_cluster);

    Считываем содержимое кластера в буфер tmp_buff и сохраняем его в отдельном файле:

    if(read_cluster(start_cluster, tmp_buff) < 0) return -1;

    if(write(n, tmp_buff, byte_per_cluster) < 0)

    Считываем из FAT16 номер следующего кластера, занятого под данный файл. Если это последний кластер – прерываем цикл и возвращаемся в главную функцию:

    Читайте о том, что собой представляют файловые системы и какие у них между собой отличия. Сделаем акцент на разнице между файловыми системами «NTFS», «FAT», «FAT32» и «exFAT».

    difference-between-ntfs-fat-fat32-and-exfat-file-systems.jpg

    Введение

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

    Файловые системы имеют собственную классификацию и представлены различными видами, включающие как наиболее распространенные «NTFS», «FAT», «HFS+», «Extfs», «Ext2», «ReiserFS», «XFS», «HPFS», «ext2», «OpenBSD», «UDF», «YAFFS», так и довольно редкие «ZFS», и данный ряд может быть существенно дополнен многими другими вариантами.

    Наиболее часто встречающимися и массово представленными файловыми системами безусловно являются «NTFS», «FAT», «FAT32» и «exFAT». Но обычный пользователь не всегда точно может понять разницу между системами. В этой статье мы попытаемся рассмотреть общее понятие файловой системы и ответить на отдельные вопросы, такие как: – «Что представляют собой файловые системы «FAT», «FAT32», «exFAT» и «NTFS» и в чем разница между ними?».

    Определение термина файловая система

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

    Программная система управления аппаратными средствами компьютера идентифицирует любой накопитель как набор однотипных кластеров. Драйверы файловой системы организуют кластеры доступного дискового пространства в файлы и каталоги и содержат список реализованной организации, на основании которого происходит отслеживание и маркировка используемых, свободных или неисправных кластеров, а также осуществляется переход к нужным ячейкам хранения данных по первому требованию.

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

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

    Что представляют собой файловые системы «FAT», «FAT32», «exFAT» и «NTFS»

    Операционная система «Windows», как самый массовый представитель систем управления компьютерными устройствами в мире, настроена на взаимодействие с различными файловыми системами («NTFS» и «FAT»), но «NTFS» поддерживает большие размеры файлов и томов и обеспечивает более эффективную организацию данных, по сравнению с другими вариантами файловых систем.

    И несмотря на общие цели, файловые системы «NTFS» и «FAT» различаются методами организации и хранения данных на диске, а также указанием типов атрибутов, прикрепленных к файлам. И далее мы представим непосредственное описание конкретных файловых систем.

    Файловая система «FAT»

    Сокращенная аббревиатура «FAT» расшифровывается как «таблица размещения файлов». Это простая классическая архитектура файловой системы, изначально предназначенная для небольших дисков и простых структур папок. Иными словами, файловая система «FAT» представляет собой групповой метод организации, в котором таблица размещения файлов выделена в отдельную логическую область и находится в начале тома. Для исключения непреднамеренных или случайных ошибок, способных повлиять на корректное отображение таблицы, система, в целях безопасности, хранит копию массива индексных указателей.

    Файловая система «FAT32»

    «FAT32» является фактическим стандартом, пришедшим на смену более ранним версиям файловой системы «FAT», «FAT12» и «FAT16», и изначально устанавливается на большинстве видов сменных носителей по умолчанию. Пространство «FAT32» логически разделено на три сопредельные области: зарезервированную область для служебных структур, табличную форму указателей и непосредственную зону записи содержимого файлов. Файловая система позволяет использовать накопители на ее основе не только на современных моделях компьютеров, но и в устаревших устройствах и консолях, снабженных разъемом «USB».

    Тем не менее, стандарт «FAT32» имеет определенные системные ограничения. Размер отдельных файлов на диске с файловой системой «FAT32» не может превышать четыре гигабайта. Кроме того, весь раздел «FAT32» должен быть менее восьми терабайт. По совокупности ограничений, формат «FAT32» считается подходящим для «USB-накопителей» или внешних носителей информации. Для внутреннего накопителя, особенно при желании установить новейшую версию операционной системы «Windows 10», отсутствие отдельных привилегий прикладного уровня в «FAT32» будет серьезным препятствием, и потребует наличия более продвинутой версии файловой системы.

    Файловая система «exFAT»

    «exFAT» – это сокращенное обозначение от полного английского названия «Extended File Allocation Table» («расширенная таблица размещения файлов»). Стандарт является обновленной версией файловой системы «FAT32», созданный корпорацией «Microsoft». Основными параметрами система «exFAT» чрезвычайно похожа на «FAT32». Но главным отличием является устранение ограничений, присутствующих в файловой системе «FAT32», что позволяет пользователям хранить файлы намного большего размера, чем четыре гигабайта.

    Также в файловой системе «exFAT» значительно снижено число перезаписей секторов, ответственных за непосредственное хранение информации, что особенно важно для флэш-накопителей, ввиду необратимого изнашивания ячеек после определённого количества операций записи, и улучшен механизм распределения свободного места.

    Файловая система «NTFS»

    «NTFS» («файловая система новой технологии») была в основном создана с целью устранения ограничений и недостатков файловых систем «FAT», улучшения производительности, надёжности и эффективности использования дискового пространства, а также создания надежного механизма защиты и хранения информации. Файловая система «NTFS» хранит информацию о файлах в главной файловой таблице «Master File Table» («MFT»), осуществляет разграничение доступа к данным для различных пользователей, предотвращает несанкционированный доступ к содержимому файла, применяя систему шифрования под названием «Encryption File System», которая использует защитный метод «прозрачного шифрования» данных.

    Помимо вышесказанного, в файловой системе «NTFS» добавлена способность, отсутствующая в характеристиках файловой системы «FAT», открывать файлы, в названиях которых не используются английские буквы, позволяя использовать любые символы стандарта кодирования юникода «UTF». Таким образом, ограничения использования в названиях символов любых сложных языков, например, хинди или корейский, отсутствует.

    Разница между файловыми системами «NTFS», «FAT», «FAT32» и «exFAT»

    Файловая система «FAT» создавалась первоначально для накопителей незначительного объема и способна поддерживать граничные размеры файлов до четырех гигабайт, в то время как в системе «NTFS» допустимый предел размера увеличен до шестнадцати терабайт. Далее подробнее представлены другие отличия:

    «NTFS»

    • Поддержка файлов и дисков значительных размеров, на порядок превышающие остальные файловые системы.
    • Позволяет использовать расширенные имена файлов, включая поддержку множества сложных языков.
    • Падение работоспособности системы при запуске приложения проверки жёсткого диска или внешнего накопителя на ошибки файловой системы «chkdsk».
    • Стандартное приложение обслуживания системы «chkdsk» печально известно своей медлительностью.
    • Повышен уровень безопасности благодаря внедрению метода шифрования файлов.
    • Значительно быстрее на дисках объемом менее сорока гигабайт.
    • Меньшие файловые кластеры.
    • Поддержка сжатия на уровне файловой системы для файлов, каталогов и дисков для уменьшения дискового пространства.
    • Пользовательские разрешения для файлов и папок.
    • Копии файлов «отменяются», если прерванный кластер очищен.
    • Небольшие файлы хранятся в главной таблице файлов в начале диска.

    «FAT»

    • Не совместим с последней версией операционной системы «Windows».
    • Поддержка дисков от тридцати двух мегабайт до двух терабайт.
    • Более сильные преимущества и результативные особенности инструментов для восстановления.
    • Поддерживает быструю проверку работоспособности диска.
    • Простой способ размещения операционной системы и быстрый алгоритм чтения файлов.
    • Быстрее функционирует на дисках объемом менее десяти гигабайт.
    • Цепочки кластеров, содержащие данные из прерванных копий, помечаются как поврежденные.
    • Таблица основных файлов отделена от других файлов.

    «FAT 32»

    • Отсутствуют функции безопасности, которые реализованы в более современной файловой системе «NTFS».
    • Не удается установить новейшие версии операционной системы «Windows» (поскольку файл имеет большой размер и может быть установлен только на диски, отформатированные в системе «NTFS»).

    «exFAT»

    • Доступ к дискам с файловой системой «exFAT» в операционной системе «Linux» можно получить только после установки соответствующего программного обеспечения.
    • Работает со всеми версиями операционной системы «Windows» и современными версиями системы «Mac OS X».

    Полную версию статьи со всеми дополнительными видео уроками смотрите в источнике. Если у вас остались вопросы, задавайте их в комментариях.

    Файловые системы накопителей

    Именно файловые системы определяют способ хранения информации в виде привычных нам файлов, а также насколько быстро будет осуществляться доступ к данным и с какими ограничениями столкнутся пользователи.

    Существует больше 30 файловых систем (ФС), большая часть которых имеет специфическое применение. Например, ФС под названием XFS создана исключительно для операционной системы IRIX, а DTFS — это файловая система, специализирующаяся на сжатии данных.

    Если говорить относительно обычных пользователей ПК на Windows, MacOS и Linux, то для них список можно сократить до нескольких самых распространенных.

    FAT32

    Файловая система, разработанная компанией Microsoft на замену FAT16. Структурно вся область диска в FAT32 делится на кластеры размером от 512 байт до 32 Кбайт. Представьте себе тетрадь в клеточку. Каждая клетка — это кластер, в который может быть записан файл или его часть. Таким образом, большие файлы состоят из цепочки кластеров, которые совсем не обязательно будут располагаться друг за другом.

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

    Главное и пока неоспоримое достоинство этой файловой системы — ее универсальность. FAT32 работает практически со всеми операционными системами Windows, а также без проблем распознается linux, MacOS, операционными системами игровых приставок и даже Android (если в смартфоне предусмотрена поддержка OTG).

    Именно поэтому флеш-накопители чаще всего форматируют в FAT32, чтобы не иметь проблем с совместимостью на различных устройствах. С завода больше 90% всех флешек поставляется с этой ФС. Параллельно к плюсам относится высокая скорость работы с малыми и средними файлами (десятки/сотни мегабайт) и нетребовательность к объему ОЗУ.


    Однако почтенный возраст FAT32 (больше 24 лет, что по меркам IT-индустрии просто огромный срок) накладывает ряд неприятных ограничений.

    Несмотря на то, что размер тома с технической точки зрения может доходить до 8 ТиБ (тебибайт), что составляет около 8,7 ТБ, по факту в операционных системах Windows из-за встроенного ограничения вы не сможете создать том больше 32 ГБ. Соответственно, разметить большие жесткие диски, по крайней мере в Windows, в FAT32 не получится. Возникнут проблемы и с флешками на 64 ГБ.

    Другое, более существенное ограничение — размер одного файла не может превышать 4 ГБ. Учитывая, что бэкапы, фильмы в высоком разрешении и архивы с различной информацией весят больше этого предела, ограничение доставляет массу неудобств.


    exFAT

    Одна из самых последних «новинок», созданная в 2008 году как расширенная версия FAT32 (extended FAT). Майкрософт решила взять лучшее и избавиться от самых неприятных недостатков.

    exFAT ориентирована сугубо на переносные накопители — флешки, SD-карты и съемные жесткие диски. Размер кластера был увеличен до 32 мегабайт, благодаря чему размер файла теперь достигает целых 16 эксабайт (1 эксабайт = 1 048 576 ТБ). Задел на будущее у exFAT довольно внушительный.

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

    Ощутимый минус только один — незначительная потеря совместимости. exFAT поддерживает Windows XP SP2 и более новые ОС. Соответственно, Windows 2000, NT и все, что старше, остается «за бортом». Усложнение структуры также привело к большим затратам вычислительной мощности компьютера. Однако на фоне современных процессоров с их потенциалом этим недостатком можно пренебречь.

    New Technology File System разработали еще в 1993 году, однако, как и FAT32, используют по сей день. Сходство с FAT проявляется и в том, что, пространство делится на кластеры заданного размера. Однако высокую гибкость NTFS обеспечивает именно структура.

    Первые 12% диска выделяются под MFT-зону — специальное служебное пространство, где хранится различная информация для работы всей ФС. Эта зона никогда не фрагментируется. В отличие от FAT используется бинарная структура.


    NTFS обладает множеством достоинств. Максимальный размер тома на практике — 256 ТБ. Размера файла также хватит с запасом — около 16 ТБ. Помимо этого, за счет функции журналирования NTFS — отказоустойчивая система. Проще говоря, ФС либо выполняет действие до конца, либо откатывает все до состояния, когда действие еще не было совершено. Промежуточных «ошибочных» состояний практически не бывает. Имеется встроенное сжатие, средства разграничения прав объектов и шифрование данных.

    К главному минусу NTFS относится низкая совместимость — не поддерживается все, что ниже Windows NT. Это не столь печально, но вот на MacOS и Linux записывать файлы на диски с NTFS не получится — только чтение. Игровые консоли Playstation и Xbox 360 также с этой файловой системой не работают.

    Например, в PS4 можно отформатировать внешний жесткий диск, но только в формате самой приставки для обеспечения совместимости.


    Таким образом, благодаря своему функционалу и поддержке больших объемов пространства NTFS — это отличный вариант для накопителей HDD и SSD. Несмотря на это, вы вполне можете создать на NTFS и флешку, но скорость ее работы по сравнению с FAT будет ниже.

    Сравнительная таблица

    Три приведенных файловых системы являются самыми популярными и наиболее совместимыми среди всех. Для удобства приведем основные параметры в общую таблицу.

    В этой статье объясняются различия между таблицей распределения файлов (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

    FAT является наиболее упрощенным из файловых систем, поддерживаемых Windows NT. Файловая система FAT характеризуется таблицей распределения файлов (FAT), которая на самом деле является таблицей, которая находится в самом "верху" тома. Чтобы защитить том, в случае повреждения одной из них хранятся две копии FAT. Кроме того, таблицы FAT и корневой каталог должны храниться в фиксированном расположении, чтобы правильно располагать файлы загрузки системы.

    Диск, отформатированный с помощью FAT, выделяется в кластерах, размер которых определяется размером тома. Когда создается файл, в каталоге создается запись и устанавливается первый номер кластера, содержащий данные. Эта запись в таблице FAT указывает на то, что это последний кластер файла, или указывает на следующий кластер.

    Обновление таблицы FAT очень важно, а также отнимает много времени. Если таблица FAT регулярно не обновляется, это может привести к потере данных. Это отнимает много времени, так как при каждом обновлении таблицы FAT необходимо переместить головки чтения диска в логическую нулевую дорожку диска.

    В структуре каталогов FAT нет организации, и файлам предоставляется первое открытое расположение на диске. Кроме того, FAT поддерживает только атрибуты файлов для чтения, скрытых, системных и архивных файлов.

    Конвенция о наименовании FAT

    FAT использует традиционную конвенцию именования файлов 8.3, и все имена файлов должны быть созданы с набором символов ASCII. Имя файла или каталога может быть длиной до восьми символов, затем период (.) сепаратором и до трех символов. Имя должно начинаться с буквы или номера и может содержать любые символы, за исключением следующих:

    Если какой-либо из этих символов используется, могут возникать неожиданные результаты. Имя не может содержать пробелы.

    Зарезервированы следующие имена:

    CON, AUX, COM1, COM2, COM3, COM4, LPT1, LPT2, LPT3, PRN, NUL

    Все символы будут преобразованы в верхний шкаф.

    Преимущества 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, раздел под названием "Какая файловая система будет использовать в каких томах"

    Недостатки 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, раздел под названием "Какая файловая система для использования в каких томах"

    Обзор HPFS

    Сначала файловая система HPFS была представлена с ОС/2 1.2, чтобы обеспечить больший доступ к более крупным жестким дискам, которые затем появились на рынке. Кроме того, новая файловая система должна была расширить систему именования, организации и безопасности для растущих требований рынка сетевых серверов. HPFS поддерживает организацию каталогов FAT, но добавляет автоматическую сортировку каталога на основе имен файлов. Имена файлов расширяются до 254 символов двойного byte. HpFS также позволяет файлу быть составленным из "данных" и специальных атрибутов, чтобы обеспечить повышенную гибкость с точки зрения поддержки других соглашений имен и безопасности. Кроме того, единица распределения меняется из кластеров в физические сектора (512 bytes), что уменьшает потерянное пространство диска.

    В hpFS записи каталогов занимают больше информации, чем в fat. Как и файл атрибутов, это включает сведения об изменении, создании и дате и времени доступа. Вместо того, чтобы указать на первый кластер файла, записи каталога в HPFS указывают на FNODE. FNODE может содержать данные файла или указатели, которые могут указать на данные файла или другие структуры, которые в конечном итоге указывают на данные файла.

    HPFS пытается выделить как можно больше файла в дополнительных секторах. Это делается для повышения скорости при последовательной обработке файла.

    Кроме того, HPFS включает несколько уникальных объектов специальных данных:

    Суперблок

    Суперблок расположен в логическом секторе 16 и содержит указатель на FNODE корневого каталога. Одна из самых больших опасностей при использовании HPFS заключается в том, что если Суперблок потерян или поврежден из-за плохого сектора, содержимое раздела также не повреждено, даже если остальной диск в порядке. Можно восстановить данные на диске, скопив все на другой диск с хорошим сектором 16 и перестроив Super Block. Однако это очень сложная задача.

    Запасной блок

    Запасной блок расположен в логическом секторе 17 и содержит таблицу "горячие исправления" и блок запасных каталогов. В HPFS при обнаружении плохого сектора запись "горячие исправления" используется для логического указать на существующий хороший сектор на месте плохого сектора. Этот метод для обработки ошибок записи известен как горячее исправление.

    Версия HPFS, включенная в Windows NT, не поддерживает горячее исправление.

    Преимущества 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, раздел под названием "Какая файловая система будет использовать в каких томах"

    Недостатки 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, раздел под названием "Какая файловая система будет использовать в каких томах"

    Обзор NTFS

    С точки зрения пользователя NTFS продолжает организовывать файлы в каталоги, которые, как и HPFS, сортироваться. Однако, в отличие от FAT или HPFS, на диске нет "специальных" объектов и нет зависимости от оборудования, такого как сектора 512-byte. Кроме того, на диске нет специальных местоположений, таких как таблицы FAT или суперблоки HPFS.

    Надежность, что особенно желательно для высококлассных систем и файловых серверов

    Платформа для добавленных функциональных возможностей

    Поддержка требований POSIX

    Удаление ограничений файловой системы FAT и HPFS

    Надежность

    Для обеспечения надежности NTFS были рассмотрены три основные области: возможность восстановления, устранение сбоев в одном секторе со смертельным исходом и горячее исправление.

    NTFS — это восстанавливаемая файловая система, так как отслеживает транзакции в файловой системе. При выполнении CHKDSK в FAT или HPFS проверяется согласованность указателей в каталоге, распределении и таблицах файлов. В NTFS ведется журнал транзакций с этими компонентами, чтобы CHKDSK возвращал транзакции только до последней точки фиксации, чтобы восстановить согласованность в файловой системе.

    В fat или HPFS, если сектор, на который расположен один из специальных объектов файловой системы, не удается, произойдет сбой в одном секторе. NTFS избегает этого двумя способами: во-первых, не используя специальные объекты на диске и отслеживая и защищая все объекты, которые находятся на диске. Во-вторых, в NTFS хранятся несколько копий (число зависит от размера тома) таблицы master File Table.

    Как и версии HPFS для ОС/2, NTFS поддерживает горячее исправление.

    Добавлены функциональные возможности

    Одной из главных задач разработки Windows NT на каждом уровне является предоставление платформы, которая может быть добавлена и построена, и NTFS не является исключением. NTFS предоставляет богатую и гибкую платформу для использования других файловой системы. Кроме того, NTFS полностью поддерживает Windows NT безопасности и поддерживает несколько потоков данных. Файл данных больше не является единым потоком данных. Наконец, в соответствии с NTFS пользователь может добавить в файл свои собственные атрибуты, определенные пользователем.

    Поддержка POSIX

    NTFS является наиболее совместимым с POSIX.1 поддерживаемых файловых систем, так как поддерживает следующие требования POSIX.1:

    Имя, чувствительное к делу:

    В POSIX README.TXT, Readme.txt и readme.txt все файлы.

    Дополнительный штамп времени:

    Дополнительный штамп времени обеспечивает время последнего доступа к файлу.

    Твердая ссылка — это когда два разных файла, которые могут располагаться в разных каталогах, указывают на одинаковые данные.

    Удаление ограничений

    Во-первых, 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, как это делается в 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 в томе, который меньше 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, раздел под названием "Какая файловая система будет использовать в каких томах"

    Конвенции о переименовании NTFS

    Имена файлов и каталогов могут быть длиной до 255 символов, включая все расширения. Имена сохраняют случай, но не являются чувствительными к делу. NTFS не проводит различий между именами файлов в зависимости от случая. Имена могут содержать любые символы, за исключением следующих:

    В настоящее время из командной строки можно создавать только имена файлов до 253 символов.

    В зависимости от оборудования ограничения могут накладывать дополнительные ограничения размера разделов в любой файловой системе. В частности, раздел загрузки может быть размером всего 7,8 ГБ, а в таблице разделов имеется ограничение в 2 терабайта.

    Дополнительные сведения о поддерживаемых файловых системах для Windows NT см. в Windows NT Набор ресурсов.

    Читайте также: