Контакты

Linux восстановление данных с диска. Восстанавливаем удаленные файлы. Починка файловых систем

Неприятности случаются чаще, чем хотелось бы. Одной из них является удаление файла с важными данными. Причем в Unix, считается, что он отправляется в небытие. К сожалению, действительно, восстановление удаленных файлов в Unix не столь простая задача, как в Windows с ее привычной корзиной для удаленных файлов и многочисленными утилитами от сторонних поставщиков (к примеру, Norton Utilities). Это связано с особенностями архитектуры файловых систем
Unix. ОС Linux более широко трактует понятие файла. Под файлом понимается любой объект, имеющий имя в файловой системе. Одним из таких объектов является каталог. В каталоге хранится как имя файла, так и дополнительная информация о файле - его размер, информация о владельце файла, местоположение на диске, дата создания, дата последней модификации, права доступа и много другое. Причем для эффективности, дополнительную информацию выносят в специальную структуру, а в каталоге оставляют только ссылку на эту структуру. При удалении файла эта дополнительная информация физически не удаляется с диска, а лишь отмечаются как свободные соответствующие блоки. Поэтому существует потенциальная возможность восстановления, удаленного файла, пока на место его расположения ничего не записывалось. Я попытаюсь предложить алгоритм действий при возникновении такой неприятности.

Прекращение дальнейшей работы.

Сразу после того, как вы осознали, что произошло нечто ужасное, прекратите дальнейшую работу на разделе диска с удаленным файлом. Естественно прекратить работу должны не только вы, но и все остальные пользователи, вошедшие в систему. Предпримите меры, чтоб больше никто не мог зайти в систему, пока вы будете заниматься восстановлением файла (например, с помощью /etc/nologin). Главное - не допустить перезапись ранее используемых удаленным файлом дисковых блоков другими процессами. Вероятность этого существенно возрастает, если раздел почти заполнен.

Сам себе некрофил.

Рассмотрим два варианта восстановления. Один достаточно универсальный, применим, скорее всего, в любой системе Unix. Второй - заточен под работу с файловой системой Ext2
Linux.

Восстановление файлов с известным содержимым

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

# df -k//export
File system Kbytes used avail capacity Mounted on
/dev/dsk/c0t3d0s0 122070 19512 102558 16% /
/dev/dsk/c1t0d0s0 17592638 14425963 3166675 82% /export
# dd if=/dev/dsk/c0t3d0s0 of=/export/recover.dsk
263077+0 records in
263077+0 records out
# ls -l
-rw-r-r-- 1 root other 134701056 Jul 1 16:54 recover.dsk

* запускаем команду cat с ключом -n (вывод номеров строк), вывод которой перенаправляем утилите fgrep, которая, осуществив поиск по заданному шаблону, отсечет все лишнее

# cat -n recover.dsk | fgrep "root:x:0:1"
200601 root:x:0:1:Super-User:/:/sbin/sh
202108 root:x:0:1:Super-User:/:/sbin/sh

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

* выведем некоторое количество строк после найденной
# fgrep -A10 "root:x:0:1" recover.dsk > passwd
# cat passwd
root:x:0:1:Super-User:/:/sbin/sh
daemon:x:1:1::/:
bin:x:2:2::/usr/bin:
...

ключи -A<число строк> и -B<число строк> утилиты fgrep позволяют выводить несколько строк, расположенных после (after) и до (before) найденной по шаблону строки. Если вы сможете получить весь свой файл за один шаг - то вам крупно повезло. Но, к сожалению, файлы обычно фрагментированы, и чем больше размер файла, тем выше вероятность фрагментации и больше самих фрагментов. Поэтому, скорее всего, придется повторять описанную процедуру, используя различные шаблоны и объединяя полученные части. Сложно бывает понять, какая из версий файла, сохранившихся на диске, последняя. Это определяется, только просмотром содержимого восстановленного файла. А значит, вам придется восстанавливать все версии файла. Довольно нудно, но эффективно.

Восстановление файлов в Linux Ext2

Этот метод применяется в случае удаления командой rm или функцией unlink и не требует при восстановлении знания содержимого удаленного файла. Для работы нам потребуется отладчик файловой системы debugfs довольно мощная утилита, применяемая обычно для проверки и изменения файловой системы и предоставляющая непосредственный доступ к файловой системе. Нам потребуются три ее команды:

  • lsdel - вывод всех удаленных индексных дескрипторов в данной файловой системе
  • cat - просмотр содержимого, соответствующего дескриптору
  • dump - восстановление файла

Запускаем debugfs в требуемом разделе:

На приглашение вводим команду lsdel(чашка кофе не помешает, поскольку системе потребуется время на просмотр всего раздела):

debugfs: lsdel
Inode Owner Mode Size Blocks Time deleted
723300 1000 100664 27018 2/ 7 Mon May 20 19:08:17 2002
723301 1000 100444 1671 1/ 7 Tue May 20 19:08:17 2002
. . . . . . . . . . . . . . . . . . . . . . . . . . . .
944887 1037 100600 597 1/ 1 Sun Jan 26 20:05:00 2003
717281 1000 100400 1 1/ 1 Sun Jan 26 20:05:13 2003
327101 1000 100644 15 1/ 1 Sun Jan 26 20:07:06 2003

Лучше сразу перенаправить вывод в файл, введя команду:

#echo lsdel | debugfs /dev/hda6 > /tmp/lsdel-output

Если с момента удаления не было операций с разделом, то интересующие нас данные будут в конце списка. Посмотрим содержимое, соответствующее последнему дескриптору, набрав команду:

debugfs: cat <327101>
my_very_important_data

Удаленный файл найден, он содержал единственную строку. Команда dump восстанавливает файл, записывая его на диск под именем
my_recovered_file:

debugfs: dump -p <327101> /tmp/my_recovered_file

ключ -p указывает на то, что у файла должны остаться прежними владелец, группа и права доступа.

Восстановление группы файлов в Linux Ext2

Для восстановления группы файлов, целесообразно воспользоваться утилитой Тома Пайка
. Установка стандартна:

# tar zxf recover-1.3.tar.gz
# cd recover-1.3
# make
# make install

По умолчанию утилита устанавливается в систему каталогов с корнем /usr. Если надо установить в другое место - читайте ReadMe. Во время работы recover задав несколько простых вопросов, типа: кто является владельцем файлов, когда эти файлы были удалены, каков приблизительный размер этих файлов, запускает debugfs, и восстанавливает соответствующие заданному критерию индексные дескрипторы, помещая их в каталог, указанный пользователем. К сожалению, имена файлов не подлежат восстановлению. Восстановленные файлы получают имена, состоящие из префикса dump и последующего номера индексного дескриптора.

А что же мы восстановили?

Для идентификации восстановленных файлов используем две утилиты strings и file. Первая отображает последовательность символов ASCII, извлекая ее из указанного файла, вторая - выясняет тип файла (например, является ли он архивом или, скажем, файлом
PostScript).

Запускаем утилиту file:

# file *
dump39788: directory
dump98008: PGP armored text signed message
dump80154: gzip compressed data, deflated, last modified: Sun Jan 28 03:31:21 2001, os: Unix
dump73290: ASCII text
dump67095: ?diff? output text
dump72945: JPEG file
dump9773: MPEG 1.0 layer 3 audio stream data, 128 kBit/s
dump8176: ASCII C program text
dump58764: Bourne shell script text executable
dump3223: troff or preprocessor input text

Можно несколько автоматизировать процесс, используя простейшие сценарии наподобие следующего, добавляющего расширение к текстовым файлам программ на языке С:

# for i in ?file * | grep ? ASCII C program text? | \awk -F: ?{print $1}??;
do mv $i $i.c; done

После определения типа файлов попытаемся идентифицировать каждый файл. Для тех, что содержат текст, код на С, звук или изображение можно открыть соответствующими программами и попытаться угадать первоначальное имя. Двоичные файлы, например исполняемые файлы, библиотеки или файлы баз данных, идентифицировать гораздо труднее. И если исполняемые файлы или библиотеки проще не идентифицировать, а просто переустановить недостающие, то с базами данных придется повозиться. В этом случае придется применить утилиту strings, выведя на экран все текстовые строки ASCII, содержащиеся в файле.

# strings dump44768

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

Заключение

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

Ext2/3/4FS (созданные в Linux или другой ОС), FAT12, FAT16, FAT32, NTFS, NTFS5 (созданные или измененные в Windows 2000/XP/2003/Vista/7/8), exFAT, ReFS, APFS, HFS+, HFSX, HFS и UFS1, UFS2, UFS BigEndian (использующиеся в ОС FreeBSD, OpenBSD и NetBSD).

Поддержка стандартных уровней RAID: набор томов, 0, 1, 4, 5, 6. Поддержка вложенных и нестандартных уровней RAID: 10(1+0), 1E, 5E, 5EE, 6E. Поддержка задержки контроля четности для всех соответствующих уровней RAID. Поддержка пользовательских схем RAID.

Автоматическое распознавание параметров RAID. R-Studio способна распознавать все параметры для RAID 5 и 6. Это позволяет пользователю решить одну из наиболее трудных задач при восстановлении RAID - определение его параметров.

Новый улучшеный алгоритм для восстановления файлов по их сигнатурам: данная функция позволяет распознать типовые характеристики структур распространенных типов файлов и восстановить данные с устройств, на которых файловая система повреждена или неизвестна (HDD, CD, DVD, дискет, USB дисков, ZIP дисков, устройств флеш-памяти (Compact Flash Card, memory sticks) и других съемных носителей).

Пользовательские известные типы файлов. Пользователь может создавать и добавлять в состав R-Studio новые типы файлов любой степени сложности для их точной идентификации.

Поддерживаемые Операционные Системы: файлы могут быть восстановлены , на которых установлены ОС Win2000, XP, Vista, Win7, Win8, Mac OS X или Linux и определенные ОС платформы UNIX.

Почти все файлы R-Studio (образы, информация о сканировании, журналы и т.д.) могут быть сохранены и загружены по сети.

Оптимизация процесса восстановления данных: для повышения скорости восстановления и уменьшения количества данных передаваемых по сети процесс анализа и восстановления файлов выполняется на обслуживаемом компьютере с поврежденными/удаленными дисками. Также восстановленные файлы можно сохранить на диске того же самого компьютера.

Создание файла-образа: при помощи R-Studio можно создать файл-образ целого физического диска, логического диска или раздела. Такие образы являются точными копиями объектов и совместимы со всеми предыдущими версиями R-Studio.

Дополнительные возможности при создании файла-образа (другой формат файла-образа): образы могут быть разделены на неколько частей, сжаты и защищены паролем. Они совместимы только с текущими версиями R-Studio и с программой R-Drive Image.

Создавать образ и сканировать копируемые данные можно одновременно.

Модуль копирования диска: возможно побайтное копирование любого объекта панели Диски (Drives), а также копирование разделов и жестких дисков с изменением их параметров.

Шестнадцатиричный дисковый и файловый редактор: поддерживает хранение нерезидентного атрибута файла NTFS. Позволяет анализировать данные и представлять их в соответствии с различными шаблонами данных (в т.ч. пользовательскими). Также показываются файлы, расположенные в конкретных секторах.

Загрузочное устройство R-Studio Emergency. R-Studio Emergency запускается с внешнего USB диска, CD/DVD или комплекта дискет. Это весьма полезно тогда, когда необходимо восстановить данные с компьютера, который не загружается по причине повреждения файловой системы.

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

Мониторинг параметров S.M.A.R.T. R-Studio может отображать параметры S.M.A.R.T. (Self-Monitoring, Analysis and Reporting Technology) для жестких дисков которые показывают состояние их аппаратной части и предсказывать их возможные отказы. Нужно избегать любую дополнительную нагрузку на такие диски если появляются предупреждения от системы S.M.A.R.T. Иконки жестких дисков в Drive View (панель Диски) используются для показа общего состояния S.M.A.R.T. для дисков.

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

И так любителям rm -rf посвящается:

Во первых, самое главное, никто не гарантирует, что Scalpel сможет восстановить ваши файлы, но шансы на это есть.

Установка (так как на испытуемой машине стоит Ubuntu, то рассказывать буду про нее):

sudo apt-get install scalpel

Перед использованием Scalpel, отредактируем файл настроек:
sudo nano /etc/scalpel/scalpel.conf

В нем нужно указать файлы, какого типа мы будем восстанавливать (по умолчанию не один тип не выбран). Я выбрал для восстановления файлы типа doc и pdf:

doc y 10000000 \xd0\xcf\x11\xe0\xa1\xb1\x1a\xe1\x00\x00 \xd0\xcf\x11\xe0\xa1\xb1\x1a\xe1\x00\x00 NEXT
doc y 10000000 \xd0\xcf\x11\xe0\xa1\xb1

pdf y 5000000%PDF %EOF\x0d REVERSE
pdf y 5000000%PDF %EOF\x0a REVERSE

Теперь можно запускать восстановление:

scalpel /dev/sda1 -o output

-o показывает директорию куда будут складывать восстановленные файлы, если директория с таким имене уже есть (и не пуста) Scalpel не запустится.
/dev/sda1 - собственно том, который будем шерстить на предмет утерянных файлов.
Список можно посмотреть с помощью команды mount:
username@host:~$ mount
/dev/sda1 on / type ext3 (rw, relatime, errors=remount-ro)
proc on /proc type proc (rw, noexec, nosuid, nodev)
/sys on /sys type sysfs (rw, noexec, nosuid, nodev)
varrun on /var/run type tmpfs (rw, noexec, nosuid, nodev, mode=0755)
udev on /dev type tmpfs (rw, mode=0755)
devshm on /dev/shm type tmpfs (rw)
devpts on /dev/pts type devpts (rw, gid=5, mode=620)
lrm on /lib/modules/2.6.24–21-generic/volatile type tmpfs (rw)
/dev/sda2 on /home type ext3 (rw, relatime)

После отработки переходим в директорию output и смотрим что там есть:

username@host:~/output$ ls -l
-rw-r--r-- 1 root root 28189 2009–03–24 14:42 audit.txt
drwxr-xr-x 2 root root 4096 2009–03–24 14:42 doc-3–0
drwxr-xr-x 2 root root 4096 2009–03–24 14:42 doc-3–1
drwxr-xr-x 2 root root 4096 2009–03–24 14:42 doc-3–2
drwxr-xr-x 2 root root 4096 2009–03–24 14:42 doc-4–0

drwxr-xr-x 2 root root 4096 2009–03–24 14:42 pdf-5–0
drwxr-xr-x 2 root root 4096 2009–03–24 14:42 pdf-6–0

В файле audit.txt хранится инофмация о проведеном восстановлении:

username@host:~/output$ cat audit.txt

Scalpel version 1.60 audit file
Started at Tue Mar 24 14:16:04 2009
Command line:
scalpel /dev/sda1 -o output

Output directory: /home/username/output
Configuration file: /etc/scalpel/scalpel.conf

Opening target "/dev/sda1»

The following files were carved:
File Start Chop Length Extracted From
00053045.doc 183664640 YES 10000000 sda1
00053046.doc 183971840 YES 10000000 sda1

00050372.doc 203272192 NO 208896 sda1
00050373.doc 203481088 NO 229376 sda1

Completed at Tue Mar 24 14:42:41 2009

Смотрим во вложенные каталоги и видим (если повезет) наши файлы:

username@host:~/output/doc-3–0$ ls -l
total 25564
-rw-r--r-- 1 root root 307200 2009–03–24 14:42 00050348.doc
-rw-r--r-- 1 root root 40960 2009–03–24 14:42 00050349.doc
-rw-r--r-- 1 root root 4354 2009–03–24 14:42 00050350.doc
-rw-r--r-- 1 root root 466686 2009–03–24 14:42 00050351.doc
-rw-r--r-- 1 root root 176128 2009–03–24 14:42 00050352.doc

Источник - HowtoForge (вольный перевод).

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

Scalpel умеет работать с фаловыми системами FAT, NTFS, ext 2/3, то есть восстанавливать данные можно и с win-разделов.

И напоследок, лучших способ восстановить очень важные файлы это:
1. Делать бекапы.
2. Очень хорошо думать перед удалением.

Удачного восстановления данных!

В.Костромин (под ред. Vanderboot)

На днях, в ходе небольшой ревизии содержимого своего сайта я наткнулся на перевод статьи "10 способов восстановления удаленных файлов в linux ", исходный вариант которой датирован 21 июня 2007 года. Перечитав статью и попытавшись пройти по приведенным в ней ссылкам, я обнаружил, что некоторые ссылки вообще не работают (сайты разработчиков в сети пропали), а некоторые из упомянутых в статье утилит давно не обновляются и не поддерживаются.

Возникла идея посмотреть, какие же средства восстановления случайно удаленных файлов существуют на настоящий момент. Полагаю, что интерес к средствам такого рода за прошедшие годы не пропал. Ведь начинающие пользователи Линукс (как, впрочем, и других операционных систем) часто попадают в ситуацию, когда по ошибке, вызванной неопытностью, удаляют какие-то файлы и тут же спохватываются, что удалили не то, что хотели. А может быть и вообще не хотели что-то удалять.

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

Сразу хочу предупредить, что все изложенное ниже мной лично не проверялось и основано только на сведениях, опубликованных на сайтах разработчиков или в статьях с описаниями соответствующих продуктов. Ну и, конечно, в статье рассматриваются только свободно распространяемые продукты. Если вас интересуют платные (проприетарные) продукты, вы без труда найдете их сами.

Итак, вот список утилит для восстановления потерянных данных , которые мне удалось разыскать (данные актуальны по состоянию на 10 ноября 2010 года).

  1. unrm - небольшая консольная утилита, которая при некоторых условиях, может восстановить почти 99% удаленных данных (похожа на утилиту undelete в DOS). Перед её использованием внимательно прочитайте файл FAQ и желательно Linux Ext2fs Undeletion Mini-HOWTO . Применение:
    unrm [-b (no block padding)][-e (every block)][-f fstype][-vW] device
  2. (gET iT i sAY) - средство восстановления файлов для файловых систем Ext2/Ext3. После установки могут быть восстановлены текущие файлы и новые созданные файлы в /root и /home. Утилита позволяет пользователям восстановить все удалённые файлы, восстанавливать файлы, принадлежащие указанному пользователю, выводить (dump) данные из местанахождения файлов и восстанавливать файлы определённого типа, например, текстовые или MP3. Имеется также анализатор, помогающий пользователям во время восстановления.
  3. ddrescue (в Ubuntu эта утилита называется gddrescue) Эта утилита копирует данные из файла или с аппаратного устройства, содержащего данные, в другое место, предпринимая при этом попытки исправить все имеющиеся ошибки чтения. Основные операции ddrescue выполняет в автоматическом режиме, заполняя параллельно файл протокола. Если имеется две или более копий поврежденных файлов, ddrescue способна полностью восстановить файл, устранив все ошибки.
    ddrescue устанавливает размер буфера ввода/вывода равным размеру сектора, так что ее можно использовать для посекторного восстановления данных с устройств.
  4. TestDisk - это мощная бесплатная программа для восстановления данных! Она была разработана в первую очередь, как инструмент восстановления утраченных разделов и/или восстановления загрузочной способности дисков, если эта проблема вызвана програмно, вирусами или ошибками человека (такими, как случайное удаление Таблицы Разделов). Восстановить Таблицы Разделов TestDisk-ом очень легко. Но TestDisk может также восстанавливать удаленные файлы на файловых системах FAT, NTFS и ext2; копировать файлы с удалённых FAT, NTFS и ext2/ext3/ext4 разделов. (Смотрите статью В.Симон, "Testdisk - восстановление таблицы разделов диска ").
  5. - консольная программа, позволяющая искать файлы на дисках или их образах по hex-данным, характерным заголовкам и окончаниям. Программа прочёсывает файлы на предмет совпадения заранее определённых hex-кодов (сигнатур), соответствующих наиболее распространённым форматам файлов. После чего экстрагирует их из диска/образа и складывает в каталог, вместе с подробным отчётом о том, чего, сколько и откуда было восстановлено. Типы файлов, которые foremost может сразу восстановить: jpg, gif, png, bmp, avi, exe, mpg, wav, riff, wmv, mov, pdf, ole, doc, zip, rar, htm, cpp. Есть возможность добавлять свои форматы (в конфигурационном файле /etc/foremost.conf), о которых программа не знает.
    Статьи: " Восстановление удаленных файлов при помощи foremost ", " Восстановление удалённых файлов в ОС Linux ".
  6. R-Linux является бесплатной программой для восстановления файловых систем Ext2/Ext3/Ext4 FS, используемых в Linux и некоторых Unix-системах. Используемая в R-Linux Технология Сканирования и удобный в установке параметров интерфейс программы дают пользователю абсолютный контроль над процессом восстановления данных. R-Linux позволяет скопировать информацию и создать образ целого диска или его части, а уже затем работать с файлом образа, сохраненным на другом носителе, как с оригинальным диском. R-Linux производит поиск файлов известных типов, используя типовые характеристики их структур, что позволяет пользователю искать и восстановить файлы с устройств, где файловая система неизвестна, - HD, CD, DVD, дискет, USB дисков, ZIP дисков и устройств флеш-памяти (Compact Flash Card, Memory Sticks). Однако, в программе отсутствует возможность восстановления данных по сети, а также функциональность по реконструкции дисковых массивов и восстановления с них данных.
  7. DMDE - DM Disk Editor and Data Recovery Software. Программа для редактирования дисков и восстановления данных. В бесплатной версии доступны все функции дискового редактора, управления разделами и восстановления файлов, за исключением возможности группового восстановления файлов и каталогов; полная версия позволяет восстанавливать группы файлов и директории с сохранением структуры каталогов.
  8. PhotoRec - это утилита, входящая в состав пакета TestDisk. Предназначена для восстановления испорченных файлов с карт памяти цифровых фотоаппаратов (CompactFlash, Secure Digital, SmartMedia, Memory Stick, Microdrive, MMC), USB flash-дисков, жестких дисков и CD/DVD. Восстанавливает файлы большинства распространенных графических форматов, включая JPEG, аудио-файлы, включая MP3, файлы документов в форматах Microsoft Office, PDF и HTML, а также архивы, включая ZIP. Может работать с файловыми системами ext2, ext3, FAT, NTFS и HFS+, причем способна восстановить графические файлы даже в том случае, когда файловая система повреждена или отформатирована.
    Может работать под операционными систмами Linux, DOS, Windows, FreeBSD, NetBSD, OpenBSD, Mac OS X и SunOS
  9. Mondo Rescue . Основное назначение этой программы - создание резервных копий данных. Она может создавать резервные копии на магнитных лентах, CD, на удаленных носителях по NFS или в виде ISO-образов на локальных дисках. Но в случае повреждения данных программа позволяет восстановить их полностью или частично, даже если ваш жесткий диск недоступен обычными средствами.
    Mondo запускается на всех основных дистрибутивах Linux, поддерживает LVM, RAID, ext2, ext3, JFS, XFS, ReiserFS, VFAT и другие файловые системы. Может восстанавливать геометрию диска, обеспечивать миграцию данных на RAID-массивы, проверять целостность файловой системы компьютера. Кроме того, позволяет проводить реструктуризацию диска, уменьшать/увеличивать разделы, переназначать устройства, добавлять жесткие диски.
  10. - инструмент для восстановления данных, который пытается извлечь данные из доступных, но проблематичных носителей (с поврежденными секторами). В качестве источника данных могут выступать внешние устройства (такие как CD, DVD и Blu-ray) и разделы жеских дисков. Программа обладает тем преимуществом, что продолжает работу даже тогда, когда другие средства прекращают ее из-за ошибок ввода/вывода. Обычные средства копирования, такие как cat, cp или dd не позволяют создать образ диска или съемного носителя, если произошел сбой при чтении какого-то сектора.
  11. The Sleuth Kit (TSK) - набор программ (fls, icat, ffind, ifind, mmls, fsstat, etc.) для проведения криминалистического анализа файловых систем. TSK - совокупность UNIX инструментальных средств командной строки, которые могут анализировать файловые системы NTFS, FAT, FFS, EXT2FS, и EXT3FS. TSK читает и обрабатывает структуры файловой системы самостоятельно, поэтому не требуется поддержка файловой системы операционной системой.
    Статьи: Восстановление спрятанных или потерянных данных .
  12. Scalpel - это средство быстрого восстановления файлов. Уникальность данного ПО заключается в том, что оно не зависит от файловой системы. Программа ищет по базе данных начало и конец файлов известных форматов и пытается найти их на диске. Поэтому восстановление возможно как с FATx, NTFS, ext2/3, так и с "голых" (raw) разделов.
    Статьи: Восстановление удаленных файлов с помощью Scalpel

