Свой среди чужих: восстанавливаем данные с FAT, NTFS и UFS, не покидая Linux. Как восстановить удаленные файлы на Linux Восстановление данных в linux

  • 25.01.2022

Иногда так случается, что мы удаляем, как казалось бы ненужные файлы (изображения, видео, текстовые документы и пр.), а потом вдруг сожалеем об этом, т.к. среди удалённых, оказались нужные. Хорошо если мы удаляем файлы в Корзину , откуда очень просто восстановить, нажав сочетание клавиш 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 :


Вы можете выбрать любой другой файл. Сохраните изменённый файл (Ctrl+S ) и закройте редактор.

И вот теперь нужно выполнить терминальную команду с инструментом
scalpel для поиска утраченных файлов:

sudo scalpel /dev/sda8 -o /home/vladimir /JPG /output/

sda8 - это раздел на ж/диске моей актуальной системы. Чтобы вам определить свой раздел и изменить его в команде, выполните команду:


В терминале должны отобразиться все разделы ж/диска. Как показано на снимке стрелкой, косой чертой или слешем отмечена точка монтирования моего раздела - sda8 , который я ввёл в команду. У вас должен быть отмечен свой.

/home/vladimir - это имя моей Домашней папки . Измените vladimir на своё.

/JPG - это название папки в команде, которая будет создана а вашей Домашней папке , куда будут сохранены все восстановленные файлы, которое вы также можете изменить на своё.

Итак, выполняем команду и ждём окончания восстановления:


Как видно на снимке, процесс поиска и восстановления файлов изображений с расширением JPG на моём компьютере будет происходить за два шага, а также время, в зависимости от объёма указанного раздела (ГБ) и количества изображений, находящихся на нём.
Сразу хочу сказать, что процесс не быстрый.

По окончании восстановления, откройте Домашнюю папку с правами администратора:

sudo nautilus

Вместо nautilus укажите название файлового менеджера своего дистрбутива (например: Linux Mint - nemo или сaja ; и т.п.).


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

Заключение. Хотелось бы заметить, что инструмент scalpel находит все файлы с указанным расширением, даже те, что были раньше на этом разделе, когда на нём когда-то были установлены другие операционные системы. Данная утилита также используется спецслужбами разных стран для поиска компромата пользователя компьютером в случае необходимости. Так что чем бы мы не удаляли файлы безвозвратно, они всё-равно оставляют свой след на ж/диске.

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

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. для дисков.

Думаю, каждый из нас с вами сталкивался с проблемой, когда из-за глюка прошивки фотоаппарата, камеры, кпк, смартфона или просто из-за особого устройства /dev/hands карточка была отформатирована, данные были удалены. В свое время данную проблему я решал достаточно просто, используя Portable версию Ontrack Easy Recovery, но так как уже несколько лет являюсь пользователем linux систем, то использование данного нелицензионнного приложения через wine показалось не совсем кошерным, к тому же жажда исследований и приключений требовала найти бесплатный родной аналог для linux систем. Исследования закончились, даже не успев начаться, так как первая строчка в поиске Google привела к набору утилит TestDisk, о которых я расскажу далее подробнее.

И так, TestDist состоит из двух утилит:
testdisk и photorec; Официальный сайт утилит .
Краткое описание:
testdisk – мощная утилита, разработанная для восстановления удаленных разделов и для восстановления загрузочных записей mbr после программных ошибок, действий некоторых вирусов, человеческих ошибок (например, когда раздел был просто удален).
Возможности testdisk :
Исправление таблицы разделов; восстановление удаленных разделов Восстановление FAT32 загрузочного сектора из бэкапа Перестроение FAT12/FAT16/FAT32 загрузочного сектора Исправление FAT tables
Перестроение NTFS загрузочного сектора Восстановление NTFS загрузочного сектора из бэкапа Исправление MFT используя MFT зеркало Нахождение ext2/ext3 Backup SuperBlock
Восстановление удаленных файлов в FAT, NTFS and ext2 файловых системах
Копирование файлов из FAT, NTFS and ext2/ext3 удаленных разделов.

photorec – утилита восстановления данных таких, как файлы видео, документы, архивы с жестких дисков и cdrom дисков, а также фото (поэтому название программы Photo Recovery) со встроенной памяти камер. Список типов файлов для восстановления весьма внушителен и с ним можно ознакомиться .

Обе утилиты open source, распространяются под лицензией GNU General Public License (GPL). Имеются в наличие версии для linux, unix, а также для windows платформ.

В большинстве линукс дистрибутивов уже включены в состав стандартного репозитория. Для debian-based дистрибутивов установка командой:

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

В моем случае это будет /dev/sdb .
Далее выбираем тип таблицы разделов на диске, для большинства пользователей это будет Intel/PC.

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

А затем на другом диске выбираем директорию, куда утилита сохранит восстановленные файлы.

Далее нажимаем Y и программа начинает свою работу. Для 32Мб карточки ей потребовалось меньше минуты.
Теперь о результатах работы:
Честно говоря, по началу я весьма сомневался в способностях программы. Но открыв директорию с результатами работы утилиты, я с удивлением обнаружил, что были восстановлены не только нужные недавно сделанные 10 фотографий, но и еще 110 других, самая ранняя из которых была сделана 3 года назад и не была перезаписана при дальнейшем использовании карточки, хотя форматировалась карта неоднократно.
В итоге имеем очередную победу добра над злом, счастливую улыбку обладателя фотоаппарата, еще один факт доказательства того, что существует море полезных и качественных opensource утилит.

Если 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

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

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

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