31.08.2023

Как восстановить удаленные файлы на Linux. Возвращение из небытия: восстановление файлов в Linux Восстановление файла из копии linux


Часто ли вы сталкивались с ситуациями когда нужно было восстановить данные?

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

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

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

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

Как восстановить данные и какими приложениями воспользоваться?

Как восстановить утерянные данные с помощью TestDisk

TestDisk - это мощная бесплатная программа для восстановления данных! Она была разработана в первую очередь, что бы помочь восстановить утраченные разделы и/или восстановить загрузочную способность дисков если эта проблема вызвана программно, вирусами или ошибками человека (таких как случайное удаление Таблицы Разделов). Восстановить Таблицы Разделов с TestDisk очень легко.

Что может TestDisk:

  • Исправлять таблицу разделов, восстанавливать удаленные разделы;
  • Восстанавливать загрузочный сектор FAT32 из резервной копии;
  • Перестраивать (реконструировать) загрузочный сектор FAT12/FAT16/FAT32;
  • Исправлять таблицу FAT;
  • Перестраивать (реконструировать) загрузочный сектор NTFS;
  • Восстанавливать загрузочный сектор NTFS из резервной копии;
  • Восстанавливать MFT использую MFT зеркало;
  • Определять резервный SuperBlock ext2/ext3/ext4;
  • Восстанавливать удаленные файлы на файловых системах FAT, NTFS and ext2;
  • Копировать файлы с удалённых FAT, NTFS and ext2/ext3/ext4 разделов.
  • TestDisk подойдёт и для новичков, и для экспертов. Для тех, кто знает мало или вообще ничего не знает о методах восстановления данных, 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, очень проста в освоении, ничего сложного, главное внимательность.

Как восстановить данные с помощью утилиты Extundelete

Хорошая утилита, позволяет восстановить удаленные файлы в файловых системах 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/Restore-directory /<путь_к_директории>

Дату необходимо указывать в UNIX-времени:

Date -d "March 28 19:34" +%s

Восстановление данных с помощью утилиты GParted

Да, это мощная утилита для управления дисками, аналог Acronics, ничем не хуже и так же позволяет восстанавливать данные с дисков, чтобы можно было восстанавливать, прежде всего, давайте установим саму утилиту GParted , выполните в терминале команду:

Sudo apt install gparted

после нужно установить дополнительную утилиту к GParted чтобы можно было пользоваться функционалом восстановления данных, в терминале выполните команду:

Sudo apt install gpart

готово. Давайте запустим GParted, перейдите в меню Ubuntu - Системные утилиты - Администрирование - GParted , либо ищем с помощью поиска в Dash. После запуска вы увидите ваши текущие диски, выбираем необходимый, далее переходим в меню Устройство - Попробовать восстановить данные:

жмем кнопку "Ok " и ждем завершения сканирования.

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

Как восстановить фото с помощью утилиты Foremost

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

Scalpel - это набор инструментов для быстрого восстановления файлов. Уникальная утилита, уникальность ее в том, что она никак не зависит от файловой системы. Утилита ищет по базе данных файлы файлы всех известных форматов и пытается найти их на диске по определенным своим шаблонам просматривая начало и конец файла. Может помочь в восстановлении в таких файловых системах как FATx, NTFS, ext2/3, так же с "RAW" разделов.

Установим утилиту, выполните в терминале команду:

sudo apt install scalpel

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

Пример использования Scalpel:

sudo scalpel file.iso -o dir_recovery

директория для восстановления "dir_recovery " обязательно должна быть пустой, file.iso это как пример данных которые нам нужно восстановить, мы знаем, что у нас был такой образ с точно таким же названием, мы можем указать не только файл напрямую, но можем и указать полный путь к устройству откуда нужно восстановить, вида /dev/sdb1/directory_name/directory_name2/filename .

Как восстановить данные с помощью R-Linux

R-Linux является бесплатной программой для восстановления файловых систем Ext2/Ext3/Ext4 FS, используемых в Linux и некоторых Unix операционных системах (ОС). Используемая в R-Linux Технология Сканирования и удобный в установке параметров интерфейс программы дают пользователю абсолютный контроль над процессом восстановления данных. Программа восстанавливает данные с существующих логических дисков, даже если записи файлов утрачены. Однако, в программе отсутствует возможность восстановления данных по сети, а также функциональность по реконструкции дисковых массивов и восстановления с них данных.

Есть два варианта утилиты R-Linux: для ОС Linux и для ОС Windows. Они имеют одинаковую функциональность, разница состоит лишь в ОС хоста.

