Утилиты для восстановления потерянных данных в Linux
В.Костромин
На днях, в ходе небольшой ревизии содержимого своего сайта я наткнулся на перевод статьи
"10 способов восстановления удаленных файлов в linux",
исходный вариант которой датирован 21 июня 2007 года. Перечитав статью и попытавшись
пройти по приведенным в ней ссылкам, я обнаружил, что некоторые ссылки вообще не работают
(сайты разработчиков в сети пропали), а некоторые из упомянутых в статье утилит давно
не обновляются и не поддерживаются.
Возникла идея посмотреть, какие же средства восстановления случайно удаленных файлов
существуют на настоящий момент. Полагаю, что интерес к средствам такого рода за прошедшие годы
не пропал. Ведь начинающие пользователи Линукс (как, впрочем, и других операционных систем)
часто попадают в ситуацию, когда по ошибке, вызванной неопытностью, удаляют какие-то файлы
и тут же спохватываются, что удалили не то, что хотели. А может быть и вообще не хотели что-то
удалять. В Windows в таких случаях спасает Корзина. Впрочем, говорят, что в некоторых
дистрибутивах Линукс (например, в Ubuntu) тоже есть Корзина. Проверить это утверждение
на данный момент я не могу, поскольку не имею под рукой компьютера с Ubuntu. Но не Убунтой
единой жив линуксоид, так что я занялся поиском в Интернет сведений о средствах восстановления
случайно удаленных файлов для Linux.
Кроме случаев ошибочного удаления данных возможны ситуации, когда оказывается испорчен носитель,
появились поврежденные сектора на диске, поцарапан CD и так далее. В таких ситуациях тоже
бывают нужны средства восстановления данных.
Сразу хочу предупредить, что все изложенное ниже мной лично не проверялось и основано
только на сведениях, опубликованных на сайтах разработчиков или в статьях с описаниями
соответствующих продуктов. Ну и, конечно, в статье рассматриваются только свободно
распространяемые продукты. Если вас интересуют платные (проприетарные) продукты,
вы без труда найдете их сами.
Итак, вот список утилит для восстановления потерянных данных, которые мне удалось
разыскать (данные актуальны по состоянию на 10 ноября 2010 года).
Кроме перечисленных в некоторых статьях упоминаются также утилиты Magicrescue и
ntfsundelete из пакета ntfstools.
Этот список может вам
очень пригодиться, если вы попадете в ситуацию, когда требуется восстановить данные
с поврежденного носителя. И желательно освоить хотя бы некоторые из этих инструментов
до того, как возникнет острая необходимость в их применении. Для этого имеет смысл
протестировать их на искусственных примерах удаления файлов, как это сделано в одной
из заметок, приведенных в списке источников.
В заключение несколько советов, может быть тривиальных, но зато безусловно полезных,
относительно того, как попытаться избежать попадания
в неприятную ситуацию, когда требуется применение перечисленных выше средств. Во-первых, можно
сделать так, чтобы случайно удалить файл или каталог было сложнее. Для этого сделайте так,
чтобы вместо команды rm вызывалась команда rm -i.
Сделать это можно с помощью команды alias
следующим образом:
alias rm="rm -i"
Тогда перед выполнением удаления вам будет задан дополнительный вопрос, действительно ли вы этого
хотите.
Второй совет: делайте резервные копии своих данных как можно чаще, каждый день или даже
каждый час. Если следовать этому совету, то в самом плохом случае вы потеряете только те
результаты своей работы, которые получили в течение последнего часа. Да и процедуры восстановления
данных в таком случае выполнить будет гораздо проще. Автоматизировать выполнение этих процедур
можно с помощью cron-а и утилиты rsync,
организовав периодическое копирование важных файлов и каталогов на другой диск или раздел.
А можно использовать упомянутую выше утилиту Mondo Rescue. Кстати, вы освоите ее применение,
что может оказаться полезным в случае возникновения необходимости восстановления данных в
чрезвычайной ситуации.
И третье: прежде чем приступать к попыткам восстановления удаленных файлов, сделайте копию
раздела, в котором находились эти файлы, и работайте с ней, а не с исходным разделом.
Если в процессе восстановления вы снова ошибетесь, то сможете начать все с начала. Если же
работать с исходным разделом, можно испортить данные безвозвратно. Сделать копию раздела
можно с помощью команды dd (о применении этой команды вы можете прочитать
в статье А.Дмитриева "dd: Команда, которая
не похожа на другие").
Нелишне напомнить также, что существуют специальные дистрибутивы Linux, запускающиеся с CD или
других съмных носителей и содержащие наботы утилит администрирования, в том числе и инструменты
восстановления данных. В качестве примера таких дистрибутивов можно упомянуть SystemRescue CD
и Trinity Rescue Kit.
Я полагаю, что приведенный выше список через некоторое время тоже устареет, как это случилось с перечнем,
приведенным в статье, упомянутой в начале этой заметки. Зато появятся новые средства,
может быть более совершенные. Чтобы быть в курсе, заглядывайте иногда на сайт
"Каталог программного обеспечения для Linux",
а еще лучше - помогайте поддерживать этот каталог в актуальном состоянии. Тогда в любой
нештатной или штатной ситуации вы или другой пользователь Linux сможет найти
необходимые средства и инструменты для решения своих проблем.