Как устроены файловые системы Windows и что это значит для восстановления данных
Файловая система — это способ организации и хранения файлов на диске
(жёстком диске, SSD, флешке и т.д.).
Можно представить её как оглавление книги или библиотечный каталог.
Представьте себе огромную библиотеку без каталога. В таком случае мы имеем просто
сваленные в кучу книги на полу. Чтобы найти нужную мы вынуждены перебирать всё подряд.
А как узнать, есть ли вообще эта книга? Никак.
А теперь представьте библиотеку с каталогом: у каждой книги есть номер на корешке.
Каталог говорит: "Книга «Поток мыслей» — на третьей полке, второй ряд".
И вам не составит труда найти её за секунды.
Файловая система — это тот самый каталог. Она знает:
- где лежит каждый файл (на каких секторах диска);
- как он называется;
- сколько он весит;
- когда был создан или изменён;
- кто может его открыть или изменить.
Но помимо определения способа хранения данных на носителе,
каждая файловая система имеет свои собственные методы удаления файлов и форматирования носителя.
Именно поэтому результат восстановления данных очень сильно зависит не от самого носителя,
а от того, какая файловая система использовалась на нём.
Файловые системы Windows
В мире Windows существует несколько файловых систем, и у каждой — своя история,
свои сильные стороны и свои ограничения. Одни созданы для повседневной работы
(NTFS), другие — для больших серверов (ReFS),
третьи — для флешек, которые вы носите в кармане (FAT и exFAT).
Разберём подробнее каждую из них с точки зрения восстановления данных.
FAT / FAT32
Диск в FAT/FAT32 разбит на одинаковые кусочки — кластеры.
Каждый файл занимает один или несколько таких кусочков.
Они не обязаны лежать рядом — начало файлов может лежать в одном месте,
середина – в другом, а конец – в третьем. Такой файл, разбросанный по диску,
называют фрагментированным.
В файловой системе FAT используется таблица FAT — это как карта.
Она показывает, какие кластеры заняты, какие свободны, и в каком порядке кусочки
файла соединены между собой. На всякий случай таблица хранится в двух копиях – в начале и конце диска.
Также в FAT есть такое понятие как корневая папка — это список
всех файлов и папок в корне диска. Для каждого файла там записано: имя, размер,
первый кластер и другая информация.
Что происходит при удалении файла
Когда вы удаляете файл, система:
- помечает запись о нём в корневой папке как удалённую (первая буква имени заменяется);
- в таблице FAT помечает все его кластеры как свободные.
Цепочка кластеров разрушается — система больше не знает, как кусочки файла соединены друг с другом.
Восстановление удалённых файлов
- Если файл не был фрагментирован (лежал подряд), восстановить его легко:
имя, размер и начальный кластер сохранились. Шанс почти 100%.
- Если файл был фрагментирован — сложнее. Мы знаем только начало файла,
а остальные кусочки потеряны. Можно попытаться угадать их расположение, но это не всегда получается.
В ReclaiMe есть алгоритмы для угадывания, но здесь гарантия далека от 100 процентов.
exFAT
exFAT пришёл на смену FAT/FAT32 и во многом похож на них.
У этой файловой системы такая же структура и тот же принцип работы.
Здесь тоже есть таблица, но она используется только для того, чтобы отслеживать,
в каком порядке кусочки фрагментированных файлов соединены друг с другом.
Единственное отличие — в exFAT хранится только одна копия этой таблицы,
а не две, как в FAT32.
NTFS
В NTFS есть главная таблица — MFT (Master File Table). Это что-то вроде
картотеки, где на каждый файл и папку заведена своя карточка. В карточке записано всё:
имя файла, размер, дата создания, где он лежит на диске и другая информация.
В таблице также есть специальная пометка — битовая карта, которая
показывает, какие записи в MFT заняты, а какие свободны.
Маленькие файлы помещаются прямо внутрь карточки в MFT. Это быстро и удобно.
А вот большие файлы хранятся отдельно, а в карточке остаётся только ссылка
на место, где они лежат. То же самое касается и атрибутов больших файлов — они тоже могут храниться снаружи.
Папки в NTFS — это тоже особые файлы. Внутри них хранится список всех файлов
и подпапок, а также ссылки на их карточки в MFT.
Помимо битовой карты внутри MFT, у NTFS есть отдельный файл-карта для всего диска.
Он показывает, какие участки диска заняты данными, а какие свободны.
Что происходит при удалении файла
Когда файл удаляют:
- его карточка в MFT не стирается, а просто помечается как "свободно";
- место на диске, где лежал файл, помечается как свободное в общей карте диска;
- запись о файле исчезает из папки.
При этом сама карточка с именем, размером и адресом файла всё ещё существует.
Восстановление файла
Так как в карточке MFT осталась вся информация о файле (имя, размер и где он лежал),
восстановить его довольно легко. Если данные не перезаписались новыми файлами,
шанс восстановить файл полностью — почти 100%.
Вы можете найти больше информации о восстановлении данны с NTFS на странице -
Как восстановить данные с NTFS.
ReFS
ReFS устроена не так, как другие файловые системы от Windows.
Вместо таблиц она использует структуру, похожую на дерево.
Это дерево помогает быстро находить любые файлы и папки. Почти всё в этой системе —
и сами файлы, и служебная информация — хранится в виде таких деревьев.
Папки и файлы в ReFS — это тоже части дерева. Всё упорядочено и связано между собой.
Главная особенность — "копирование при записи"
Когда вы меняете или удаляете файл, система не трогает старые данные.
Вместо этого она:
- копирует их;
- вносит изменения в копию;
- записывает новую версию в другое место;
- и только после этого заменяет старые данные новыми.
Исходная информация остаётся нетронутой до самого последнего момента.
Восстановление файлов
Раз система не перезаписывает старые данные сразу, а сохраняет их копии,
восстановить файл довольно легко. Пока старые данные не перезаписаны чем-то новым,
шанс восстановить файл полностью — почти 100%.
Вы можете найти больше информации о восстановлении данны с ReFS на странице -
Как восстановить данные с ReFS.