Файлы и диски: как данные живут после выключения
Файловые системы NTFS, ext4, APFS. Фрагментация. Как SSD и HDD хранят данные по-разному. И почему удалённый файл - это не всегда то же самое, что уничтоженный.
Вы создали документ, сохранили и выключили компьютер. Через неделю включили - файл на месте. Это кажется само собой разумеющимся, но за этим стоит целая инфраструктура: правила хранения, адресации, записи и поиска данных. Эти правила называются файловой системой, и у каждой операционной системы она своя. Разберёмся, что происходит с файлом с момента нажатия «Сохранить» - и почему кнопка «Удалить» работает не так, как кажется.📦 Что такое файл на уровне битов
Любой файл - это просто последовательность байт. Документ, фотография, музыкальная композиция - с точки зрения диска это одно и то же: набор нулей и единиц, записанных в определённом порядке. Разница - только в том, как эти байты интерпретируются.Текстовый файл хранит байты, каждый из которых обозначает символ. Например, в кодировке UTF-8 буква «А» занимает один байт со значением 65, а большинство кириллических букв - по два байта. Поэтому текстовый файл на русском языке при прочих равных занимает примерно вдвое больше места, чем такой же по длине английский текст.
Человеческое ухо несовершенно. Оно не замечает тихий звук, если рядом играет громкий - эффект маскировки. Оно хуже слышит очень высокие частоты (выше 16-18 кГц). Оно не различает разницу в пространственном расположении звука на высоких частотах. Кодировщик анализирует сигнал и выбрасывает именно эту «невидимую» часть - то, что ухо всё равно не заметит. Оставшееся кодируется компактно. В итоге файл уменьшается в 8-12 раз при том, что большинство слушателей не слышат разницы с оригиналом.
Именно поэтому MP3 называют форматом с потерями (lossy): выброшенное не восстановить. В отличие от него, FLAC и WAV - форматы без потерь (lossless): данные сжаты, но математически точно восстанавливаются. Файл больше, качество идентично оригиналу.
🗂️ Оглавление диска: как компьютер находит файл
Представьте библиотеку без каталога. Книги есть, но найти нужную - только обходя все полки подряд. Именно так выглядел бы диск без файловой системы: гигабайты данных без какого-либо указателя на то, где что лежит.Файловая система - это как раз такой каталог. Она хранит метаданные: имена файлов, их размеры, даты создания и изменения, права доступа и - главное - где именно на диске записаны данные. Когда вы открываете файл, операционная система сначала заглядывает в этот каталог, находит координаты данных, а потом уже читает сами данные.
Физически диск делится на секторы - минимальные единицы хранения на уровне железа (традиционно 512 байт, современные диски - 4 КБ). Файловая система работает не с секторами напрямую, а объединяет их в кластеры - логические блоки, обычно от 4 до 64 килобайт. Кластер - это программная абстракция: именно ею оперирует файловая система, а не физическими секторами. Даже если файл занимает всего 1 байт, он всё равно займёт целый кластер на диске. Это небольшая трата пространства, зато операции с данными становятся проще и быстрее.
🏙️ Три главные файловые системы
Разные операционные системы придумали разные способы организовывать данные на диске. Три наиболее распространённых - NTFS, ext4 и APFS.| Файловая система | Где используется | Год появления | Ключевые особенности |
|---|---|---|---|
| NTFS | Windows | 1993 | Журналирование, права доступа, файлы до 16 ТБ, шифрование EFS |
| ext4 | Linux | 2008 | Журналирование, инициализация за секунды, экстенты, отложенное выделение |
| APFS | macOS, iOS | 2017 | Снапшоты, Copy-on-Write, нативная поддержка SSD, шифрование на уровне ФС |
| FAT32 | USB-флешки, SD-карты | 1996 | Понимают все ОС, максимальный файл - 4 ГБ, нет журналирования |
| exFAT | Большие флешки, карты памяти | 2006 | Как FAT32, но без ограничения в 4 ГБ на файл. Понимают Windows, macOS, Linux |
NTFS: рабочая лошадка Windows
NTFS (New Technology File System) появилась в 1993 году вместе с Windows NT - корпоративной линейкой Microsoft. По тем временам это была революция: предыдущая FAT не умела ни разграничивать права доступа, ни восстанавливаться после сбоев.
Главная идея NTFS - журнал транзакций. Прежде чем что-то записать на диск, система фиксирует намерение в специальном журнале. Если в середине операции выключить питание, после перезагрузки NTFS посмотрит в журнал и либо завершит операцию, либо откатит её целиком. Файлы не «зависают» в полузаписанном состоянии.
В основе NTFS лежит структура, которая называется MFT - Master File Table. Это большая таблица, где каждому файлу и папке соответствует запись с именем, атрибутами и адресами кластеров, где хранятся данные. MFT - сердце файловой системы. Если она повреждена, Windows не сможет найти ни один файл, хотя сами данные останутся нетронутыми.
ext4: надёжная основа Linux
ext4 (fourth extended filesystem) - это результат десятилетий эволюции файловой системы Linux. Ext2, ext3, ext4 - каждая версия добавляла что-то важное. Ext4 получила экстенты вместо списков кластеров: вместо того чтобы хранить координату каждого кластера большого файла по отдельности, система хранит просто начало и длину непрерывного участка диска. Для больших файлов это радикально уменьшает размер метаданных.
Ещё одна особенность ext4 - отложенное выделение: система не сразу резервирует место на диске при записи, а ждёт, пока данные осядут в памяти, и потом записывает их целиком, в одном месте. Это снижает фрагментацию и ускоряет работу.
Copy-on-Write и снапшоты
Современные файловые системы - и APFS (macOS), и Btrfs, и ZFS (Linux/серверы) - используют принцип Copy-on-Write и снапшоты. Снапшот - моментальный «слепок» состояния всего диска: если после снапшота вы удалили важный файл, можно вернуться назад без всякого восстановления. Copy-on-Write означает, что при изменении файла система не перезаписывает старые данные, а записывает новую версию в другое место и обновляет указатель. При сбое питания старая версия файла всегда остаётся целой.🧩 Фрагментация: когда файл разбросан по диску
Файловая система старается записывать файл в одном непрерывном участке диска. Но в реальной жизни это не всегда получается. Представьте: диск наполовину заполнен, вы удаляете несколько старых файлов и на их месте появляются «дырки» разного размера. Теперь вы создаёте новый большой файл. Он не влезает ни в одну «дырку» целиком - и система вынуждена разрезать его на куски и разложить по разным свободным участкам. Это и есть фрагментация.
Чем больше фрагментов, тем медленнее работает диск. Чтение фрагментированного файла означает, что диску нужно найти все кусочки, собрать их в правильном порядке и передать данные. На HDD это физически медленно: магнитная головка буквально перепрыгивает по разным участкам пластины. Именно поэтому старые диски периодически «дефрагментировали» - специальная программа переупаковывала данные, собирая каждый файл в непрерывный блок.
С SSD история другая. Флеш-памяти всё равно, в каком порядке читать блоки - нет ни головки, ни вращающейся пластины, любой адрес доступен за одинаковое время. Поэтому фрагментация на SSD не влияет на скорость чтения. Более того, дефрагментация SSD вредна: лишние циклы записи изнашивают ячейки памяти. Современные версии Windows это знают и автоматически отключают дефрагментацию для твердотельных накопителей.
💽 HDD против SSD: разная физика хранения
Жёсткий диск (HDD) и твердотельный накопитель (SSD) хранят данные принципиально разными способами. Это влияет не только на скорость, но и на поведение при записи, удалении и износе.Как хранит HDD
Внутри HDD - стеклянные или алюминиевые пластины, покрытые магнитным слоем. Данные записываются как крошечные намагниченные участки: один полюс - это «1», другой - «0». Над пластинами парит на воздушной подушке магнитная головка - она же читает, она же пишет.
Запись и чтение требуют, чтобы головка физически переместилась к нужному месту на пластине. Именно поэтому HDD так чувствителен к фрагментации и так не любит случайный доступ. Последовательное чтение большого файла - пластина крутится, головка стоит почти на месте, всё летит. Случайное чтение тысячи мелких файлов - головка постоянно прыгает, скорость падает в разы.
Как хранит SSD
В SSD нет ничего движущегося. Данные хранятся в ячейках NAND-флеш-памяти: в каждую ячейку «закачивают» электрический заряд, и его уровень кодирует биты. Ячейка с зарядом - «1», без заряда - «0» (грубо упрощая).
Ячейки объединяются в страницы (обычно 4-16 КБ), страницы - в блоки (обычно 256-512 страниц). И вот здесь скрывается важнейшее ограничение: записать данные можно в страницу, но стереть - только целым блоком. Перезаписать отдельную страницу напрямую нельзя - нужно сначала прочитать весь блок, стереть его целиком и записать заново с изменениями. Эта операция называется write amplification («усиление записи»), и именно из-за неё SSD при интенсивной записи работает медленнее, чем при чтении.
Чтобы справиться с этим ограничением, SSD содержит собственный микропроцессор - контроллер. Он занимается wear leveling (равномерным распределением записей по всем ячейкам, чтобы они изнашивались равномерно), сборкой мусора (объединением полуживых блоков в свободные) и обработкой команды TRIM.
Команда TRIM: как SSD узнаёт, что файл удалён
Вот тонкий момент: когда вы удаляете файл на SSD, операционная система убирает запись о нём из файловой таблицы, но блоки с данными физически остаются нетронутыми. SSD не знает, что эти блоки уже свободны - ему никто не сообщил.
Это проблема: при следующей записи контроллер не может просто записать данные поверх «старых» - нужен лишний цикл стирания. Это замедляет диск по мере заполнения. Именно для этого существует команда TRIM: операционная система периодически сообщает SSD список блоков, которые больше не нужны. Контроллер заранее их стирает в фоновом режиме, и следующая запись происходит в уже чистые блоки без задержки.
TRIM поддерживается в Windows, macOS и Linux. В современных системах он включён по умолчанию для всех подключённых SSD. На старых машинах или нестандартных конфигурациях стоит проверить, активен ли он - без TRIM SSD со временем заметно замедляется.
| Параметр | HDD | SSD SATA | SSD NVMe (PCIe) |
|---|---|---|---|
| Физика хранения | Магнитные домены на пластинах | Электрический заряд в ячейках | Электрический заряд в ячейках |
| Форм-фактор | 2,5″ или 3,5″ коробка | 2,5″ коробка или M.2 | Планка M.2 (как жвачка) |
| Скорость чтения (последоват.) | 100-200 МБ/с | до 560 МБ/с | 3 000-14 000 МБ/с |
| Случайный доступ | Медленный (движение головки) | Быстрый (нет механики) | Очень быстрый |
| Фрагментация | Сильно влияет на скорость | Не влияет на скорость | Не влияет на скорость |
| Износ | Механический (подшипники, головки) | Циклы записи ячеек (50-3000 циклов) | Циклы записи ячеек (50-3000 циклов) |
| Поведение при удалении | Данные остаются, убирается указатель | Данные остаются до TRIM/сборки мусора | |
| Звук | Жужжит, стрекочет | Тихий | |
| Чувствительность к ударам | Высокая (движущиеся части) | Низкая |
🗑️ Почему удалённый файл можно восстановить
Когда вы отправляете файл в корзину и затем очищаете её, большинство людей уверены: файл уничтожен. На самом деле - нет.
На уровне файловой системы происходит следующее. Запись о файле в MFT (на NTFS) или в inode-таблице (на Linux) помечается как «свободная». Кластеры, где лежат данные, отмечаются как доступные для повторного использования. Но сами данные никуда не исчезают. Они физически остаются на диске - просто система считает, что место свободно, и при необходимости запишет туда что-нибудь новое.
До тех пор пока новые данные не перезапишут старое место - файл существует. Программы восстановления данных (R-Studio, Recuva, PhotoRec) именно этим и занимаются: сканируют диск в поисках «осиротевших» данных, у которых есть тело, но нет записи в оглавлении. Чем больше нового было записано после удаления - тем меньше шансов на восстановление.
Безопасное удаление: когда это важно
Если вы хотите, чтобы файл действительно нельзя было восстановить, нужно явно перезаписать его место на диске. На HDD это делает утилита Cipher с ключом /w на Windows, команда diskutil secureErase на macOS, утилита shred на Linux.
Но с SSD ситуация принципиально другая. Из-за wear leveling контроллер сам решает, в какие физические ячейки записывать данные - и даже если вы «перезаписываете» файл, контроллер запишет новые данные в другое место, а старые ячейки оставит нетронутыми в резервной зоне. Утилиты перезаписи на SSD фактически бесполезны: они пишут поверх свежих ячеек, а оригинал остаётся. Единственный надёжный способ уничтожить данные на SSD - включить аппаратное шифрование при первичной настройке диска (BitLocker, FileVault) и уничтожить ключ. Все данные мгновенно становятся нечитаемым шумом без какой-либо перезаписи.
📸 Снапшоты: история версий файловой системы
Современные файловые системы умеют делать снапшоты - моментальные «фотографии» всего состояния диска на конкретный момент. Это работает благодаря Copy-on-Write: система фиксирует все текущие указатели, и при изменении файлов старые блоки не трогаются, а новые пишутся рядом. Снапшот «видит» состояние на момент создания, хотя физически данные продолжают меняться.
На практике это означает: если вы случайно удалили файл час назад, а снапшот был сделан два часа назад - файл можно вернуть мгновенно, без всякого восстановления. Time Machine на macOS делает именно это: снапшоты каждый час. Серверные файловые системы ZFS и Btrfs предлагают то же самое для Linux - администратор может «откатить» весь диск на позавчерашнее состояние за секунды.
🔧 Практика: что стоит знать о своём диске
Большинство проблем с дисками заметны заранее - если знать, на что смотреть.
Заполненность диска влияет на скорость. Когда HDD заполнен более чем на 85-90%, свободное место разбросано мелкими фрагментами по всему диску, и новые файлы неизбежно фрагментируются. SSD при заполнении более 90% теряет скорость записи из-за нехватки свободных блоков для сборки мусора. Держите хотя бы 10-15% диска свободными. S.M.A.R.T. - встроенная диагностика дисков. Каждый HDD и SSD ведёт журнал собственного здоровья: температура, количество ошибок чтения, количество переназначенных секторов (у HDD), использованный ресурс ячеек (у SSD). Программы CrystalDiskInfo (Windows) или smartmontools (Linux) читают эти данные. Если появляются «переназначенные сектора» на HDD - это ранний признак неизбежного отказа. Внезапные тормоза Windows могут быть признаком умирающего HDD. Если система периодически «подвисает» на несколько секунд при обращении к файлам - диск, скорее всего, читает сектора с трудом и повторяет попытки. Это называется pending sectors. Данные ещё читаются, но диск уже «думает» о замене проблемных секторов. Самое время сделать резервную копию.| Симптом | Вероятная причина | Что делать |
|---|---|---|
| Система грузится медленно, файлы открываются с задержкой | Фрагментация HDD или заполненный SSD | HDD - дефрагментация; SSD - освободить место |
| Периодические «подвисания» по несколько секунд | Проблемные секторы на HDD | Срочно резервная копия, диагностика S.M.A.R.T. |
| SSD работает медленно, хотя раньше был быстрый | TRIM не работает или диск переполнен | Проверить TRIM, освободить место, прошить прошивку |
| Файлы повреждаются или исчезают сами по себе | Аппаратный отказ диска, ошибки ФС | Немедленная диагностика, резервная копия |
| «Шорох», скрежет или щелчки у HDD | Механическая проблема головки или пластины | Выключить, резервная копия, замена |
Итог: файл - это адрес, а не данные
Главный вывод, который стоит унести из этой статьи: файл - это не сами данные, а запись о том, где данные находятся. Когда вы «удаляете» файл, вы удаляете запись. Когда копируете на другой диск - копируете данные и создаёте новую запись. Когда теряете доступ из-за повреждения файловой системы - данные часто целы, просто «путеводитель» к ним сломан.Отсюда следует кое-что практичное. Потеряли важные фото - не записывайте на этот диск ничего нового и сразу несите к специалисту: шансы восстановить данные резко падают с каждым записанным мегабайтом. Хотите продать ноутбук - простого форматирования недостаточно, нужно либо шифрование, либо специальное стирание. А резервные копии важны не только на случай вирусов - диски умирают без предупреждения, и лучший момент для резервной копии всегда был «вчера».
В следующей статье мы поговорим о том, что происходит, когда на компьютере стоят Windows, Linux, macOS или Android - как одни и те же идеи воплощены по-разному и почему Android - это, по сути, Linux.
© 2008-2026 ANY.BY - ремонт компьютеров и ноутбуков в Барановичах. Использование материалов сайта возможно с письменного разрешения.
Нужна помощь с техникой? Привозите - диагностика при заказе ремонта бесплатна. Контакты и запись.