понедельник, 12 января 2015 г.

Краткий список программ и алгоритмов для восстановления потерянных данных.

Наверняка, каждый хоть раз на личном опыте сталкивался с необходимостью восстановить утерянные файлы. Вот, осознав, что на память помню не все нужные продукты, решил зафиксировать основные мысли о восстановлении потерянных данных.

Отдельно хочу отметить случаи, когда восстановление данных невозможно:
1. На место удалённых данных были записаны другие (обычно случается на переполненных разделах, либо при попытке восстановить данные, удалённые достаточно давно).
2. Файл был удалён с SSD и система успела сформировать команду TRIM (фактически, файл был перезаписан нулями).
3. Место хранения файла безвозвратно повреждено (часто случается с оптическими дисками при небрежном обращении, но актуально и для жёстких дисков и даже для флэшек).
4. Вышел из строя контроллер устройства хранения и нет возможности его заменить (это чаще случается как раз со флэшками, но справедливо и для жёстких дисков).
Во всех остальных случаях шансы на восстановление точно оценить невозможно, но практически в любом случае они отличны от нуля.
Наиболее частый и простой сценарий "я случайно удалил нужный документ, при чём мимо корзины" элементарно исправляется с помощью бесплатной (для личного использования) программы восстановления удалённых данных Recuva - она достаточно проста в использовании и позволяет восстановить фотографии, ошибочно стёртые с флэшки и даже может помочь при восстановлении файлов с повреждённого диска, но эту функцию она выполняет несколько хуже.
Чуть сложнее с логическими ошибками - когда нарушается структура таблицы разделов; всегда считал такой сценарий "лабораторным", пока за полгода не получил три заявки с абсолютно идентичными диагнозами - видимо, какая-то вредоносная программа не очень корректно пыталась себя разместить в загрузчик системы, после чего разделы "терялись". В такой ситуации мне больше остальных понравилось использовать Acronis Disk Director Suite (сейчас этот пакет называется чуть иначе, но я не обновлял свой версии где-то с 9-й, хотя обновление и стоит сравнительно недорого) главный недостаток такого решения - оно платное. И если лет 7 назад версия для домашнего использования стоила 500 рублей, то сейчас уже значительно больше (хотя за это время почти всё сильно подорожало). Из успешных бесплатных решений хотелось бы отметить gparted или готовые live-сборки, его содержащие - например, lparted - очень полезная и функциональная сборка - нацелена, в принципе, на изменение размера существующих разделов, но также содержит средства диагностики и иногда может использоваться для восстановления данных.
Ну и самый тяжёлый случай - частичный выход из строя носителя - здесь уже "малой кровью" отделаться не удастся, и какая-то часть данных будет потеряна безвозвратно (хорошо, если пользователь рано заметил, что с его носителем что-то не так, и озадачился спасением информации задолго до полного отказа - тогда есть шанс спасти вообще всю информацию) - мне очень понравилась соответствующая, пусть и старая, статья на хабре - актуальна до сих пор, особенно с учётом написанного в комментариях. К слову, совсем недавно мне как раз пришлось пользоваться dd + photorec, спасая данные с загибающегося ноутбучного диска - думаю, с помощью gnu_ddrescue вместо обычного dd, процесс прошёл бы значительно комфортнее, а воспользовавшись возможностью lparted загружаться без монтирования разделов, я бы облегчил себе жизнь ещё больше, т.к. смог бы работать с проблемным диском по SATA вместо вынужденного переходника на USB (т.к. с подключенным диском система зависала намертво на этапе монтирования разделов - при чём без разницы, будь то Linux или Windows), но лучше поздно, чем никогда - в следующий раз будет проще.
Вот ещё достаточно интересная диагностически-ремонтная утилита - MHDD - работает в чистом DOS, но умеет неплохо общаться с дисками.
И да, как же избежать нашего "самого тяжёлого случая"? На самом деле система при наличии проблем с диском начинает на них жаловаться заранее, вот только делает она это настолько незаметно, что даже имея серьёзные подозрения, подтвердить их бывает весьма непросто - Windows, например, только пишет в системный журнал ошибки с идентификатором "disk", да и встреченные мной дистрибутивы Linux как-то не отличались разговорчивостью по поводу неполадок дисковой системы, даже если в системе изначально стоял collectd и smartd из smartmontools, так что мониторингом дисковой системы заняться придётся самостоятельно. Здесь для изолированных машин с Windows я бы рекомендовал HDD Health - бесплатный, пусть и не очень информативный, монитор состояния дисков с использованием S.M.A.R.T., оповещающий в случае каких-либо тревожных симптомов. Для Linux универсального решения не существует (вероятно, из-за слишком разных реализаций механизмов визуального оповещения для разных оболочек), но для ручного мониторинга очень помогает упомянутый выше smartmontools. Для корпоративных сетей я бы рекомендовал использовать Zabbix с настроенным мониторингом S.M.A.R.T. (идею можно взять там или там или дождаться, когда уже нормально реализуют этот функционал "из коробки").

Комментариев нет:

Отправить комментарий