R-Linux восстанавливает следующие файлы:

  • Удаленные в результате вирусной атаки, сбоя питания или повреждения системы;
  • С поврежденных или удаленных разделов, после форматирования раздела, даже в раздел с другой файловой системой;
  • Когда структура раздела на диске была изменена или повреждена. В этом случае R-Linux может отсканировать жесткий диск, найти ранее удаленный или поврежденный раздел, а уже затем восстановить данные с найденного раздела.
  • С жестких дисков, на которых имеется большое число поврежденных секторов. R-Linux позволяет скопировать информацию и создать образ целого диска или его части, а уже затем работать с файлом образа, сохраненным на другом носителе, как с оригинальным диском. Это особенно полезно и эффективно, когда число поврежденных секторов на диске постоянно растет, и необходимо немедленно сохранить оставшуюся информацию.

Что может R-Linux:

  • Операционная система (ОС) хоста:
  • Вариант для ОС Linux: любая ОС Linux на базе ядра 2.6+
  • Вариант для ОС Windows: Win2000, XP, 2003, Vista, Windows 7, Windows 8/8.1, Windows Server 2008/2012
  • Поддерживаемые файловые системы: только Ext2/Ext3/Ext4 FS (Linux).
  • Распознание и анализ схем Динамических (Windows 2000/XP/2003/Vista/Win7), Основных, BSD (UNIX) разделов и схемы разделов APM (Apple Partition Map). Поддержка динамических разделов на GPT, а также на MBR.
  • Создание ФАЙЛА ОБРАЗА для целого физического диска, раздела или его части. Файлы образов диска могут обрабатываться программой как обычный диск. Возможны два вида образов: 1) Образы, являющиеся точной побайтовой копией объекта (Несжатые образы) - такие образы совместимы с предыдущими версиями R-Linux; 2) Сжатые образы - могут быть сжаты, разбиты на несколько файлов и защищены паролем. Такие образы полностью совместимы с образами, создаваемыми программой R-Drive Image, но несовместимы с предыдущими версиями R-Linux.
  • Восстановленные файлы могут быть сохранены на любой, включая сетевой, диск, доступный локальной операционной системой.
  • Мониторинг параметров S.M.A.R.T R-Linux может отображать параметры S.M.A.R.T. (Self-Monitoring, Analysis and Reporting Technology) для жестких дисков которые показывают состояние их аппаратной части и предсказывать их возможные отказы. Нужно избегать любую дополнительную нагрузку на такие диски если появляются предупреждения от системы S.M.A.R.T.
  • Поиск удаленных версий файлов. R-Linux может искать удаленные версии файлов используя их размеры, имена, расширения и распознанные типы файла как параметры поиска.

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

Как установить R-Linux

Установить R-Linux

После завершения установки ищем приложение в меню Ubuntu - Системные утилиты - R-Linux , после первого запуска вы увидите англоязычное приложение, не пугайтесь, поддержка "Русского" так же присутствует. Перейдите в меню Help - Interface Language , и выберите русский, готово.

Если вам нужно восстановить файлы, подключите как пример флешку, увидели что флешка определилась, на боковой панели Ubuntu, нажмите в приложении кнопку обновить, чтобы увидеть ваш носитель. Далее выделяем курсором мыши раздел нашего флеш-носителя и жмем кнопку "Сканировать ".

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

Cканирование начато, ждем пока завершится, не отменяем ни в каком случае, иногда это может плохо кончиться для флеш-носителя. Сканирование завершено, далее мы видим следующую картинку:

ниже под нашим флеш-разделом появилась область с названием "Найденные по сигнатурам ", нажмите по этому разделу курсором мыши и увидим новое окно:

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

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

Как восстановить данные с помощью утилиты R-Studio

Платная утилита, но она того стоит так как выручит даже из самых сложных ситуаций.

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

  • Модуль реконструкции RAID
  • Универсальный текстовый/шестнадцатиричный редактор, обладающий широким диапазоном возможностей
  • Отдельный модуль резервного копирования системы и данных (копирования диска), что позволяет считать R-Studio наиболее оптимальным и полным решением при создании рабочей станции для восстановления данных.

R-Studio восстанавливает файлы:

  • Удаленные вне Корзины или когда Корзина была очищена;
  • Удаленные вирусной атакой или сбоем питания компьютера;
  • После того, как раздел с файлами был переформатирован, даже в раздел с другой файловой системой;
  • Когда структура раздела на жестком диске были изменена или повреждена. В этом случае с помощью программы R-Studio можно отсканировать жесткий диск, найти удаленный или поврежденный раздел, а уже потом восстановить данные с найденного раздела.
  • С жестких дисков, на которых имеется большое число поврежденных секторов. Программа восстановления R-Studio может сначала скопировать информацию и создать образ целого диска или его части, а уже затем работать с файлом образа, сохраненным на другом носителе, как с оригинальным диском. Это особенно полезно и эффективно, когда число поврежденных секторов на диске постоянно растет, и необходимо немедленно сохранить оставшуюся информацию.
  • Приказом Министерства юстиции РФ от 26 ноября 2015 г. № 269, R-STUDIO была включена в список требований к минимальной комплектации материально-технической базы по нескольким видам судебных экспертиз проводимых в федеральных бюджетных судебно-экспертных учреждениях Министерства юстиции Российской Федерации.

Что может утилита R-Studio:

  • Стандартный пользовательский интерфейс "Windows Explorer".
  • Операционная система (ОС) хоста: Windows 2000, XP, 2003 Server, Vista, 2008 Server, Windows 7, Windows 8/8.1/10, Windows Server 2012.
  • Восстановление данных по Cети. Файлы могут быть восстановлены по сети с удаленных компьютеров, на которых установлены ОС Win2000/XP/2003/Vista/2008/Windows 7/8/8.1/10/Windows Server 2012, Macintosh, Linux и UNIX.
  • Поддерживаемые файловые системы: FAT12, FAT16, FAT32, exFAT, NTFS, NTFS5, ReFS (новая локальная файловая система, которую ввел Microsoft в Windows 2012 Server), HFS/HFS+ (Macintosh), Little and Big Endian variants of UFS1/UFS2 (FreeBSD/OpenBSD/NetBSD/Solaris) и Ext2/Ext3/Ext4 FS (Linux).
  • Поиск при Сканировании Файлов Известных Типов (восстановление файлов по сигнатурам): если файловая система на диске сильно повреждена или неизвестна, то R-Studio ищет шаблоны данных (файловые сигнатуры) свойственные определенным типам файлов (документы Microsoft Office, jpgs и т.д.). В случае необходимости пользователь может добавить новые типы файлов в состав R-Studio.
  • Распознание и анализ схем Основных(MBR), GPT и BSD (UNIX) разделов, а также схемы разделов Apple. Поддержка Динамических томов (Windows 2000-2012/8.1/10) на MBR и GPT.
  • Поддержка Windows Storage Spaces (Windows 8/8.1 и 10/Threshold 2), программных Apple RAID и Linux Logical Volume Manager (LVM/LVM2). R-Studio может автоматически распознавать и собирать компоненты этих дисковых менеджеров даже если их базы данных слегка повреждены. Их компоненты с серьезно поврежденными базами данных можно добавлять вручную.
  • Реконструкция поврежденных дисковых массивов (RAID). Если ОС не распознает дисковый массив (RAID), вы можете создать виртуальный RAID из его компонентов. Такой виртуальный массив может быть обработан программой как обычный физический.Поддержка стандартных уровней RAID: 0, 1, 4, 5, 6. Поддержка вложенных и нестандартных уровней: 10(1+0), 1E, 5E, 5EE, 6E. Поддержка задержки контроля четности для всех соответствующих уровней RAID. Поддержка пользовательских схем RAID.
  • Автоматическое распознавание параметров RAID.R-Studio способна распознавать все параметры для RAID 5 и 6. Это позволяет пользователю решить одну из наиболее трудных задач при восстановлении RAID - определение его параметров.
  • Создание ФАЙЛА-ОБРАЗА для целого Физического Диска (HD), Раздела или его части. Такие файлы-образы могут быть сжаты и разбиты на несколько файлов для сохранения на CD/DVD/Flash или на FAT16/FAT32/exFAT. Файлы образов диска могут обрабатываться программой как обычный диск.
  • Восстановление данных с поврежденных или удаленных разделов, зашифрованных файлов (NTFS 5), альтернативных потоков данных (NTFS, NTFS 5).
  • Восстановление данных после:
  • запуска FDISK или аналогичных утилит;
  • Вирусной атаки; повреждения FAT; разрушения MBR.
  • Распознавание локализованных имен.
  • Восстановленные файлы могут быть сохранены на любой, включая сетевой, диск, доступный локальной операционной системой. Восстановленные файлы могут быть сохранены на другом диске подключенного удаленного компьютера без перекачивания по сети на локальный компьютер.
  • Просмотр содержания файлов для оценки шансов восстановления. Содержание файлов большинства типов (форматов) может быть просмотрено даже если соответствующее файлу приложение не установлено.
  • Файлы или содержимое диска может быть просмотрено и отредактировано с помощью встроенного шестнадцатиричного редактора. Редактор поддерживает редактирование свойств NTFS файлов.
  • Мониторинг параметров S.M.A.R.T. R-Studio может отображать параметры S.M.A.R.T. (Self-Monitoring, Analysis and Reporting Technology) для жестких дисков которые показывают состояние их аппаратной части и предсказывать их возможные отказы. Нужно избегать любую дополнительную нагрузку на такие диски если появляются предупреждения от системы S.M.A.R.T.
  • Интеграция с DeepSpar Disk Imager - профессиональным устройством для создания образов жестких дисков, специально созданным для восстановления данных с неисправных дисков. Такая интеграция дает низкоуровневый тонкий доступ к дискам с определенным уровнем неисправностей аппаратной части. Более того, она позволяет создавать образ диска и проводить анализ одновременно. Т.е., любой сектор, к которому обращается R-Studio на исходном диске, будет немедленно скопирован на диск-клон, и все последующие операции по восстановлению данных будут производиться на диске-клоне чтобы предотвратить дальнейшее ухудшение состояния исходного диска и значительно уменьшить время обработки.

В заключении пару видео про R-Studio:

Также для восстановления информации есть и еще утилиты:

  1. - инструмент для восстановления данных, который пытается извлечь данные из доступных, но проблематичных носителей (с поврежденными секторами). В качестве источника данных могут выступать внешние устройства (такие как CD, DVD и Blu-ray) и разделы жеских дисков. Программа обладает тем преимуществом, что продолжает работу даже тогда, когда другие средства прекращают ее из-за ошибок ввода/вывода. Обычные средства копирования, такие как cat, cp или dd не позволяют создать образ диска или съемного носителя, если произошел сбой при чтении какого-то сектора.
  2. 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
  3. ddrescue (в Ubuntu эта утилита называется gddrescue) Эта утилита копирует данные из файла или с аппаратного устройства, содержащего данные, в другое место, предпринимая при этом попытки исправить все имеющиеся ошибки чтения. Основные операции ddrescue выполняет в автоматическом режиме, заполняя параллельно файл протокола. Если имеется две или более копий поврежденных файлов, ddrescue способна полностью восстановить файл, устранив все ошибки.
    ddrescue устанавливает размер буфера ввода/вывода равным размеру сектора, так что ее можно использовать для посекторного восстановления данных с устройств.
  4. unrm - небольшая консольная утилита, которая при некоторых условиях, может восстановить почти 99% удаленных данных (похожа на утилиту undelete в DOS). Перед её использованием внимательно прочитайте файл FAQ и желательно Linux Ext2fs Undeletion Mini-HOWTO . Применение:
    unrm [-b (no block padding)][-e (every block)][-f fstype][-vW] device
  5. (gET iT i sAY) - средство восстановления файлов для файловых систем Ext2/Ext3. После установки могут быть восстановлены текущие файлы и новые созданные файлы в /root и /home. Утилита позволяет пользователям восстановить все удалённые файлы, восстанавливать файлы, принадлежащие указанному пользователю, выводить (dump) данные из местанахождения файлов и восстанавливать файлы определённого типа, например, текстовые или MP3. Имеется также анализатор, помогающий пользователям во время восстановления.
  6. DMDE - DM Disk Editor and Data Recovery Software. Программа для редактирования дисков и восстановления данных. В бесплатной версии доступны все функции дискового редактора, управления разделами и восстановления файлов, за исключением возможности группового восстановления файлов и каталогов; полная версия позволяет восстанавливать группы файлов и директории с сохранением структуры каталогов.
  7. Mondo Rescue . Основное назначение этой программы - создание резервных копий данных. Она может создавать резервные копии на магнитных лентах, CD, на удаленных носителях по NFS или в виде ISO-образов на локальных дисках. Но в случае повреждения данных программа позволяет восстановить их полностью или частично, даже если ваш жесткий диск недоступен обычными средствами.
    Mondo запускается на всех основных дистрибутивах Linux, поддерживает LVM, RAID, ext2, ext3, JFS, XFS, ReiserFS, VFAT и другие файловые системы. Может восстанавливать геометрию диска, обеспечивать миграцию данных на RAID-массивы, проверять целостность файловой системы компьютера. Кроме того, позволяет проводить реструктуризацию диска, уменьшать/увеличивать разделы, переназначать устройства, добавлять жесткие диски.
  8. The Sleuth Kit (TSK) - набор программ (fls, icat, ffind, ifind, mmls, fsstat, etc.) для проведения криминалистического анализа файловых систем. TSK - совокупность UNIX инструментальных средств командной строки, которые могут анализировать файловые системы NTFS, FAT, FFS, EXT2FS, и EXT3FS. TSK читает и обрабатывает структуры файловой системы самостоятельно, поэтому не требуется поддержка файловой системы операционной системой.
    Статьи: Восстановление спрятанных или потерянных данных .

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

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

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

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

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

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

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

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

Заключение

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

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


© 2024
zane-host.ru - Программы. Компьютеры. Сетевое оборудование. Оргтехника