Программы для восстановления файлов на Ubuntu. Простой способ восстановить удаленные файлы Удаляются ли файлы после восстановления убунту

Краткое описание : В этой статье показано, как восстановить удаленные файлы в Linux с помощью инструмента командной строки Test Disk . Это простой в использовании инструмент, который практически любой может использовать для восстановления потерянных файлов в Ubuntu или других дистрибутивах Linux.

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

Но не переживайте все этапы горя, не волнуйтесь. И помните, что вы не одиноки; рано или поздно все это делают.

Кстати, вы знаете ? Мы уже писали об этом. Перейти можно по ссылке выше.

Но после фразы «Не волнуйся», вы счётчик: «Я просто удалил единственную копию моего резюме!» и что делать?

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

Как восстановить удаленные файлы в Linux

«Да, хорошо», вы говорите: «Я успокоюсь, зная, что мой файл «существует » в каком-то абстрактном смысле. Но насколько я заинтересован, если я не могу открыть, отредактировать или распечатать его, он не существует в каком-либо практическом смысле. То, что действительно помогло бы, было бы способом восстановления тех файлов которые были удалены с диска. И тот, который не требует лаборатории ИТ-экспертизы.

На самом деле, не волнуйтесь — вам не нужна лаборатория для восстановления удаленных файлов. Кроме того, если вы можете пройти мимо примитивного графического интерфейса, на самом деле это легко сделать! Я покажу вам, как использовать TestDisk для восстановления удаленных файлов.

Как восстановить удаленные файлы в Linux с помощью TestDisk

Позвольте мне привести упрощенный пример: я взял чистый флеш-диск, добавив несколько файлов, а затем удалил один. Теперь у моей системы есть функция, которая будет напрямую удалять файлы со съемных носителей, обходя «корзину» вообще; то есть, если я выберу «правый» щелчок по файлу, а затем выберите «удалить». Он по-прежнему представляет предупреждение, но один раз нажмите кнопку «Да», и файл исчез навсегда. Или похоже.

Но на этот раз я не понял этого ужасного чувства. И нет, не потому, что это приготовленный сценарий. Я знал, что все, что мне нужно было сделать, это открыть терминал типа «testdisk » и нажать «enter». Когда я впервые это сделал, у меня был один из моих «моментов Linux». Потому что, если у вас его нет — и я не … это говорит вам, как это получить! Просто введите «sudo apt install testdisk » и нажмите Enter, и вы получите его примерно через 10 секунд.

Шаг 1

Восстановление удаленных файлов Linux очень быстрым. Сначала вам нужно установить TestDisk. Большинство дистрибутивов Linux уже имеют этот инструмент в своем официальном репозитории. В Ubuntu и других дистрибутивах Linux на базе Ubuntu, таких как Linux Mint, элементарная ОС и т. Д., Вы можете использовать приведенную ниже команду для установки TestDisk:

sudo apt install testdisk

Пользователи Arch Linux могут установить его из AUR. Вы можете загрузить его для других дистрибутивов Linux по ссылке ниже:

Хотя я использую Ubuntu в этом уроке, это не значит, что восстановить только удаленные файлы в Ubuntu Linux. Инструкции, представленные здесь, также работают и для других дистрибутивов.

Шаг 2

Запустите TestDisk в терминале, используя следующую команду:

Шаг 3

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

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

Шаг 4

Теперь, в этот момент, если вам повезет, вы должны увидеть свой диск. И вы можете перейти к последним шагам. Но давайте предположим, что вы этого не сделали, у вас есть, скажем, машина с несколькими загрузками. В этом случае владельцы могут размываться, и Testdisk нуждается в вашем разрешении открыть их. Вы увидите что-то вроде этого:

Выберите «sudo» и введите свой пароль. Нажмите «ввести» и «введите» еще раз на следующем экране, чтобы создать другой файл журнала.

Шаг 5

На этот раз Testdisk отобразит все ваши диски. Клавиша со стрелкой к соответствующему диску и нажмите enter.

Шаг 6

Testdisk снова выбрал правильную настройку. Это имеет смысл, поскольку простое запоминающее устройство редко разделяется. Снова нажмите enter:

Шаг 7

Мы прошли основные пункты, если говорить про Восстановление удаленных файлов Linux. И, наконец, мы должны немного подумать. Если вы читаете первый экран, и я готов поспорить, что вы этого не сделали, эта программа предназначена не только для восстановления удаленных файлов. Это мощная дисковая утилита. Но если мы помним, что мы пытаемся сделать выбор, это довольно очевидно: мы не пытаемся исправить диск, мы пытаемся восстановить файл. Выберите «Дополнительно» и нажмите «Ввод».

Шаг 8

В нижней части страницы выберите «Undelete » и приготовьтесь увидеть ваш файл!

Шаг 9

Testdisk будет проверять файлы и создавать список удаленных файлов, выделенных красным цветом. Стрелка вниз и внимательно прочитайте варианты внизу.

Шаг 10

Опять же, имейте в виду, что Testdisk — это многофункциональный инструмент. Большинство из этих вариантов относятся к группам файлов; мы только хотим, чтобы наш файл который был удален вернулся! Так что нажмите «c».

Как вы можете видеть на табло, мы выиграли со счетом 1: 0. После нажатия «c» есть варианты, где вы можете захотеть восстановить файл, но по умолчанию используется ваша домашняя папка. И снова это, как правило, самое лучшее. Навигация в Testdisk немного сложнее, а перетаскивание после того, как факт — легкий ветерок.

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

Несколько советов по восстановлению удаленных файлов в Linux с помощью TestDisk

Во-первых, если вы окажетесь где-то, чего не хотите, нажмите «q» для выхода. Это не закроет программу, вместо этого она будет действовать как кнопка «назад» в программе с полномасштабным графическим интерфейсом и вернет вам страницу. И так же, как повторение кнопки «назад», в конечном итоге приведет вас к началу.

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

Наконец, Testdisk также может помочь вам восстановить файлы, которые стали недоступными по другим причинам. Фактически, именно поэтому я начал использовать программу в первую очередь. Я пытался сохранить файлы с поврежденного диска, который нельзя было сделать для загрузки. Обычно это просто вопрос о том, чтобы удалить упомянутый диск, подключив его к USB-адаптеру. Затем вы можете подключить его на другом ПК и скопировать файлы, когда захотите.

Но что, если диск отформатирован в LVM ? Это была моя проблема, потому что установленный LVM-накопитель не похож на обычную ОС Linux. Ни один из обычных файлов не появляется, и охота вокруг просто не помогает. Это, помимо прочего, связано с тем, что большинство файловых менеджеров Linux больше не могут читать файловые системы ext.2.

Тем не менее, после нескольких ложных запусков, я смог найти и сохранить недостающие файлы. Обратите внимание, однако, что последовательность шагов здесь будет немного отличаться, вам может потребоваться использовать «анализ» для Testdisk, чтобы понять дисковод, и вам может потребоваться немного подтолкнуть, чтобы найти «домашнюю» папку как только сделаете. Кроме того, файлы, которые вы ищете, не будут отображаться красным цветом, поскольку они никогда не были удалены в первую очередь. Но как только вы их найдете, процедура копирования в основном такая же.

С Testdisk и немного удачи, вы никогда не потеряете свои файлы и видео снова, так как вы всегда можете восстановить удаленные файлы в Linux .

Это руководство является инструкцией для новичков в мире дистрибутивов на базе всем известного ядра. Надеемся, что для вас Восстановление удаленных файлов Linux было быстрым.

Выводы

Восстановление удаленных файлов Linux является очень быстрым и понятным. Даже начинающий пользователь Linux сможет разобраться, с помощью нашего руководства. Если статья была для вас полезной то, делитесь ею на своих страницах в социальных сетях Google+, Facebook, Twitter, ВКонтакте и Одноклассники. Это нам очень поможет. Давайте развивать наше сообщество вместе.

Также, если у вас остались вопросы по теме «Восстановление удаленных файлов Linux» - пишите их в форму комментариев.

Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter .

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

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

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

Восстановление удаленных фалов Linux

Существуют 2 варианта восстановления данных в системе Линукс – непосредственно с жесткого диска системы и с флешки.

Восстановление данных жесткого диска Linux

Файловые системы, используемые во всех ОС, не только в Unix-подобных, организованы таким образом, что не дают удаленному файлу пропасть бесследно. То есть, если файл был создан и находился на жестком диске, значит, он занимал некоторое пространство и был внесен в список ссылок среди других объектов.

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

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

Восстановление данных с флешки Linux

Так как в Linux «Корзина» работает слегка иначе, чем в Windows, первым делом следует ее проверить. Удаленные обычным методом файлы, без очистки корзины после этого, хранятся именно там. Для восстановления достаточно подключить накопитель, зайти в корзину и восстановить объект.

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


Программы для восстановления файлов в Linux

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

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

Самая распространенная программа для работы с разделами в Linux. Однако не со всеми дистрибутивами она идет в комплекте. Не самый надежный помощник в подобных операциях, но попробовать ее, как вариант, стоит.


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

Scalpel Linux – небольшой инструмент, специализирующийся на восстановлении удаленных файлов с EXT4 разделов и других файловых систем. Он имеет в своем арсенале базу данных по типам ФС и о форматах данных, что делает его универсальным. Ведь во время сканирования он сверяет остатки записей на жестком диске или флешке с собственным списком, и при обнаружении совпадений приступает к восстановлению удаленных файлов Linux.

Установка и использование просты:


Более наглядно процесс можно увидеть здесь:

Восстановление данных Ubuntu с TestDisk

TestDisk также может помочь в восстановлении файлов из-под Linux, но несколько иначе. Дело в том, что данный софт нацелен не на извлечение данных с накопителей, а для тестирования и восстановления работоспособности созданных на них разделов.

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

Теперь же она поставляется совместно с TestDisk, и из-за такого объединения усилий конечная утилита считается лучшей среди программ для восстановления файлов Ubuntu. Чтобы избежать проблем по неопытности пользователя, во время основных настроек и манипуляций, утилита использует подход «все в системе только для чтения».

Определяя ошибки информации, TestDisk может воссоздать потерянные разделы в различных ФС, таких как, например, FAT, NTFS и EXT4. Даже если раздел ранее был удален, найдя его следы, программа сможет исправить зависимости, не позволяющие корректно обращаться к файлу. Программа доступна в официальном репозитории Canonical. Для того чтобы приступить к восстановлению данных с жесткого диска Ubuntu, нужно выполнить инструкцию:


Восстановление данных Линукс с Safecopy

Safecopy – простой инструмент для взаимодействия с разделами и данными. Он не помогает в восстановлении данных с флешки Ubuntu, однако сможет скопировать объекты с поврежденного носителя на здоровый. Ее преимущество состоит в полном игнорировании возникающих при считывании и копировании фалов ошибок. Что может лучшим образом сказаться на попытке сохранить мультимедийные файлы.

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

Для работы с программой нужно:


Как удалить файл на Ubuntu

Для того чтобы удалить файл в Ubuntu, есть много способов. Но также все зависит от того системный файл это или пользовательский. Понять это просто. Все, что находится до директории /home, – системные файлы, внутри же нее – пользовательские.

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

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

Заключение

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

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

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

Если вы случайно удалили нужный файл с некоторого раздела, следует как можно скорее перевести данный раздел в режим «только чтение» и исключить любые попытки записи на него.

Если вы по ошибке установили операционную систему, на диск/раздел с важными данными, то загружать систему с этого диска/раздела категорически не рекомендуется. Для дальнейней работы следует использовать LiveCD/USB или систему, загружаемую с другого диска/раздела.

Кроме того, для сохранения восстанавливаемых данных потребуется ещё один накопитель ёмкости, не меньшей исходного.

Чтобы снизить возможные потери информации при неудачной попытке восстановления, следует сделать полный дамп повреждённого тома (ФС, раздел, либо весь диск, в зависимости от того как располагались исходные данные) через dd или ddrescue на отдельный носитель и дальше экспериментировать с этим дампом:

sudo dd if =/ dev/ sdXY of =/ path/ to/ dump.img

testdisk

Нередко судьба подкидывает нам такое, что послезавтра сдавать диплом, а сегодня умер жесткий диск со всей информацией. В Linux стандартом де-факто в области восстановления данных является утилита testdisk. Однако нередко человек, впервые сталкиваясь с ней, находит ее для себя малопонятной и отказывается от нее, т.к. она не имеет графического интерфейса.

Многих новичков в Linux, привыкших к GUI программам в Windows, пугает использование консольных программ, требующих ввода нужных команд с малоизвестными им аргументами и ключами. Нередко мануалы к такому софту оказываются или на английском языке, или достаточно сложны, чтобы разобраться с первого взгляда, и человек отступается от своей цели. Нередко ему снова приходится обращаться к Windows, искать там «надежную и понятную» (GUI) программу, затрачивая на это уйму времени, вместо того, чтобы убрать у себя табу на использование консоли.

Специально для написания статьи я нашел старую ненужную флешку, записал на нее немного музыки и видео. После этого в GParted изменялись размеры и положение раздела (при этом флешка выдергивалась из компа в самый кульминационный момент), ну и напоследок все было добито созданием новой таблицы разделов.

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

1. Для начала нужно установить testdisk. Для этого в консоли выполняем:

sudo apt-get install testdisk

2. Запускаем 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

Установить 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

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

foremost - поиск и восстановление данных по сигнатурам.

Установка:

sudo apt-get install foremost

Пример использования для восстановления изображений с диска /dev/sdb в каталог ~/out_dir:

sudo foremost -t jpg,gif,png,bmp -i / dev/ sdb -o ~/ out_dir

GUI для Foremost, можно скачать на дружественном форуме.

R-Studio

Утилита является платной. Тем не менее, судя по нескольким топикам на форуме, в тяжёлых случаях она может дать лучший результат, чем testdisk.

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

Scalpel

Установка:

sudo apt install scalpel

Scalpel анализирует файлы по 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 для сохранения файлов обязательно должна быть пустой.