Как восстановить файлы на ssd
О восстановлении удаленных файлов/разделов с SSD накопителей с поддержкой TRIM
На данный момент доступно большое количество программ для восстановления случано удаленных файлов и разделов на жестком диске или USB накопителе. Все эти программы основываются на том, что при удалении файла с файловой системы, его данные и метаданные продолжают хранится на физическом носителе, пока не будут перезаписаны новыми файлами. Программы восстановления удаленных файлов позволяют просканировать диск и найти удаленные файлы по сигнатурам на диске и при анализе неиспользуемых блоков диска. Однако классический подход восстановления файлов не работает с устройствами SSD (Solid State Drive) с поддержкой функции TRIM. Давайте разберемся почему.
Удаление файлов с SSD накопителя и команда TRIM
Процесс удаления файлов на SSD кардинально отличается от процесса удаления файлов на классическом жестком диске. При удалении файла ОС посылает на SSD устройство команду интерфейса ATA — TRIM, которая сообщает что эти данные не нужны. Устройство SSD помечает эти ячейки на удаление и в фоновом режиме обнуляет их (фоновый процесс сбора мусора). Это позволяет более быстро сохранять данные в свободные ячейки SSD и увеличивает срок службы устройства. Таким образом команда TRIM заставляет накопитель физически очищать неиспользуемые блоки данных.
В результате любая программа восстановления файлов видит в незанятых ячейках SSD только нули.
Получается, что если ваш SSD диск подключен к компьютеру через SATA интерфейс, то практически невозможно восстановить с него удаленные данные. Это относится и к SSD дискам с интерфейсом NVMe. Для таких устройств есть аналог команды TRIM, которая называется – Deallocate (является аналогом TRIM для ATA, поддерживается в Windows 8 и выше).
Как Windows определяет SSD диски?
Windows по-умолчанию включает поддержку команду TRIM для SSD дисков, которые подключены через интерфейс ATA/IDE/SATA/M.2/PCI Express (но не USB!) в режиме AHCI (бывает, что внутренние SSD диски некорректно отображаются как съемные устройства). Это необходимо для оптимизации работы твердотельных накопителей. Кроме того, TRIM используется только для файловых систем NTFS и REFS. При выполнении этих условий при удалении файла автоматически выполняется команда TRIM и фоновый процесс SSD практически сразу очищает ячейки.
Таким образом вы сможете восстановить удаленные файлы и разделы с SSD накопителя если:
Пример восстановления удаленных файлов с SSD накопителя
Рассмотрим особенности восстановления данных на SSD накопителе с помощью программы EaseUS Data Recovery Wizard Free. Бесплатная версия программы позволяет восстановить до 500 Мб удаленных файлов (либо до 2 Гб, если вы поделились ссылкой на программу в Facebook или Twitter). Но вы можете воспользоваться любой аналогичной программой для восстановления удаленных файлов или даже встроенной утилитой Windows File Recovery.
Итак, у меня к компьютеру подключен SSD диск. Проверим, что один из дисков (21 Гб), определяется как SSD с помощью команды PowerShell Get-PhysicalDisk:
Get-PhysicalDisk | Select Number, PhysicalLocation, MediaType, Size
Проверим, включена ли для него функция Trim:
fsutil behavior query DisableDeleteNotify
Следующая строка означает, что TRIM включен:
Попробую удалить с SSD накопителя один файл и восстановить его с помощью EaseUS Data Recovery Wizard:
Теперь попробуем отключить поддержку TRIM в Windows с помощью команды:
fsutil behavior set DisableDeleteNotify 1
Если TRIM отключен успешно, вы увидите сообщение “NTFS DisableDeleteNotify = 1 (Enabled)”.
Можно отключить TRIM только для определенной файловой системы. Так:
fsutil behavior set disabledeletenotify NTFS 1
fsutil behavior set disabledeletenotify ReFS 1
Я удаляю еще один файл с SSD накопителя и запускаю полное сканирование диска утилитой восстановления. Программа моментально находит удаленный файл и предложит восстановить его.
Выберите файл, который нужно восстановить и нажмите кнопку Recover. При восстановлении файла желательно указать другой диск, чтобы случайно не перезатереть метеданные на диске.
fsutil behavior set DisableDeleteNotify 0
Итак, мы убедилесь что при включенном TRIM нельзя восстановить удаленный файл с SSD диска. Не помогает даже поиск по файловым сигнатурам.
Таким образом, чтобы команда TRIM не применялась к SSD диску, вы можете:
Как восстанавливают данные с неисправных SSD
Приветствую всех Хабровчан!
Предлагаю сегодня немного поговорить о восстановлении информации с неисправных SSD накопителей. Но для начала, прежде, чем мы познакомимся с технологией спасения драгоценных кило- мега- и гигабайт, прошу обратить внимание на приведенную диаграмму. На ней мы попытались расположить наиболее популярные модели SSD согласно вероятности успешного восстановления данных с них.
Как нетрудно догадаться, с накопителями, расположенными в зеленой зоне, обычно возникает меньше всего проблем (при условии, что инженер обладает необходимым инструментарием, разумеется). А накопители из красной зоны способны доставить немало страданий как их владельцам, так и инженерам-восстановителям. В случае выхода из строя подобных SSD шансы вернуть назад потерянные данные на сегодняшний день слишком малы. Если ваш SSD расположен в красной зоне или рядом с ней, то я бы советовал делать backup перед каждой чисткой зубов.
Те, кто уже сегодня сделал backup, добро пожаловать под кат.
Тут следует сделать небольшую оговорку. Некоторые компании умеют чуть больше, некоторые чуть меньше. Результаты, проиллюстрированные на диаграмме, представляют из себя нечто среднее по индустрии по состоянию на 2015 год.
На сегодняшний день распространены два подхода к восстановлению данных с неисправных SSD.
Подход №1. Вычитывание дампов NAND flash микросхем
Решение задачи что называется в лоб. Логика проста. Пользовательские данные хранятся на микросхемах NAND flash памяти. Накопитель неисправен, но что, если сами микросхемы в порядке? В абсолютном большинстве случаев так и есть, микросхемы работоспособны. Часть данных, хранящихся на них, может быть повреждена, но сами микросхемы функционируют нормально. Тогда можно отпаять каждую микросхему от печатной платы накопителя и считать ее содержимое с помощью программатора. А после попробовать собрать логический образ накопителя из полученных файлов. Этот подход в настоящее время используется при восстановлении данных с usb flash накопителей и различных карт памяти. Сразу скажу, что работа эта не из благодарных.
Трудности могут возникнуть еще на этапе считывания. Микросхемы NAND flash памяти выпускаются в разных корпусах, и для конкретной микросхемы в комплекте с программатором может не оказаться нужного адаптера. Для таких случаев в комплекте обычно есть некоторый универсальный адаптер под распайку. Инженер вынужден, используя тонкие проводки и паяльник, соединить нужные ножки микросхемы с соответствующими контактами адаптера. Задача вполне решаемая, но требует прямых рук, определенных навыков и времени. Сам то я с паяльником знаком не близко, поэтому такая работа вызывает уважение.
Не будем также забывать, что в SSD таких микросхем будет скорее всего 8 или 16, и каждую придется распаять и считать. Да и сам процесс вычитывания микросхемы тоже быстрым не назовешь.
Ну а дальше остается только из полученных дампов собрать образ и дело в шляпе! Но тут то и начинается самое интересное. Не буду углубляться в подробности, опишу только основные задачи, которые предстоит решить инженеру и используемым им ПО.
Битовые ошибки
Природа микросхем NAND flash памяти такова, что в сохраненных данных непременно появляются ошибки. Отдельные ячейки памяти начинают читаться неверно, причем стабильно неверно. И это считается нормой ровно до тех пор пока количество ошибок внутри определенного диапазона не превысит некоторый порог. Для борьбы с битовыми ошибками используются коды коррекции (ECC). При сохранении пользовательских данных, накопитель предварительно делит блок данных на несколько диапазонов и каждому диапазону добавляет некоторые избыточные данные, которые позволяют обнаружить и исправить возможные ошибки. Количество ошибок, которые могут быть исправлены определяется мощностью кода.
Чем выше мощность кода, тем длиннее последовательность приписываемых байт. Процесс вычисления и добавления упомянутой последовательности называется кодированием, а исправления битовых ошибок — декодированием. Схемы кодирования и декодирования обычно аппаратно реализованы внутри контроллера накопителя. При выполнении команды чтения накопитель наряду с прочими операциями выполняет также исправление битовых ошибок. С полученными файлами дампов необходимо провести ту же процедуру декодирования. Для этого нужно определить параметры используемого кода.
Формат страниц микросхем памяти
Единицей чтения и записи у микросхем памяти выступает единица, именуемая страницей. Для современных микросхем размер страницы равен приблизительно 8 КБ или 4 КБ. Причем это значение не является степенью двойки, а немного больше. Т. е. внутри страницы можно разместить 4 или 8 КБ пользовательских данных и еще что-нибудь. Эту избыточную часть накопители используют для хранения кодов коррекции и некоторых служебных данных. Обычно страница поделена на несколько диапазонов. Каждый диапазон состоит из области пользовательских данных (UA) и области служебных данных (SA). Последняя как раз и хранит внутри себя коды коррекции, которые защищают данный диапазон.
Все страницы имеют один и тот же формат, и для успешного восстановления необходимо определить каким диапазонам байт соответствуют пользовательские данные, а каким служебные.
Скремблирование VS Шифрование
Большинство современных SSD не хранят пользовательские данные в открытом виде, вместо этого они предварительно скремблируются или зашифровываются. Разница между этими двумя понятиями достаточно условна. Скремблирование — это некоторое обратимое преобразование. Основная задача этого преобразования получить из исходных данных нечто похожее на случайную последовательность бит. Данное преобразование не является криптостойким. Знание алгоритма преобразования позволяет без особого труда получить исходные данные. В случае с шифрованием знание одного лишь алгоритма ничего не дает. Необходимо также знать и ключ для расшифровки. Поэтому, если в накопителе используется аппаратное шифрование данных, и вам неизвестны параметры шифрования, то из считанных дампов данные восстановить не получится. Лучше даже не приступать к этой задаче. Благо большинство производителей честно признаются в том, что используют шифрование.
Более того, маркетологи сумели сделать из этой преступной (с точки зрения восстановления данных) функциональности опцию, которая якобы дает конкурентное преимущество над другими накопителями. И ладно если бы были отдельные модели для параноиков, в которых была бы качественно сделана защита от несанкционированного доступа. Но сейчас, видимо, настало время, когда отсутствие шифрования считается плохим тоном.
В случае со скремблированием дела обстоят не так печально. В накопителях оно реализовано как побитовая операция XOR (сложение по модулю 2, исключающее «ИЛИ»), выполненная над исходными данными и некоторой сгенерированной последовательностью бит (XOR паттерном).
Часто эту операцию обозначают символом ⊕.
(X ⊕ Key) ⊕ Key = X ⊕ (Key ⊕ Key) = X ⊕ 0 = X
Остается определить XOR паттерн. В самом простом случае для всех страниц применяется один и тот же XOR паттерн. Иногда накопитель генерирует длинный паттерн, скажем длиной в 256 страниц, тогда каждая из первых 256 страниц микросхемы складывается со своим куском паттерна, и так повторяется для следующих групп из 256 страниц. Но бывают случаи и посложнее. Когда для каждой страницы индивидуально генерируется свой паттерн на основании какого-то закона. В таких случаях помимо прочего нужно еще попытаться разгадать этот закон, что уже, мягко скажем, непросто.
Сборка образа
После выполнения всех предварительных преобразований (исправление битовых ошибок, устранение скремблирования, определение формата страницы и, возможно, некоторых других) заключительным этапом идет сборка образа. В силу того, что количество циклов перезаписи для ячеек микросхемы ограничено, накопители вынуждены использовать механизмы выравнивания износа, чтобы продлить время жизни микросхем. Следствием этого является то, что пользовательские данные сохранены не последовательно, а хаотично разбросаны внутри микросхем. Очевидно, что накопителю необходимо как-то запоминать куда он сохранил текущий блок данных. Для этого он использует специальные таблицы и списки, которые так же хранит на микросхемах памяти. Множество этих структур принято называть транслятором. Вернее будет сказать, что транслятор это некая абстракция, которая отвечает за преобразования логических адресов (номера секторов) в физические (микросхема и страница).
Соответственно, чтобы собрать логический образ накопителя, необходимо разобраться с форматом и назначением всех структур транслятора, а также знать как их найти. Некоторые из структур являются достаточно объемными, поэтому накопитель не хранит ее целиком в одном месте, а она также оказывается кусками разбросана по разным страницам. В таких случаях должна быть структура, описывающая это распределение. Получается некий транслятор для транслятора. На этом обычно останавливаются, но можно пойти еще дальше.
Данный подход к восстановлению данных заставляет полностью эмулировать работу накопителя на низком уровне. Отсюда вытекают плюсы и минусы этого подхода.
Подход №2. Технологический режим
Очень часто разработчики SSD помимо реализации работы накопителя согласно спецификации наделяют его также дополнительной функциональностью, которая позволяет протестировать работу отдельных подсистем накопителя и изменить ряд конфигурационных параметров. Команды накопителю, позволяющие это сделать, принято называть технологическими. Они также оказываются весьма полезными при работе с неисправными накопителями, повреждения которых носят программный характер.
Как уже было сказано выше, со временем в микросхемах памяти неизбежно появляются битовые ошибки. Так вот, согласно статистике, причиной выхода из строя SSD в большинстве случаев является появление некорректируемых битовых ошибок в служебных структурах. То есть на физическом уровне все элементы работают нормально. Но SSD не может корректно инициализироваться из-за того, что одна из служебных структур повреждена. Такая ситуация разными моделями SSD обрабатывается по-разному. Некоторые SSD переходят в аварийный режим работы, в котором функциональность накопителя значительно урезана, в частности, на любые команды чтения или записи накопитель возвращает ошибку. Часто при этом, чтобы как-то просигнализировать о поломке, накопитель меняет некоторые свои паспортные данные. Например, Intel 320 series вместо своего серийного номера возвращает строку с кодом ошибки. Наиболее часто встречаются неисправности из серии «BAD_CTX %код ошибки%”.
В таких ситуациях очень кстати оказывается знание технологических команд. С помощью них можно проанализировать все служебные структуры, также почитать внутренние логи накопителя и попытаться выяснить, что же все таки пошло не так в процессе инициализации. Собственно скорее всего для этого и были добавлены техно-команды, чтобы производитель имел возможность выяснить причину выхода из строя своих накопителей и попытаться что-то улучшить в их работе. Определив причину неисправности, можно попытаться ее устранить и вновь вернуть накопитель к жизни. Но все это требует по-настоящему глубинных знаний об архитектуре устройства. Под архитектурой здесь я в большей степени понимаю микропрограмму накопителя и служебные данные, которыми она оперирует. Подобным уровнем знаний обладают разве что сами разработчики. Поэтому, если Вы к ним не относитесь, то Вы либо должны обладать исчерпывающей документацией на накопитель, либо Вам придется потратить изрядное количество часов на изучение данной модели. Понятное дело разработчики не спешат делиться своими наработками и в свободном доступе таких документаций нет. Говоря откровенно, я вообще сомневаюсь, что такие документации существуют.
В настоящее время производителей SSD слишком много, а новые модели появляются слишком часто, и на детальное изучение не остается времени. Поэтому практикуется немного другой подход.
Среди технологических команд очень полезными оказываются команды, позволяющие читать страницы микросхем памяти. Таким образом можно считать целиком дампы через SATA интерфейс накопителя, не вскрывая корпус SSD. Сам накопитель в таком случае выступает в роли программатора микросхем NAND flash памяти. В принципе, подобные действия даже не должны нарушать условий гарантии на накопитель.
Часто обработчики техно-команд чтения микросхем памяти реализованы так, что есть возможность оставить исправление битовых ошибок, а иногда и расшифровку данных, на стороне накопителя. Что, в свою очередь, значительно облегчает процесс восстановления данных. По сути остается только разобраться с механизмами трансляции и, можно сказать, решение готово.
На словах то оно, кончено, все просто звучит. Но на разработку подобных решений уходит немало человеко-часов. И в результате мы добавляем в поддержку всего одну модель SSD.
Но зато сам процесс восстановления данных упрощается колоссально! Имея подобную утилиту, остается только подключить накопитель к компьютеру и запустить эту утилиту, которая с помощью техно-команд и анализа служебных структур построит логический образ. Дальше остается только анализ разделов и файловых систем. Что тоже может быть непростой задачей. Но в большинстве случаев построенный образ без особого труда позволяет восстановить большую часть пользовательских данных.
Заключение
На войне все средства хороши. Но лично я отдаю предпочтение второму подходу как более тонкому инструменту. И наиболее перспективному, поскольку все более широкое распространение аппаратного шифрования исключает возможность восстановления информации с „сырых“ дампов микросхем. Однако и у первого подхода есть своя ниша задач. По большому счету это те задачи, которые нельзя решить с использованием технологических функций накопителя. В первую очередь это накопители с аппаратной неисправностью, и при этом нет возможности определить поврежденный элемент, или характер повреждений исключает ремонт. И браться за дело рекомендуется только в том случае, если уже есть успешный опыт восстановления информации с подобной модели SSD, или есть информация о решении. Необходимо знать, с чем придется столкнуться: используется ли шифрование или скремблирование, какой XOR паттерн вероятнее всего используется, известен ли формат транслятора (есть ли сборщик образа). В противном случае шансы на успех невелики, по крайней мере оперативно решить задачу не получится. К тому же нагрев негативно влияет на изношенные микросхемы памяти, в результате чего могут появиться дополнительные битовые ошибки, которые, в свою очередь, могут привнести свою ложку дегтя в последующем.
На этом пока все. Берегите себя! И да хранит ваши данные backup!
Инструкция по восстановлению данных с SSD диска
Несмотря на существенное отличие накопителей рассматриваемого типа от обычных жестких дисков и носителей информации иного типа, приложения для реанимации данных могут использоваться те же самые. Если же была повреждена аппаратная часть, то для реанимации потребуется специализированное оборудование и утилиты.
Неисправности, препятствующие чтению данных
На сегодняшний день все неисправности, не позволяющие прочитать присутствующие на носителе рассматриваемого типа данные, можно условно разделить на несколько основных категорий:
К повреждениям физического характера относится выход из строя основных компонентов:
Повреждения подобного рода могут быть нанесены в результате как механического, так и электрического воздействия. В таком случае ремонт для восстановления доступа к расположенной на накопителе информации достаточно сложен и требует наличия специализированных навыков. Порой при уничтожении контролера получить доступ к содержимому становится попросту невозможно.
Логическое повреждение носителя (его файловой системы) может являться следствием ошибочного стирания информации, форматирования. Также возникновение подобного рода ситуаций случается из-за неправильной работы каких-либо специализированных приложений. Разрешается подобного рода ситуация достаточно просто – при помощи специализированных утилит.
На дисковых накопителях рассматриваемого типа присутствуют разделы, используемые контролером для выполнения своих функций. Если по каким-то причинам они повреждены и стали неработоспособны, то для их реанимации необходимо передать устройство в специализированный авторизованный сервисный центр. Подобные повреждения не так сложны, как выход из строя контролера, но так же опасны.
Восстановление в случае повреждения контролера
Процесс рассматриваемого типа всегда состоит из двух основных этапов:
Разборка устройства и последующие действия
Разборка устройства рассматриваемого типа осуществляется в несколько этапов:
После вскрытия необходимо при помощи специализированного фена для пайки выпаять все микросхемы. Далее следует воспользоваться устройством, позволяющим осуществлять чтение непосредственно с этих электронных компонентов — NANDFlashReader. Данный программатор обычно снабжается специальными утилитами для осуществления чтения.
Чтение данных с микросхемы
Для работы с данными на выпаянной из печатной платы микросхеме можно использовать следующие приложения:
Для восстановления данных при помощи PC-3000 Flash необходимо выполнить следующие действия:
В некоторых особенно сложных случаях применение функции автоанализа попросту невозможно. В таких ситуациях лучше всего обратиться к профессионалам, специализирующимся на проблемах подобного типа. Так как в противном случае велика вероятность повреждения содержимого микросхемы без последующей возможности получения доступа к данным.
Ещё одно довольно мощное приложения для работы с микросхемами памяти дисков SSD– FlashExtractor. Изначально оно разрабатывалось для работы со схемами обычных флэш-карт, но впоследствии стало применяться для работы с компонентами рассматриваемых дисков.
Процесс восстановления данных с SSD диска:
После завершения процесса все подлежащие восстановлению данные будут скопированы в соответствующую директорию. После чего пользователь может использовать их по собственному усмотрению.
При исправном контролере
Гораздо проще осуществляется реанимация данных, когда контролер полностью исправен, а необходимое содержимое было потеряно вследствие ошибочного стирания или же форматирования. В подобных ситуациях отсутствует необходимость осуществлять разборку самого диска, а также его пайки. Таким образом, необходимое количество времени и сложность работы существенно уменьшаются.
Для реанимации данных в рассматриваемом случае отлично подойдут следующие приложения:
Все обозначенные выше приложения дают довольно высокий процент успеха. Их использование позволит восстановить данные даже в случае форматирования устройства.
Чтобы запустить процесс восстановления приложением DMDE, необходимо сделать следующее:
Предварительно необходимо в настройках программы посмотреть место назначения, куда осуществляется сохранение всей информации. Важно убедиться, что количество свободного места в разделе, выбранном в качестве места назначения, достаточно для копирования всего необходимого объема.
HetmanPartitionRecovery
Приложение под названием HetmanPartitionRecovery также отлично подходит для реанимации данных на SSD-диске.
Чтобы осуществить данный процесс, требуется сделать следующее:
После завершения сканирования все обнаруженные файлы будут обозначены в виде ярлыков или таблицей в правой части экрана. Для их восстановления следует выделить необходимые объекты, после чего нажать открыть контекстное меню правой кнопкой мыши и выбрать второй пункт сверху «Восстановить». Процесс реанимации данных пройдет в автоматическом режиме.
AdvancedDiskRecovery
Интерфейс AdvancedDiskRecovery мало чем отличается от рабочей области аналогичных утилит. После запуска пользователь увидит на экране стандартную рабочую область.
Для начала процесса реанимации необходимо сделать следующее:
Несмотря на всю свою надежность, носители типа SSD иногда выходят из строя. Также нередко пользователи сами являются основной причиной потери данных (случайно удаляют файлы или форматируют устройство). Хотя и существуют некоторые сложности, практически всегда есть шанс восстановить утерянную информацию.