В.Костромин (под ред. Vanderboot)
На днях, в ходе небольшой ревизии содержимого своего сайта я наткнулся на перевод статьи "10 способов восстановления удаленных файлов в linux ", исходный вариант которой датирован 21 июня 2007 года. Перечитав статью и попытавшись пройти по приведенным в ней ссылкам, я обнаружил, что некоторые ссылки вообще не работают (сайты разработчиков в сети пропали), а некоторые из упомянутых в статье утилит давно не обновляются и не поддерживаются.
Возникла идея посмотреть, какие же средства восстановления случайно удаленных файлов существуют на настоящий момент. Полагаю, что интерес к средствам такого рода за прошедшие годы не пропал. Ведь начинающие пользователи Линукс (как, впрочем, и других операционных систем) часто попадают в ситуацию, когда по ошибке, вызванной неопытностью, удаляют какие-то файлы и тут же спохватываются, что удалили не то, что хотели. А может быть и вообще не хотели что-то удалять.
Кроме случаев ошибочного удаления данных возможны ситуации, когда оказывается испорчен носитель, появились поврежденные сектора на диске, и так далее. В таких ситуациях тоже бывают нужны средства восстановления данных.
Сразу хочу предупредить, что все изложенное ниже мной лично не проверялось и основано только на сведениях, опубликованных на сайтах разработчиков или в статьях с описаниями соответствующих продуктов. Ну и, конечно, в статье рассматриваются только свободно распространяемые продукты. Если вас интересуют платные (проприетарные) продукты, вы без труда найдете их сами.
Итак, вот список утилит для восстановления потерянных данных , которые мне удалось разыскать (данные актуальны по состоянию на 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 сможет найти необходимые средства и инструменты для решения своих проблем.
О восстановлении данных с файловых систем
Linux не писал только
ленивый. Для выполнения этой задачи существует множество самых разнообразных
средств, включая утилиту debugfs, которая с легкостью извлекает любые потертые
файлы с ext2. Но как же быть с другими ФС? Как восстановить исчезнувший файл с
флеш-брелка или расположенного рядом NTFS-раздела? Об этом молчат даже самые
трудолюбивые блоггеры. А между тем, все очень просто и прозаично.
Не всегда удобно перезагружаться в другую операционную систему для выполнения
действий по проверке файловых систем, восстановления файлов, изменения размера
разделов и выполнения других операций с данными. Представь, что уже несколько
лет на твоем компе установлено две операционные системы: Windows и Linux. Первую
ты загружаешь очень редко и только в экстренных случаях, второй пользуешься
ежедневно и уже подумываешь о полном переходе на Linux и удалении винды, вот
только NTFS-раздел, хранящий годами накапливаемые данные, перевести в ext3
нельзя никакими инструментами. Приходится держать две операционки, потому что
хоть NTFS-раздел и доступен из Linux (с помощью ntfs-3g), для решения проблем
файловой системы все равно придется перезагружаться в Windows.
А если накрылась файловая система FAT на Flash-накопителе? Опять
перезагружаться в Windows? Или ты случайно удалил файл в файловой системе UFS,
принадлежащей рядом установленной FreeBSD? Может быть, ты системный
администратор, и диска для восстановления Windows в нужный момент не оказалось
под рукой? Отвечу на все вопросы сразу: почти все действия по возвращению из
небытия файловых систем FAT, NTFS, UFS, восстановлению хранящихся в них файлов,
диагностике и многому другому можно произвести, не покидая Linux. Из этой статьи
ты узнаешь, как это сделать.
Перед тем, как перейти непосредственно к описанию процесса восстановления,
диагностики и возвращения убитых файлов к жизни, считаю своим долгом ознакомить
тебя со списком используемых инструментов. Во-первых, нам понадобятся
инструменты для работы с файловыми системами (создание, проверка, получение
информации). Все они распространяются в трех пакетах:
1. dosfstools
- утилиты для работы с файловыми системами типа FAT.
Пакет содержит всего две программы: mkfs.vfat (mkfs.dos) для создания файловой
системы и fsck.vfat (fsck.dos) для выполнения проверки файловой системы.
2. ufsutils
- набор утилит для работы с UFS и производными (например,
FFS, используемой во FreeBSD). Содержит восемь утилит, включая mkfs.ufs,
fsck.ufs, tunefs.ufs (настройка ФС), growfs.ufs (изменение размера) и другие.
3. ntfsprogs
- различные утилиты для работы с NTFS. Не содержит
программ для создания или полной проверки (базовая проверка возможна) файловой
системы, но включает в себя массу полезнейших инструментов, таких как ntfscp для
копирования файлов без монтирования раздела, "реинкарнатор" файлов ntfsundelete,
утилита для изменения размера раздела ntfsresize, программа для клонирования
разделов ntfsclone и другие.
Также нам могут пригодиться инструменты для работы с разделами жесткого
диска. Есть три наиболее продвинутые программы такого типа:
parted ,
предназначенная для создания разделов, изменения их размера, перемещения,
создания и проверки файловых систем;
gpart -
программа-восстановитель затертой таблицы разделов и
TestDisk -
аналог gpart с псевдо-графическим интерфейсом и несколькими полезными функциями.
Следует отметить, что parted - лишь хорошая обертка поверх описанных утилит
для работы с файловыми системами, поэтому почти все, что может parted, могут и
они. Причем вокруг самой parted есть и другая обертка, названная
. Она
всего-навсего создает удобный графический GTK-интерфейс в стиле Partition Magic.
В пакете TestDisk ты найдешь утилиту PhotoRec, предназначенную для
восстановления различных типов файлов с раздела вне зависимости от используемой
файловой системы. Принцип ее работы заключается в поиске и восстановлении файлов
по их метаданным без анализа структуры файловой системы. PhotoRec способна
восстанавливать изображения (bmp, jpg, png, tiff, raf, raw, rdc, x3f, crw, ctg,
orf, mrw), аудио-файлы (wav, au, mp3, wma), видео-файлы (avi, mov, mpg), архивы
(bz2, tar, zip), документы (doc, pdf, html, rtf), файлы с исходниками программ (c,
pl, sh). Ряд программ такого же типа можно найти в пакете
Sleuth Kit , для которого
существует web-интерфейс autopsy.
В следующих разделах мы рассмотрим несколько распространенных сценариев
использования описанных утилит. Во-первых, это подробное описание процесса
восстановления файлов с использованием трех разных подходов, во-вторых, починка
файловых систем после сбоя, в-третьих, клонирование раздела на несколько машин,
в-четвертых, описание процесса переноса данных на раздел меньшего размера.
Для оживления умерших файлов на NTFS предназначена уже упоминавшаяся
ntfsundelete из пакета ntfsprogs. Она очень проста в использовании и чрезвычайно
аккуратна. Если ты случайно потер файл и сразу же отмонтировал раздел, будь
уверен - ntfsundelete сможет вернуть его на место в целости и сохранности.
Для начала необходимо просмотреть список всех удаленных файлов:
# ntfsundelete /dev/sda1
В третьей колонке вывода будет указан процент сохранности файла. Если он
равен 100% - все ок, файл может быть возвращен к жизни целым и невредимым;
меньшее значение указывает на то, что какие-то его участки уже были затерты
новыми данными, поэтому после восстановления файл окажется, что называется,
битым. В некоторых случаях возможность восстановления даже наполовину убитого
файла может сделать погоду, пока же остановимся на полностью целых экземплярах.
Для этого выполним следующую команду:
# ntfsundelete -p 100 /dev/sda1
Ух, как же их много! Заставим программу вывести на экран только файлы,
удаленные за последние 2 дня:
# ntfsundelete /dev/sda1 -p 100 -t 2d
Так-то лучше. Восстановим файл, номер inode (первая колонка вывода) которого
равен 11172, в каталог /undeleted:
# ntfsundelete /dev/sda1 -u -i 11172 -d /undeleted
Файлы можно восстанавливать по маске:
# ntfsundelete /dev/sda1 -u -m "*.doc"
Фильтровать по длине:
# ntfsundelete /dev/hda1 -S 5k-6m
Или же ты можешь восстановить все удаленные файлы, а уже потом разобраться,
что к чему:
# ntfsundelete /dev/sda1 -u -m "*" -d /undeleted
Программа извлекает файлы со всеми атрибутами, включая имя и время создания.
Пользоваться ей одно удовольствие.
Для восстановления данных со всех остальных файловых систем, включая FAT, UFS,
EXT3, да и любых других, удобнее всего использовать PhotoRec. Запускаем
программу:
В главном меню выбираем подопытное устройство (например, /dev/sda). Нажимаем
раздел, а на следующем экране - тип файловой системы (ext2/ext3 или другая).
Задаем каталог, куда мы хотим поместить восстановленные файлы, и нажимаем "Y".
Каталог должен находиться на другом разделе/диске, иначе ты рискуешь усугубить
ситуацию, затерев удаленные файлы новыми данными.
Все, начался процесс восстановления, он может продлиться от 10 минут до
нескольких часов, в зависимости от "старости" файловой системы и количества
удаленных файлов. Ты можешь остановить процесс в любой момент, нажав
возобновить его с места прерывания, вновь запустив PhotoRec.
В выбранном тобой каталоге ты найдешь массу подкаталогов с именами вроде
recup_dir.1, recup_dir.2, каждый из которых содержит большое количество файлов
разного типа. Имена PhotoRec не восстанавливает, поэтому придется повозиться с
разгребанием всей этой кучи.
У PhotoRec есть и другие недостатки:
Поэтому в довесок к photorec необходимо иметь под рукой другие средства
анализа и восстановления утраченных данных. Лучшим на этом поприще считается
комплект утилит Sleuth Kit ,
содержащий огромное количество самых разнообразных инструментов, которые любят
применять в своей работе различные службы по расследованию инцидентов взлома и
продвинутые системные администраторы. Мы далеки от этого, и нас интересуют
только две утилиты из всего комплекта: fls и icat, предназначенные для поиска и
извлечения файлов (как существующих, так и удаленных).
Просмотрим список удаленных файлов с помощью утилиты fls:
# fls -rd /dev/sdb1
r/r * 117: dsc0005.jpg
r/r * 119: dsc0006.jpg
r/r * 122: dsc0007.jpg
r/r * 125: dsc0008.jpg
r/r * 128: dsc0009.jpg
Флаг "-r" заставляет программу рекурсивно проходить по всем каталогам, а "-d"
- показывать только удаленные файлы.
Скорее всего, листинг будет очень длинным, и к тому же будет содержать список
inode, которые уже были отданы другим файлам (строчка realloc в третьей
колонке), поэтому мы его отфильтруем и направим в less:
# fls -rd /dev/sda1 | grep -v "(realloc)" | less
В третьей колонке ты увидишь номера inode-файлов, а в четвертой - их имена.
Чтобы выдернуть файл из ФС, воспользуйся командой icat (флаг "-r" предназначен
для восстановления удаленного файла):
# icat -r /dev/sda1 1023 > /home/vasya/tmp/my_file
Для восстановления всех файлов можно воспользоваться следующей командой:
# for i in `fls -rd /dev/sda1 | grep -v "(realloc)" |\
awk {"print $3"}|tr -d [:]`; do icat -r -f fat /dev/sdb1 $i >\
/home/vasya/tmp/inode-$i ;done
Если ты желаешь найти какой-то конкретный файл, то вывод fls можно просто "погрепать":
# fls -rd /dev/sda1 | grep -v "(realloc)" | grep my_file.jpg
Замечательная особенность утилит Sleuth Kit состоит в том, что они используют
множество самых разнообразных методик поиска удаленных файлов и их частей. Это и
анализ управляющих структур файловой системы, и различные эвристические методы,
и сопоставление с шаблоном. Фактически, с помощью Sleuth Kit возможно вернуть к
жизни даже файлы, затертые на ext3 (притом, что сами разработчики ext3 говорят о
невозможности проведения такой операции).
Починить поломавшуюся файловую систему очень просто. Достаточно
воспользоваться стандартными утилитами fsck.vfat (для файловых систем FAT12,
FAT16 и FAT32), fsck.ufs (для UFS, UFS2, FFS) и ntfsfix (для NTFS).
К сожалению, ntfsfix не способна полностью вылечить NTFS. Она лишь исправляет
некоторые из ее проблем и устанавливает флаг принудительной проверки файловой
системы, так что следующая перезагрузка в Windows повлечет за собой запуск
chkdsk для полной проверки ФС.
Используя виртуальную машину, мы можем избежать необходимости перезагрузки в
Windows. Для этого:
Допустим, ты купил новый жесткий диск и хочешь перенести несколько разделов
со старого диска на новый. Если ты начнешь делать это стандартными методами,
через создание нового раздела и ручное копирование файлов, то рискнешь поиметь
массу проблем, связанных с кодировками имен файлов, специальными файлами,
защищенными файлами, да и потеряешь массу времени. Лучше воспользоваться методом
клонирования раздела.
Пользователи UNIX клонируют разделы с помощью стандартной утилиты dd, которую
можно применять в связке с любой файловой системой. Для этого на новом диске
создается раздел, идентичный по размерам источнику, и выполняется команда "dd if=раздел1
of=раздел2 bs=1m". Таким же образом можно скопировать и NTFS-раздел, но в пакете
ntfsprogs для этой цели есть более подходящая утилита.
Программа ntfsclone идентична по функциональности команде dd за исключением
двух особенностей. Во-первых, она не копирует незанятые участки файловой
системы, и перемещение происходит быстрее, а образ раздела (если ты создаешь
образ) занимает меньше места. Во-вторых, ntfsclone способна хранить образ в
специальном сжатом файле, который удобно передавать на другие машины.
Для клонирования раздела достаточно выполнить следующую команду:
# ntfsclone --overwrite /dev/hda1 /dev/hdb1
А для создания образа:
# ntfsclone --save-image --output backup.img /dev/hda1
Утилита ntfsclone особенно удобна, если ты решил скопировать установленный
Windows на целый парк других машин (учебный класс или офис). Для этого
достаточно установить Windows на одну машину и создать образ, который затем
можно выложить в шару и с помощью Linux LiveCD залить на другие машины. Чтобы
они смогли загружаться, придется также скопировать MBR-запись диска:
# sfdisk -d /dev/sda > /share/sda-sfdisk.dump
# dd if=/dev/sda bs=512 count=1 of=/share/sda-mbr.dump
А затем записать ее на диск всех машин:
# sfdisk /dev/sda < /share/sda-sfdisk.dump
# dd if=/share/sda-mbr.dump of=/dev/sda
Что делать, если ты решил полностью перейти на Linux, но не хочешь
использовать различные ухищрения и ntfs-3g для доступа к своим старым данным,
расположенным на NTFS-разделе? Ведь этот раздел может занимать большую часть
диска, и нет никакой возможности просто скопировать его содержимое на новый
раздел, отформатированный в ext3/ext4. В этом случае тебе на помощь опять придут
утилиты из пакета ntfsprogs, а точнее одна из них - ntfsresize, которая позволит
копировать данные небольшими порциями в новую файловую систему с последующим
уменьшением размера NTFS-раздела и увеличением ext3/ext4-раздела. Для этого тебе
понадобится какой-нибудь LiveCD, содержащий ntfsprogs и e2fsprogs версии не ниже
1.41 (для поддержки ext4, если ты, конечно, собираешься переносить данные на
нее). Также очень желательно, чтобы LiveCD содержал свеженький gparted, потому
что изменять размер вручную трудно и опасно (кроме изменения размера самой ФС,
предстоит менять размер раздела с помощью fdisk, одна ошибка и всю операцию
придется начинать сначала).
Итак, загружаемся с LiveCD и монтируем разделы жесткого диска. Допустим, его
размер составляет 120 Гб. Из них 80 Гб - под завязку набитый NTFS-раздел, а
остальные 30 Гб (да, именно 30, после перевода маркетинговых гигабайт в
настоящие объем диска оказывается равным примерно 111 Гб) - это раздел с
установленным Linux, занятость которого составляет 5 Гб. Значит, наше "окно"
равно примерно 25 Гб. Перемещаем файлы с NTFS-раздела на ext3/ext4-раздел до тех
пор, пока их совокупный размер не станет равен размеру окна. В результате
последний оказывается полностью заполненным, а первый "худеет" на 25 Гб.
Отмонтируем оба раздела и запускаем gparted. Выбираем NTFS-раздел, жмем вторую
кнопку мыши, выбираем Resize/Move и уменьшаем раздел на размер окна, выбираем
ext3/ext4-раздел и увеличиваем его на тот же размер окна (раздел придется
сдвинуть к началу диска, а затем увеличить). Так мы получаем еще 25 Гб
освободившегося места, что позволит нам скопировать часть файлов, а затем вновь
изменить размер. Четыре таких прохода, и мы полностью удаляем NTFS-раздел, а
раздел ext3/ext4 расширяем на весь диск.
Как ты смог убедиться, Linux умеет не только работать с множеством сторонних
файловых систем, но и оснащен массой утилит для их модификации, проведения
диагностики и выполнения других операций. Ты никогда не окажешься в безвыходной
ситуации, держа под рукой LiveCD на базе Linux, который как раз и является тем
самым Святым Граалем любого системного администратора и пользователя.
Foremost, еще одна популярная программа для
восстановления файлов по шаблонам.
www.sysresccd.org -
System Rescue CD содержит все упомянутые в статье программы.
Если данные для вас чрезвычайно важны, и вы сомневаетесь в своих силах/знаниях, немедленно отключайте носитель и несите его в сервисный центр. Попытки самостоятельно решить проблему могут усугубить ситуацию, вплоть до полной невозможности что-либо восстановить.
Первым делом, очень важно свести к минимуму работу с повреждённым накопителем, иначе вероятность восстановления данных существенно снижается.
Если вы случайно удалили нужный файл с некоторого раздела, следует как можно скорее перевести данный раздел в режим «только чтение» и исключить любые попытки записи на него.
Если вы по ошибке установили операционную систему, на диск/раздел с важными данными, то загружать систему с этого диска/раздела категорически не рекомендуется. Для дальнейней работы следует использовать LiveCD/USB или систему, загружаемую с другого диска/раздела.
Кроме того, для сохранения восстанавливаемых данных потребуется ещё один накопитель ёмкости, не меньшей исходного.
Чтобы снизить возможные потери информации при неудачной попытке восстановления, следует сделать полный дамп повреждённого тома (ФС, раздел, либо весь диск, в зависимости от того как располагались исходные данные) через dd или ddrescue на отдельный носитель и дальше экспериментировать с этим дампом:
sudo dd if =/ dev/ sdXY of =/ path/ to/ dump.imgНередко судьба подкидывает нам такое, что послезавтра сдавать диплом, а сегодня умер жесткий диск со всей информацией. В Linux стандартом де-факто в области восстановления данных является утилита testdisk. Однако нередко человек, впервые сталкиваясь с ней, находит ее для себя малопонятной и отказывается от нее, т.к. она не имеет графического интерфейса.
Многих новичков в Linux, привыкших к GUI программам в Windows, пугает использование консольных программ, требующих ввода нужных команд с малоизвестными им аргументами и ключами. Нередко мануалы к такому софту оказываются или на английском языке, или достаточно сложны, чтобы разобраться с первого взгляда, и человек отступается от своей цели. Нередко ему снова приходится обращаться к Windows, искать там «надежную и понятную» (GUI) программу, затрачивая на это уйму времени, вместо того, чтобы убрать у себя табу на использование консоли.
Специально для написания статьи я нашел старую ненужную флешку, записал на нее немного музыки и видео. После этого в GParted изменялись размеры и положение раздела (при этом флешка выдергивалась из компа в самый кульминационный момент), ну и напоследок все было добито созданием новой таблицы разделов.
Итог - при подключении флешка не обнаруживается компьютером, на ней важная информация, будем ее восстанавливать.
1. Для начала нужно установить testdisk. Для этого в консоли выполняем:
sudo apt-get install testdisk2. Запускаем testdisk с администраторскими правами
sudo testdiskПоявляется окошко приветствия testdisk, нам предлагается вести лог работы. В данном случае не вижу в этом смысла, но вы можете поступать иначе. Выбираем нужный пункт меню и подтверждаем выбор: No Log → Enter .
3. Появляются доступные носители, выбираем нужный, подтверждаем нажатием Proceed .
4. Предлагается выбрать тип таблицы разделов, думаю, что в большинстве случаев будет тип Intel / PC Partition .
5. Появляется меню с выбором операции. Для начала делаем анализ, выбрав Analyse .
6. В разделе Analyse Выбираем Quick Search .
7. Последний вопрос перед началом анализа «Должен ли testdisk искать разделы созданные с использованием Windows Vista?». В моем случае - нет, поэтому я выбираю N .
Побежал анализ…
Анализ закончен. Предупреждение. Или некоторые разделы не были найдены, или таблица разделов не может быть записана, т. к. разделы перекрываются.
8. Вот теперь можно начинать восстановление информации. В данном случае нас интересует 2 варианта действий.
Получить список файлов, содержащихся в данном разделе нажатием Р с дальнейшим восстановлением интересующих файлов из списка
Попробовать загрузить резервную копию таблицы разделов нажатием L , это приведет носитель к первоначальному состоянию до поломки
Выводим список файлов нажатием Р.
Отсюда же можно попробовать скопировать особо важные файлы и папки, особенно если боитесь, что данные не восстановятся, а наоборот потеряете последнюю, пусть даже и битую информацию. Для примера я буду копировать музыкальный альбом. Выделяем нужное курсором, нажимаем С для копирования. Появляется файловый менеджер, где можно выбрать куда будем копировать. В домашнем каталоге для этих целей специально создана папка Restored .
Заходим в нее и подтверждаем копирование нажатием Y .
Открываем папку в Nautilus, видим, что все файлы на месте и их можно прослушать.
9. Итак, особо важную информацию на всякий случай сохранили, однако наша цель приведение носителя в нормальное рабочее состояние. Из каждого пункта меню testdisk можно вернуться в предыдущий с помощью клавиши Q . Таким образом возвращаемся к 8 пункту.
Попробуем вернуть все в первоначальное до поломки состояние, загрузив резервную копию таблицы разделов. Нажимаем L . В появившемся окошке выбираем Load …
…и подтверждаем наши намерения Y .
Все, процесс восстановления закончен, отключаем и снова подключаем поврежденный носитель. Теперь он обнаруживается, все файлы на месте, в целости и сохранности.
Желаю вам удачных восстановлений!
Установить extundelete можно выполнив команду:
sudo apt-get install extundeleteКак только вы поняли, что удалили нужные файлы, надо отмонтировать раздел:
umount / dev/< partition>или перемонтировать в режиме «только чтение»
mount -o remount,ro / dev/< partition>Так же следует создать резервную копию раздела прежде, чем начинать с ним работу по восстановлению файлов:
dd bs =4M if =/ dev/< partition> of =partition.backupЗайдите в каталог, в который будут восстанавливаться удаленные данные. Он должен быть расположен на разделе отличном от того, на котором хранились восстанавливаемые данные:
cd /< путь_к_каталогу_куда_восстанавливать_данные>Запустите extundelete, указав раздел, с которого будет происходить восстановление и файл, который необходимо восстановить:
sudo extundelete / dev/< partition> --restore-file /< путь к файлу>/< имя_файла>Можно так же восстанавливать содержимое каталогов:
sudo extundelete / dev/< partition> --restore-directory /< путь_к_директории>Можно задать для восстановления рамки по времени удаления восстанавливаемых файлов, например так:
sudo extundelete --after < дата> / dev/< partition> --restore-directory /< путь_к_директории>Дату необходимо указывать в UNIX-времени :
date -d "March 28 19:34" +% sНекоторые файлы могут восстановиться под другим именем и расширением, хотя это не повлияет на содержимое файла.
Хорошо подходит для восстановления фотографий и скриншотов с битых карт памяти и флешек.
foremost - поиск и восстановление данных по сигнатурам.
Установка:
sudo apt-get install foremostПример использования для восстановления изображений с диска /dev/sdb в каталог ~/out_dir:
sudo foremost -t jpg,gif,png,bmp -i / dev/ sdb -o ~/ out_dirGUI для Foremost, можно скачать на дружественном форуме.
Утилита является платной. Тем не менее, судя по нескольким топикам на форуме, в тяжёлых случаях она может дать лучший результат, чем testdisk.
R-Studio позволяет восстанавливать утраченные данные с поврежденного, форматированного, переформатированного или удаленного диска (раздела) локального или удаленного компьютера вне зависимости от используемой системы (платформы).
Установка:
sudo apt install scalpelScalpel анализирует файлы по header и footer, заданным в шаблоне
/etc/scalpel/scalpel.conf
Чтобы задать типы файлов для распознавания, нужно в указанном выше шаблоне раскомментировать соответствующие строки. Однако, будьте внимательны: зачастую header и footer ваших файлов могут отличаться от заданных в шаблоне для такого типа файлов (к примеру, sony jpg). В таком случае нам нужно самостоятельно выяснить header и footer искомых файлов на примере имеющегося аналогичного файла:
Xxd -l 0x04 filename; xxd -s -0x04 filename
и вписать их в конфигурационный файл.
Использование scalpel:
sudo scalpel input.iso -o outputdirВ качестве исходного пути может использоваться как путь к реальному устройству /dev/…, так и путь к образу диска. Директория outputdir для сохранения файлов обязательно должна быть пустой.
Часто ли вы сталкивались с ситуациями когда нужно было восстановить данные?
Вы случайно удалили файла, но когда было уже поздно одумались, но не знали как восстановить, как вариант устанавливали операционную систему и по незнанию разметки дисков, отформатировали диск с всеми данными, музыка, фильмы, домашние фото и прочие другие данные. Вы в отчаянии не зная можно ли восстановить восстанавливали все по крупицам, но это лишь малейшая часть решения последствий проблемы которая возникла, данные в Linux можно восстановить и для этого есть утилиты, как платные так и бесплатные и сегодня мы обсудим 7 утилит которые помогут в восстановлении данных в Ubuntu Linux.
Кроме случаев ошибочного удаления данных возможны ситуации, когда оказывается испорчен носитель, появились поврежденные сектора на диске, поцарапан CD и так далее. В таких ситуациях тоже бывают нужны средства восстановления данных.
Частично конечно это все помогало, но большая часть данных все же была утеряна, а представьте ситуацию, вы студент, готовите курсовую, остается неделя либо две до сдачи, а у вас полетел жесткий диск на котором была ваша курсовая, как поступить в данной ситуации.
Знаю, многие пользователи привыкли с времен работы на системе от мелкомягких работать с графическим интерфейсом, но мы сегодня обсудим так же и консольные утилиты так как многие из них помогают в восстановлении не хуже, а в некоторых ситуациях даже лучше.
TestDisk - это мощная бесплатная программа для восстановления данных! Она была разработана в первую очередь, что бы помочь восстановить утраченные разделы и/или восстановить загрузочную способность дисков если эта проблема вызвана программно, вирусами или ошибками человека (таких как случайное удаление Таблицы Разделов). Восстановить Таблицы Разделов с TestDisk очень легко.
Чтобы попробовать восстановить данные, прежде всего установим утилиту testdisk, откройте терминал Ctrl + Alt + T и выполним следующую команду:
Sudo apt-get install testdisk
утилита занимает что-то чуть больше 300 кб, очень мало, после установки запустим ее там же в терминале командой:
Sudo testdisk
1. Запустили, видим первое окно где нам предлагают вести логи, выбираем пункт "NO Log " и жмем кнопку "Enter ".
2. Далее предлагает выбрать необходимы диск, выберите его, переход по пунктам осуществляется с помощью стрелок вверх и вниз и подтверждением ввода с помощью клавиши "Enter" . Выбрали нужный диск, далее переключитесь на кнопку "Proceed " и нажмите клавишу "Enter ".
3. После предлагается выбрать тип таблицы разделов, в большинстве случаев это первый пункт "Intel / PC Partition " и он выбран по умолчанию, жмем "Enter ".
5. После этого очень быстро пробежал анализ так как я выбрал флешку для анализа на 14 Гб, анализ закончился и мы видим окно с результатами. Для того чтобы увидеть список найденных файлов, нажмите кнопку с буквой "P " конечно же при английской раскладке p.
6. Видим как бы список файлов и папок, что можно восстановить, с помощью стрелочек на клавиатуре переключаем и выбираем нужные папки и файлы для копирования.
Определились, выбрали папку для копирования, жмем кнопку с буквой "С", после увидите файловый менеджер где нам предлагается в какую из папок на компьютере скопировать файлы. Я выбрал директорию "Загрузки" далее еще раз жмем кнопку "С" подтверждая копирование файла именно в эту директорию. Вот пожалуй и все по утилите testdisk, очень проста в освоении, ничего сложного, главное внимательность.
Хорошая утилита, позволяет восстановить удаленные файлы в файловых системах ext3/ext4.
Прежде всего установим утилиту extundelete, выполните в терминале команду:
Sudo apt-get install extundelete
Прежде всего после того как вы удалили с флешки или жесткого диска важные файлы, в данном случае важно сразу же отмонтировать раздел, выполнив в терминале команду:
Umount /dev/sda
где вместо id должен быть номер/идентификатор вашего диска, что узнать его нужно посмотреть список разделов в системе, выполним в терминале команду:
Sudo fdisk -l
в итоге мы увидим много текста, но мотаем в самый низ где вы увидите что-то подобное:
Устр-во Загрузочный Start Конец Секторы Size Id Тип /dev/sda1 4094 394020863 394016770 187,9G f W95 расшир. (LBA) /dev/sda2 * 394020900 488391119 94370220 45G 7 HPFS/NTFS/exFAT /dev/sda5 4096 14335 10240 5M 17 Скрытый HPFS/NTFS /dev/sda6 2199552 299649023 297449472 141,9G 7 HPFS/NTFS/exFAT /dev/sda7 299651072 310134783 10483712 5G 82 Linux своп / Solaris /dev/sda8 310136832 394020863 83884032 40G 83 Linux
вот здесь ищем вашу флешку или диск, у меня в результате команда получается такой:
Umount /dev/sdb1
если не определилась флешка в данном списке, ее можно увидеть запустив утилиту GParted .
Так же как вариант перемонтировать носитель в режиме «только чтение»
Mount -o remount,ro /dev/sda
Так же следует создать резервную копию раздела прежде, чем начинать с ним работу по восстановлению файлов:
Dd bs=4M if=/dev/sda of=partition.backup
Так же стоит добавить, у вас должен быть отдельный диск в который вы будете восстанавливать удаленные данные. Он обязательно должен располагаться на отдельном разделе не на том, на котором мы попытаемся восстановить данные, перейдите в директорию на этом новом диске куда будем восстанавливать файлы:
Cd /<путь_к_каталогу_куда_восстанавливать_данные>
После манипуляций выше, запустим утилиту extundelete, где укажем раздел, с которого мы будет восстанавливать файл который был удален, но он очень важен и требует восстановления:
Sudo extundelete /dev/sda --restore-file /<путь к файлу>/<имя_файла>
Утилита extundelete так же позволяет восстанавливать содержимое каталогов:
Sudo extundelete /dev/sda --restore-directory /<путь_к_директории>
Можно задать для восстановления рамки по времени удаления восстанавливаемых файлов, например так:
Sudo extundelete --after <дата> /dev/
Дату необходимо указывать в UNIX-времени:
Date -d "March 28 19:34" +%s
Да, это мощная утилита для управления дисками, аналог Acronics, ничем не хуже и так же позволяет восстанавливать данные с дисков, чтобы можно было восстанавливать, прежде всего, давайте установим саму утилиту GParted , выполните в терминале команду:
Sudo apt install gparted
после нужно установить дополнительную утилиту к GParted чтобы можно было пользоваться функционалом восстановления данных, в терминале выполните команду:
Sudo apt install gpart
готово. Давайте запустим GParted, перейдите в меню Ubuntu - Системные утилиты - Администрирование - GParted , либо ищем с помощью поиска в Dash. После запуска вы увидите ваши текущие диски, выбираем необходимый, далее переходим в меню Устройство - Попробовать восстановить данные:
жмем кнопку "Ok " и ждем завершения сканирования.
После завершения сканирования вы увидите новое окно в котором нам предлагается нажать кнопку "Обзор", и скопировать восстановленные, найденные файлы которые временно перемещаются в директорию "TMP", после закрытия GParted папка останется пустой и файлы исчезнет, так что копируем все необходимые файлы пока приложение открыто.
Foremost - это консольная утилита, которая очень хорошо справляется с восстановлением файлов с битых карт памяти, флешек и дисков. Программа ищет файлы по таким параметрам как совпадение определённых hex-кодов (сигнатур), которые соответствуют определенным форматам файлов. После чего копирует их из диска/образа и перемещает в каталог, составляя детальный отчёт о том, сколько чего и куда и откуда было восстановлено. Типы файлов, которые foremost может восстановить: jpg, gif, png, bmp, avi, exe, mpg, wav, riff, wmv, mov, pdf, ole, doc, zip, rar, htm, cpp. Так же есть возможность пополнить этот список своими форматами, но для этого нужно редактировать конфиг (/etc/foremost.conf), и добавлять форматы о которых программа пока ничего не знает.
Чтобы воспользоваться утилитой Foremost, прежде всего ее нужно установить, откройте терминал Ctrl + Alt + T и выполним следующие команды:
Sudo foremost -t jpg,gif,png,bmp -i /dev/sdb -o ~/dir_recovery"
через запятую мы перечислили форматы фото файлов которые нужно искать "jpg,gif,png,bmp", далее указываем где искать "/dev/sdb" как видите это флешка, обычно она имеет следующий вид "/dev/sdb1" и далее указываем куда восстановить найденные файлы "~/dir_recovery" это как бы пример директории которая находится в домашнем каталоге пользователя, вы конечно же указывайте свою существующую папку.
Более детально об использовании утилиты, вы можете прочесть в русскоязычном сообществе Runtu - . Статьи: "Восстановление удаленных файлов при помощи foremost ", "Восстановление удалённых файлов в ОС Linux ".
Scalpel - это набор инструментов для быстрого восстановления файлов. Уникальная утилита, уникальность ее в том, что она никак не зависит от файловой системы. Утилита ищет по базе данных файлы файлы всех известных форматов и пытается найти их на диске по определенным своим шаблонам просматривая начало и конец файла. Может помочь в восстановлении в таких файловых системах как FATx, NTFS, ext2/3, так же с "RAW" разделов.
утилита работает по своему внутреннему шаблону /etc/scalpel/scalpel.conf , если вы хотите восстановить файлы определенного формата, стоит открыть конфиг и раскомментировать соответствующие строки для данного типа файлов. При редактировании шаблона конфига нужно быть очень осторожным чтобы не нарушить его и не удалить чего лишнего.
директория для восстановления "dir_recovery " обязательно должна быть пустой, file.iso это как пример данных которые нам нужно восстановить, мы знаем, что у нас был такой образ с точно таким же названием, мы можем указать не только файл напрямую, но можем и указать полный путь к устройству откуда нужно восстановить, вида /dev/sdb1/directory_name/directory_name2/filename .
R-Linux является бесплатной программой для восстановления файловых систем Ext2/Ext3/Ext4 FS, используемых в Linux и некоторых Unix операционных системах (ОС). Используемая в R-Linux Технология Сканирования и удобный в установке параметров интерфейс программы дают пользователю абсолютный контроль над процессом восстановления данных. Программа восстанавливает данные с существующих логических дисков, даже если записи файлов утрачены. Однако, в программе отсутствует возможность восстановления данных по сети, а также функциональность по реконструкции дисковых массивов и восстановления с них данных.
Есть два варианта утилиты R-Linux: для ОС Linux и для ОС Windows. Они имеют одинаковую функциональность, разница состоит лишь в ОС хоста.
Если вам что-то не понятно по приложению, вы можете ознакомиться с справочным руководством по ссылках / руководство достаточно обширное, найдете ответы на многие вопросы.
Установить R-Linux
После завершения установки ищем приложение в меню Ubuntu - Системные утилиты - R-Linux , после первого запуска вы увидите англоязычное приложение, не пугайтесь, поддержка "Русского" так же присутствует. Перейдите в меню Help - Interface Language , и выберите русский, готово.
Если вам нужно восстановить файлы, подключите как пример флешку, увидели что флешка определилась, на боковой панели Ubuntu, нажмите в приложении кнопку обновить, чтобы увидеть ваш носитель. Далее выделяем курсором мыши раздел нашего флеш-носителя и жмем кнопку "Сканировать ".
Как видите, нам предлагают более детально настроить параметры сканирования, искать ли по известных типах файлов, вести ли журнал, где конкретно искать, позволяется указать с какого отрезка байтов стоит начинать сканирование, с 0 по стандарту или же указать свои данные.
Cканирование начато, ждем пока завершится, не отменяем ни в каком случае, иногда это может плохо кончиться для флеш-носителя. Сканирование завершено, далее мы видим следующую картинку:
ниже под нашим флеш-разделом появилась область с названием "Найденные по сигнатурам ", нажмите по этому разделу курсором мыши и увидим новое окно:
нажмите по строке "Файлы, найденные по информации о типичных особенностях структуры их данных ". После нажатия по данной ссылке мы увидим примерно следующее:
выделяем нужные вам директории и жмем кнопку "Восстановить помеченные ", я ради теста проверил, утилита хорошо работает, пробуйте и отписывайтесь по результату как она в деле в реальной ситуации когда утеряны данные, удалены файлы и прочее.
Платная утилита, но она того стоит так как выручит даже из самых сложных ситуаций.
Установить R-Studio вы можете из нашего репозитория по ссылке - .
Продвинутая утилита, лучшая с утилит для восстановления данных, работает с файловыми системами NTFS, NTFS5, ReFS, FAT12/16/32, exFAT, HFS/HFS+ (Macintosh), Little and Big Endian variants of UFS1/UFS2 (FreeBSD/OpenBSD/NetBSD/Solaris) и Ext2/Ext3/Ext4 FS (Linux). В R-Studio также используется восстановление файлов по сигнатурам (поиск при сканировании файлов известных типов) для сильно поврежденных или неизвестных файловых систем. Программа позволяет восстанавливать данные как локально, так и на удаленных компьютерах по сети, даже если разделы дисков были форматированы, повреждены или удалены.
В состав R-Studio входят:
В заключении пару видео про R-Studio:
Также для восстановления информации есть и еще утилиты:
Кроме перечисленных в некоторых статьях упоминаются также утилиты 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 сможет найти необходимые средства и инструменты для решения своих проблем.
Иногда так случается, что мы удаляем, как казалось бы ненужные файлы (изображения, видео, текстовые документы и пр.), а потом вдруг сожалеем об этом, т.к. среди удалённых, оказались нужные. Хорошо если мы удаляем файлы в Корзину , откуда очень просто восстановить, нажав сочетание клавиш Ctrl+Z и тогда все файлы, что находятся в Корзине будут восстановлены по своим прежним папкам или можно выборочно, кликнув правой кнопкой на нужный файл в Корзине и в контекстном меню - Восстановить .
Но что делать когда мы удалили фалы функцией - Удалить безвозвратно
? Многие считают, что данные утеряны безвозвратно. Но это не так. В этом случае нам поможет консольная утилита Scalpel
.
Scalpel
— простое высокодейственное средство восстановления файлов.
Scalpel
— это средство быстрого восстановления файлов, которое читая из базы данных начало и конец файлов известных форматов, пытается найти их на диске. Уникальность данного ПО заключается в том, что оно не зависит от файловой системы. Поэтому, восстановление возможно как с FATx, NTFS, ext2/3
, так и с "голых" (raw) разделов
. Инструмент может использоваться как для цифрового поиска информации, так и для восстановления файлов.
Scalpel есть в репозиториях практически всех дистрибутивах Linux . В Ubuntu и производных вы можете установить его из Центра приложений или выполнить команду в терминале на установку:
sudo apt-get install scalpel
После установки вы не найдёте в системном меню Scalpel , т.к. я упоминал выше, этот инструмент запускается из терминала определённой командой. Но прежде чем запустить команду на поиск безвозвратно удалённых файлов, вы должны в конфигурационном файле scalpel.conf раскомментировать строку (убрать знак решётки) с расширением нужного файла (Все типы файлов "по умолчанию" закомментированы). Выполните команду в терминале на открытие конфигурационного файла scalpel.conf:
sudo gedit /etc/scalpel/scalpel.conf
Примечание . В команде gedit (Ubuntu; Linux Mint Cinnamon) измените на название текстового редактора своего дистрибутива, установленного по умолчанию.
Для примера я выбрал поиск потерянных файлов изображений c расширением JPG и раскомментировал данную строку в открывшемся редакторе с файлом scalpel.conf :
И вот теперь нужно выполнить терминальную команду с инструментом
scalpel
для поиска утраченных файлов:
sudo scalpel /dev/sda8 -o /home/vladimir /JPG /output/
sda8 - это раздел на ж/диске моей актуальной системы. Чтобы вам определить свой раздел и изменить его в команде, выполните команду:
/home/vladimir - это имя моей Домашней папки . Измените vladimir на своё.
/JPG - это название папки в команде, которая будет создана а вашей Домашней папке , куда будут сохранены все восстановленные файлы, которое вы также можете изменить на своё.
Итак, выполняем команду и ждём окончания восстановления:
По окончании восстановления, откройте Домашнюю папку с правами администратора:
sudo nautilus
Вместо nautilus укажите название файлового менеджера своего дистрбутива (например: Linux Mint - nemo или сaja ; и т.п.).
Заключение. Хотелось бы заметить, что инструмент scalpel находит все файлы с указанным расширением, даже те, что были раньше на этом разделе, когда на нём когда-то были установлены другие операционные системы. Данная утилита также используется спецслужбами разных стран для поиска компромата пользователя компьютером в случае необходимости. Так что чем бы мы не удаляли файлы безвозвратно, они всё-равно оставляют свой след на ж/диске.
Только физическое уничтожение ж/диска избавит пользователя компьютером от компрометирующих файлов .