Как устроено разбор
Что такое файловая система и как она устроена: простыми словами
Файловая система — это порядок, по которому операционная система раскладывает файлы на диске или флешке и потом находит их. Она делит носитель на одинаковые ячейки-кластеры и ведёт таблицу: какой файл в каких кластерах лежит, как называется, в какой папке и сколько весит.
Редакция «Как устроено», разборы по первоисточникам 6 мин чтения
Моё избранноеФайловая система — это правила, по которым данные раскладываются на носителе — жёстком диске, SSD, флешке, карте памяти — и по которым их потом находят. Сам носитель ничего не знает о «файлах» и «папках»: для него это миллиарды пронумерованных ячеек с нулями и единицами. Файловая система превращает эту безликую ленту в понятную человеку картину: у каждого файла есть имя, размер, дата, папка и адреса ячеек, где лежит его содержимое. Похоже на библиотеку: книги стоят на полках где придётся, но каталог точно говорит, где искать каждую. Ниже — как устроена файловая система изнутри, какие бывают и почему флешка иногда отказывается принять большой файл.
Из чего состоит файловая система
| Часть | Что делает |
|---|---|
| Сектор | Минимальный кусок, который физически читает и пишет носитель; обычно 512 байт или 4 КБ |
| Кластер (блок) | Несколько секторов, объединённых файловой системой в одну ячейку хранения; файл всегда занимает целое число кластеров |
| Загрузочная область | Служебное начало раздела: здесь записано, какая это файловая система, размер кластера, где лежат таблицы |
| Таблица размещения или индекс | Каталог всего содержимого: какие кластеры заняты каким файлом и в каком порядке |
| Записи о файлах | Имя, размер, даты создания и изменения, права доступа, признак «скрытый» |
| Каталоги (папки) | Особые файлы со списком того, что лежит внутри; из них складывается дерево папок |
| Карта свободного места | Помнит, какие кластеры свободны, чтобы быстро найти место для записи |
| Журнал | Черновик, куда система сначала записывает, что собирается изменить; есть не у всех |
В разных файловых системах эти части называются по-разному. В FAT главную роль играет таблица размещения файлов — от неё и название (File Allocation Table). В NTFS это главная таблица файлов (MFT). В ext4 у каждого файла есть индексный дескриптор (inode) — карточка с адресами его блоков.
Как файл записывается и читается
Посмотрим, что происходит, когда вы сохраняете фото весом 3 МБ на диск с кластером 4 КБ.
- Поиск места. Файловая система смотрит в карту свободного места и выбирает около 750 свободных кластеров. Лучше подряд, но если сплошного куска нет — в нескольких местах.
- Журнал. Если система журналируемая, она сначала записывает в журнал: «собираюсь создать такой-то файл в таких-то кластерах».
- Запись данных. Содержимое фото записывается в выбранные кластеры.
- Запись о файле. В таблицу добавляется карточка: имя, размер, дата, список кластеров по порядку. В каталог папки — строка с именем.
- Отметка в журнале. Операция помечается как завершённая.
- Чтение. Когда вы открываете фото, система находит его имя в каталоге, по карточке узнаёт кластеры и читает их по порядку. Для программы файл выглядит сплошным, хотя на диске может быть разбросан.
Если файл лежит кусками в разных местах, это называют фрагментацией. Для жёсткого диска она вредна: головке приходится прыгать по пластине, и чтение замедляется. Поэтому Windows периодически сама дефрагментирует HDD. Для SSD фрагментация почти не важна: у него нет движущихся частей. Как устроен жёсткий диск с пластинами и головками, рассказано в статье об устройстве жёсткого диска.
Удаление. Когда вы удаляете файл и очищаете корзину, система обычно не стирает его содержимое, а лишь убирает карточку и помечает кластеры свободными. Пока на их место не записали новое, файл с жёсткого диска часто можно восстановить. На SSD шансов меньше: система сообщает накопителю, какие блоки больше не нужны, и тот их вскоре очищает.
Виды файловых систем
| Файловая система | Где используется | Предел размера файла | Особенности |
|---|---|---|---|
| FAT32 | Старые флешки, карты памяти, автомагнитолы, телевизоры | 4 ГБ | Понимают почти все устройства, но нет журнала и прав доступа |
| exFAT | Флешки, карты памяти для камер, внешние диски между Windows и Mac | Для дома без ограничений | Преемник FAT32 для съёмных носителей, без журнала |
| NTFS | Системный диск Windows, внешние диски для Windows | Для дома без ограничений | Журнал, права доступа, сжатие и шифрование; Mac её читает, но без дополнительных программ не записывает |
| ext4 | Linux, серверы, внутренняя память многих Android-устройств | Очень большой | Журнал, надёжность, стандарт в мире Linux |
| APFS | Mac, iPhone, iPad с 2017 года | Очень большой | Создана для SSD: мгновенные копии, снимки состояния, встроенное шифрование |
Какую выбрать для флешки. Если флешка нужна для компьютеров с разными системами и для файлов больше 4 ГБ — exFAT. Если её надо вставлять в старый телевизор или магнитолу — FAT32, они часто не понимают ничего другого. Подробнее — в статьях о том, как выбрать флешку и какой нужен внешний жёсткий диск.
Почему флешка не берёт большой файл
Типичная история: на флешке 32 ГБ свободного места, а фильм на 6 ГБ не копируется — система пишет, что файл слишком велик. Дело не в месте, а в файловой системе. Многие флешки, особенно небольшого объёма, продаются отформатированными в FAT32, а в ней размер файла записывается 32-битным числом. Максимум, который туда помещается, — 4 ГБ без одного байта.
Решение — переформатировать флешку в exFAT или NTFS. Форматирование стирает всё содержимое, поэтому нужные файлы сначала копируют в другое место. Если флешка нужна для старого телевизора, который exFAT не читает, остаётся разрезать файл архиватором на части или взять фильм в меньшем размере.
Чем отличаются похожие понятия
Файловая система и диск. Диск — железо, ячейки памяти. Файловая система — порядок, записанный поверх. Один и тот же диск можно отформатировать в разные системы.
Почему диск на 1 ТБ показывает 931 ГБ. Производитель считает терабайт как триллион байт, а Windows делит на 1024 на каждой ступени: гигабайт для неё — 1 073 741 824 байта. Триллион байт в таких единицах — около 931 ГБ. Место никто не украл, просто разные единицы. Ещё немного съедают служебные таблицы самой файловой системы.
Раздел и файловая система. Физический диск можно разделить на несколько разделов — «C:» и «D:». У каждого раздела своя файловая система.
Файловая система и операционная система. Операционная система — Windows, macOS, Linux — управляет всем компьютером и среди прочего умеет работать с определёнными файловыми системами. Какие ещё части есть у компьютера, рассказано в статье об устройстве компьютера.
Почему теряются файлы и на что смотреть
- Флешку выдернули во время записи. Система могла не успеть обновить таблицу: файл повреждён, или компьютер сообщает, что носитель нужно отформатировать. Поэтому съёмные диски извлекают через «Безопасное извлечение».
- Отключили свет. Журналируемые системы восстанавливаются после перезагрузки, но несохранённое в программах пропадает. У FAT32 и exFAT журнала нет, и сбои для них опаснее.
- Диск стал RAW. Windows не узнаёт файловую систему и предлагает отформатировать. Если данные нужны, соглашаться нельзя: форматирование сотрёт таблицы, и восстановить файлы станет сложнее.
- Износ носителя. Появляются нечитаемые участки, файлы открываются с ошибками. Это уже проблема железа, а не файловой системы, и важное надо сразу скопировать.
Главная страховка от всех этих бед одна — копия важных файлов на втором носителе или в облаке.
Вопросы
Что такое форматирование?
Создание на носителе новой, пустой файловой системы. Быстрое форматирование записывает только чистые таблицы, а старые данные физически остаются, пока их не перезапишут. Полное дополнительно проверяет или затирает всю поверхность и идёт намного дольше.
Почему «размер на диске» больше, чем размер файла?
Файл занимает целые кластеры. Если кластер 4 КБ, а файл весит 1 КБ, на диске он всё равно займёт 4 КБ. У папки с тысячами мелких файлов разница становится заметной.
Можно ли сменить файловую систему без потери данных?
Обычно нет: смена почти всегда означает форматирование. Данные сначала копируют на другой носитель, форматируют и копируют обратно. Есть отдельные исключения, но рассчитывать на них с важными файлами не стоит.
Какую файловую систему выбрать для внешнего диска?
Если диск подключают только к Windows — NTFS. Если к Windows и Mac по очереди — exFAT. Если он нужен для резервных копий Mac — APFS.
Автор
разборы по первоисточникам
Пишем по учебникам, исследованиям и клиническим рекомендациям, источники под каждым материалом. Нашли ошибку — напишите на redakciya@kakustroeno.ru, исправим.
Источники
- Таненбаум Э., Бос Х. Современные операционные системы. 4-е изд. СПб.: Питер, 2015.