Кроме перечисленных в некоторых статьях упоминаются также утилиты 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 сможет найти необходимые средства и инструменты для решения своих проблем.

Если PhotoRec не принесла результатов, то попробуйте другие инструменты.

Использование Scalpel

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

Установка Scalpel в Ubuntu, Linux Mint и Debian

Откройте терминал и скопируйте в него команду:

Sudo apt-get install scalpel

После завершения установки scalpel, вам нужно найти файл scalpel.conf :

Locate scalpel.conf

Обычно он размещается в /etc/scalpel/scalpel.conf или /etc/scalpel.conf. Откройте этот файл текстовым редактором, вы увидите, что все строки закомментированы (начинаются с # ). Т.е. перед запуском scalpel вам нужно раскомментировать форматы файлов, которые вы хотите восстановить. Если раскомментировать весь файл, то потребуется много времени и появится много ложных результатов.

Допустим, я хочу восстановить только файлы.jpg, тогда я просто раскомментирую секцию jpg в конфигурационном файле scalpel.

# GIF and JPG files (very common) gif y 5000000 \x47\x49\x46\x38\x37\x61 \x00\x3b gif y 5000000 \x47\x49\x46\x38\x39\x61 \x00\x3b jpg y 200000000 \xff\xd8\xff\xe0\x00\x10 \xff\xd9

В командной строке вам нужно указать расположение удалённых файлов, которые вы пытаетесь восстановить (в данном примере это /dev/sda1 ):

Sudo scalpel /dev/sda1-o output

Переключатель -o указывает на директорию вывода, где вы хотите сохранить ваши восстановленные файлы. Перед запуском программы убедитесь, что это директория является пустой, в противном случае вы получите ошибку. Вывод команды:

Scalpel version 1.60 Written by Golden G. Richard III, based on Foremost 0.69. Opening target "/dev/sda1" Image file pass 1/2. /dev/sda1: 6.1% |***** | 6.6 GB 39:16 ETA

Как вы видите, теперь scalpel выполняет свои действия, процесс восстановления удалённых файлов занимает время, которое зависит от объёма диска, который вы сканируете, и от скоросоти машины.

Использование extundelete

Использование foremost

Удалён файл, открытый в программе

Если вы считаете, что удалённый файл ещё открыт в какой-то программе (например, фильм, который в настоящий момент проигрывается медиа плеером) и вы знаете имя файла, но для начала попробуйте эту процедуру:

Lsof|grep "путь/до/файла" progname 5559 user 22r REG 8,5 1282410 1294349 /path/to/file

Запоминаем номер во втором столбце, это 5559, и номер в четвёртой колонке, это 22. Тогда команда восстановления:

Cp /proc/5559/fd/22 restored.file

Если этот трюк не дал результата, то немедленно размонтируйте файловую систему с удалённым файлом или переведите её в режим только чтения.



Понравилась статья? Поделитесь ей