Восстановление фрагментированных файлов

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

Содержание:

Фрагментация

Предположим, вы сохранили файл на жестком диске. Если ваш жесткий диск пуст или не слишком заполнен, операционная система будет сохранять файлы в непрерывных блоках секторов на диске и хранить их в целостном виде. Но что произойдет, если вы давно пользуетесь жестким диском, добавляя и удаляя данные? Рано или поздно (когда именно – зависит от используемой файловой системы, размера жесткого диска и операционной системы, с которой вы работаете), на вашем жестком диске не останется достаточно длинных фрагментов свободного пространства для размещения больших файлов. Эта довольно растпространенная ситуация, и практически каждая операционная система (в том числе встроенная в портативные устройства) может с этим справиться.

Записывая новые данные, операционная система пытается найти достаточно большой участок свободного места на диске, чтобы сохранить файл в целостном виде. Однако, если данный файл больше любого из доступных свободных фрагментов или если он продолжает увеличиваться в размере (например, вы записываете видео), сохранить его, не разделив на более мелкие фрагменты, просто невозможно. Система фрагментирует (разделяет) файл, и каждый из меньших фрагментов сохраняется на отдельном участке свободного пространства. В результате содержимое файла разбрасывается случайным образом по поверхности диска. Это и называется фрагментацией.

Почему фрагментация – зло?

Известно, что фрагментация тормозит работу с файлами на магнитных жестких дисках: замедляется как чтение, так и запись. Почему «магнитные жесткие диски»? Просто потому, что на производительность хранилища твердотельных (SSD) накопителей фрагментация не оказывает негативного влияния. А также по следующим причинам.

Если вы используете традиционный магнитный жесткий диск, у него внутри есть вращающиеся диски и движущиеся головки. При чтении файла жесткий диск сначала располагает головки над областью на диске, содержащей данные, и ждет, пока они стабилизируются. Только тогда он начнет читать (или писать) информацию. Если файл хранится в едином непрерывном фрагменте, ему нужно будет только один раз переместить головки. Скорость непрерывных операций чтения на современных жестких дисках чрезвычайно высока, как правило, при чтении целостных файлов вы имеете как минимум 70-100 МБ/с.

Если файл имеет более одного фрагмента, жесткому диску придется перемещать головки каждый раз, когда ему нужно будет перейти к следующему фрагменту. Эти операции сильно сижат скорость записи и чтения. В результате сильно фрагментированный файл может читаться со скоростью от 5 до 15 МБ/с на том же диске.

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

Операционные системы. Попробуйте уменьшить фрагментацию

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

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

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

Важно отметить, что вы ничего не должны (да и не можете) делать, чтобы настроить работу этих алгоритмов. Но можете ли вы вообще что-либо сделать для сокращения фрагментации?

Дефрагментация

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

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

Дефрагментация твердотельных SSD и Flash-носителей

Как насчет дефрагментации твердотельных носителей, таких как USB флеш-накопители или SSD-диски? Их дефрагментация в традиционном смысле не имеет смысла. Фактически попытка дефрагментации флеш-памяти путем перераспределения и перезаписи данных будет приводить к дополнительному (и совершенно не нужному) износу носителя информации, сокращая их эффективную продолжительность жизни, при этом не ускоряя работы диска.

Почему у нас есть дефрагментатор SSD в Windows 8 и 8.1? Инструмент просто выдает на накопитель SSD, гарантируя, что любое свободное пространство, доступное на диске, распознается контроллером SSD или освобождается его алгоритмами сбора «мусора».

Фрагментация и восстановление данных

Наконец, поговорим об особенностях восстановления информации с фрагментированных носителей. Как мы выяснили, механические жесткие диски можно сохранить «красивыми и чистыми» с автоматическим дефрагментатором диска, который запускается по установленному графику. Однако для накопителей SSD такая возможность не предусмотрена. Имея по сути меньший размер в сравнении с механическими жесткими дисками той же стоимости, SSD-диски с большей вероятностью будут заполнены. А оставшееся небольшое свободное пространство на диске не оставляет операционной системе другого выхода, кроме применения фрагментации. Именно поэтому все файлы, которые вы записываете на SSD-устройства, чаще всего сильно фрагментированы. Добавьте к этому тот факт, что SSD-диски физически стирают ячейки, содержащие удаленные данные (через «сборку мусора» и TRIM), и получится, что ваши шансы восстановить что-либо с SSD-накопителя близки к нулю.

Почему еще фрагментация усложняет восстановление удаленных файлов? В момент удаления файла система может также стереть записи файловой системы, которые точно указывают на физические кластеры диска, занятые данным файлом. При работе с NTFS, которая используется практически на всех жестких дисках Windows, это, как правило, не проблема, но другие файловые системы, такие как FAT32 (используемая на флеш-накопителях, USB и картах памяти до 32 ГБ), сразу же удаляют эти «указатели» при удалении файла. В результате многие ссылки в файловой системе и повторная сборка файла могут быть недоступны.

О, если файловая система не работает, давайте ! Не тут-то было.

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

При «карвинге» программа для восстановления данных, такая как RS Partition Recovery, считывает информацию с диска – один сектор за другим – ища знакомые подписи, которые могут указывать на файлы определенного формата. Когда он находит нечто похожее на начало файла (например, «DOC»), он анализирует данные, и, если подтверждается, что это действительно начало файла, алгоритм расширяет анализ, чтобы определить размер этого файла. Идея здесь заключается в том, что, зная адрес начала файла и его размер, мы можем просто прочитать информацию с нужных кластеров жесткого диска. И вуаля! У нас есть файл.

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

Если вы используете программу с несколько более интеллектуальным алгоритмом «карвинга», она сможет обойти данную проблему, проанализировав файловую систему и определив на диске нужные области для восстановления. Это значительно увеличивает шансы на успешную «повторную сборку» фрагментированных файлов, но такой режим поддерживается далеко не каждым инструментом. Проще всего узнать программы, поддерживающие этот тип «карвинга», по возможности выбора области восстановления: вся поверхность диска, выделенные области (файлы) или нераспределенные области (свободное место на диске).

С другой стороны, если вы пытаетесь применить «карвинг» на жестком диске, у которого вообще нет файловой системы (например, после форматирования или перераспределения диска), все пространство на диске будет считаться «неразмеченным», и у вас не будет выбора, кроме сканирования всего диска.

Реальные сценарии

На самом деле восстановление удаленных файлов может быть выполнено, даже если они фрагментированы. Если, например, вы пытаетесь восстановить недавно удаленный файл, начнет с анализа файловой системы. Поскольку большинство жестких дисков на компьютерах с ОС Windows используют NTFS, у программы с большой вероятностью определит правильную последовательность записей, относящихся ко всем физическим кластерам на жестком диске, которые раньше принадлежали этому файлу. В результате восстановление фрагментированного файла будет не таким проблематичным, как могло бы быть на FAT32 или при полном отсутствии файловой системы.

Рейтинг
( Пока оценок нет )
Понравилась статья? Поделиться с друзьями:
pohozhie-programmy.ru
Добавить комментарий

;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!: