Иногда можно встретить такое: есть пустая флешка большого размера, например 32 гигабайта. И есть скачанный фильм на 8 гигабайт. Место на флешке явно есть. Но при попытке скинуть этот файл на флешку компьютер выдаёт, что ему не хватает места для записи.
Казалось бы, пустого места на флешке точно хватает, но записать файл всё равно не получается. Оказывается, всё дело в том, какая файловая система используется на этой флешке.
Что такое файловая система и зачем она нужна
Когда мы прошлый раз говорили о файлах, то выяснили, что:
- файл — это последовательность байтов на диске или флешке;
- эта последовательность необязательно идёт подряд — файл может состоять из нескольких частей в разных местах диска;
- у каждого файла есть название;
- файлы могут лежать в папках, а папки — в других папках;
- файлов на компьютере может быть очень много.
Чтобы компьютер всегда точно знал, где какой файл находится, он использует таблицу файлов — какой-то свой внутренний способ записи информации о каждом файле.
👉 Файловая система — это как раз тот самый способ организации хранения файлов, который компьютер использует для этого диска или флешки. От файловой системы зависит:
- какого размера файлы можно хранить на диске;
- какого размера можно сделать сам диск;
- какие дополнительные данные кроме имени и расположения можно хранить про каждый файл;
- будут ли сохраняться для каждого файла разные версии;
- как будет восстанавливаться файл после случайного удаления;
- с какой скоростью будут считываться и записываться файлы на диск.
Файловая система есть у каждого носителя, где есть хоть один файл — в компьютерах, телефонах, фотоаппаратах, роутерах, умных часах, приставках и даже в умных чайниках.
Что такое кластер
В каждой файловой системе используется понятие кластера — минимального количества байтов, которые может занимать файл (или его часть). Например, если размер кластера в системе равен 32 килобайтам, то каждый файл будет состоять из множества фрагментов по 32 килобайта. Даже если файл гораздо меньше и занимает несколько байтов, то система всё равно выделит для него 32 килобайта.
От размера кластера и от того, сколько их может быть на диске, часто зависит скорость файловой системы. Если размер кластера большой, то файл записывается и читается быстро, но место на диске заканчивается быстрее. А если поставить размер кластера совсем маленьким, то место на диске будет расходоваться экономно, но для доступа к файлу нужно будет прочитать очень много таких кластеров (а значит, файл будет считываться медленнее).
Самая популярная файловая система в мире — FAT32
Файловую систему FAT32 придумала компания Микрософт в 1996 году для Windows 95, и с тех пор это самая популярная файловая система в мире, потому что она очень простая:
- для записи данных об имени и расположении файла используется простая таблица;
- для хранения информации о каждом файле и кластерах, из которых он состоит, используется 32-разрядный адрес;
- система просто хранит адреса кластеров друг за другом в таблице — так компьютер узнаёт, из каких фрагментов собирать каждый файл;
- теоретически можно использовать для дисков на 8 терабайт, но без ошибок такая система работает только на двухтерабайтных дисках.
👉 Благодаря такой простой организации FAT32 встраивают везде, где нужно быстро организовать простой доступ к небольшим файлам.
Почему файл может не записываться на пустую флешку
Эта ситуация почти всегда означает, что на флешке, куда вы хотите что-то записать, используется файловая система FAT32. Обратная сторона её простоты — ограничение в 4 гигабайта на максимальный размер одного файла.
Работает это ограничение так:
- для записи адреса каждого файла отводится 32 бита информации;
- 2 в 32 степени — это ровно 4 гигабайта;
- это максимальное расстояние, которое может в таблице файлов отделять адрес одного файла от другого.
Когда мы пытаемся записать файл на 8 гигабайт на такую флешку, система сразу пробует выделить место для нового файла в таблице. Когда компьютер запишет в память 4 гигабайта, то в этот момент он выяснит, что данных ещё много и нужно выделить больше места. Но FAT32 не может выделить больше места, потому что она на это не рассчитана, и поэтому мы видим ошибку:
Какие ещё бывают файловые системы
NTFS — файловая система компании Микрософт, которая работает по другой технологии. Вместо простой таблицы файлов в ней используется собственная база данных, в которой связано много таблиц. Благодаря этому NTFS позволяет хранить файлы размером больше сотни терабайт и управлять правами доступа пользователей к разным файлам. Примечательно, что эту систему придумали раньше, чем FAT32, но из-за технической сложности она не стала такой популярной.
APFS — система компании Apple, в которую разработчики добавили много дополнительных возможностей:
- историю версий файлов;
- шифрование как всего диска, так и каждого отдельного файла;
- восстановление данных после сбоев.
С этой файловой системой без проблем работает только техника Apple, а для остальных устройств нужен дополнительный драйвер, который не поддерживает всех возможностей этой системы. Поэтому если сломается аймак, то диски от него можно будет прочитать только на другом аймаке или макбуке.
exFAT — расширенная FAT-система, в которой исправили все ограничения FAT32, но оставили всю простоту работы с файлами. Её понимают почти все современные компьютеры, но старые с exFAT работать не будут. Если у вас макбук и вам нужен внешний диск, который может одновременно работать и с MacOS, и с Windows, лучше использовать exFAT — так вы получите максимальную совместимость в обеих системах.
ext4 — файловая система для Linux-дистрибутивов. Умеет многое из того, что умеет APFS.
Как узнать файловую систему на диске
Щёлкните правой кнопкой мыши на диске и выберите пункт «Свойства»:
Windows:
Mac OS:
Как поменять файловую систему
Чтобы поменять на флешке, например, FAT32 на NTFS, её нужно отформатировать. Это значит, что вся информация будет стёрта, а старая файловая система будет заменена на новую.
Чтобы отформатировать флешку на Windows, щёлкните по ней правой кнопкой мыши, выберите пункт «Форматировать» и выберите нужную файловую систему:
На MacOS зайдите в Дисковую утилиту, выберите флешку, нажмите на «Стереть» и выберите новую файловую систему: