Linux восстановление удаленных файлов. Программы для восстановления файлов на Ubuntu. Сам себе некрофил

Такая операция, как восстановление удаленных файлов в 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, – системные файлы, внутри же нее – пользовательские.

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

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

Cd ~/Загрузки/ cd ~/Downloads/ sudo dpkg -i rli*

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

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

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

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

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

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

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

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

Платная утилита, но она того стоит так как выручит даже из самых сложных ситуаций, купить можно на официальном сайте - . Продвинутая утилита, лучшая с утилит для восстановления данных, работает с файловыми системами NTFS, NTFS5, ReFS, FAT12/16/32, exFAT, HFS/HFS+ (Macintosh), Little and Big Endian variants of UFS1/UFS2 (FreeBSD/OpenBSD/NetBSD/Solaris) и Ext2/Ext3/Ext4 FS (Linux). В R-Studio также используется восстановление файлов по сигнатурам (поиск при сканировании файлов известных типов) для сильно поврежденных или неизвестных файловых систем. Программа позволяет восстанавливать данные как локально, так и на удаленных компьютерах по сети, даже если разделы дисков были форматированы, повреждены или удалены.

В состав R-Studio входят:

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

Конечно, выше описаны не все утилиты для восстановления данных, имеется еще список с таких утилит как Unrm, Giis, Ddrescue, DMDE, PhotoRec, Mondo Rescue и Safecopy, я описал лишь основные, о других утилитах и их возможностях, советовал бы ознакомиться с материалом - . На этом пожалуй и окончим материал, будут вопросы, спрашивайте, уточняйте и оставляйте отзывы об используемых утилитах которыми вы восстановили данные, может в статье нет то, что вы используете, опишите в комментариях, чем вы пользуетесь.

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

Восстановление через Photorec

Утилита , как следует из названия, создавалась специально для поиска удаленных фотографий. Однако со временем приложение превратилось в мощную программу, которая находит и возвращает из небытия файлы разных форматов. Единственное условие успешного восстановления удаленных данных – на их место не должно быть ничего записано. Поэтому сразу после пропажи файлов необходимо перестать работать с диском, с которого они были удалены. Копирование новых файлов, изменение пароля – ничего этого делать не стоит.

Программа Photorec распространяется бесплатно в составе пакета TestDisk, регистрационного ключа не требует. Чтобы её установить на Linux Mint или другую версию, откройте терминал и выполните команду «sudo apt-get install testdisk». Для запуска программы используйте команду «sudo photorec».

  1. После старта приложения для восстановления удаленных из системы файлов введите пароль пользователя, установленный на Linux Mint. Введя пароль, вы увидите все подключенные диски, который определились в системе. Если пароля нет, то ничего вводить не надо, подключенные носители сразу отобразятся. Используя стрелки на клавиатуре, выберите раздел, на котором хранились стертые данные, и нажмите Enter.
  2. В следующем окне вы можете сразу запустить поиск или немного настроить критерии, отфильтровав файлы, которые не нужно восстанавливать. Если вы сразу запустите поиск удаленных их системы данных, то потом будете долго разбирать файловый «мусор». Photorec может найти то, о чем пользователь давно забыл, так что лучше немного ограничить программу. Выделите пункт «File Opt» (используйте для перемещения стрелку вправо) и нажмите Enter.
  3. По умолчанию выделены все типы файлов. Но чтобы не перегружать систему лишней работой, снимите все отметки, нажав клавишу «S». Затем выделяйте стрелками те форматы данных, которые нужно восстановить, и нажимайте на пробел, чтобы поставить отметку.
  4. Затем вернитесь в предыдущее окно. Выделите формат FAT32 и запустите поиск кнопкой «Search».
  5. Оставьте выделение на пункте «Other».
  6. Выберите режим поиска данных. Если выбрать «Free», то Photorec будет искать только удаленные файлы на пустом пространстве. Если же выбрать режим «Whole», то программа будет сканировать всю поверхность, что даст возможность восстановить файлы, которые так давно удалены из системы, что пользователь о них забыл.
  7. Последний шаг – выбор директории, в которую будут сохраняться данные, найденные программой. Для старта сканирования нажмите клавишу «C» в английской раскладке.

Главное правило восстановления – никогда не сохраняйте файлы на тот раздел, с которого они были удалены. Лучше используйте съемный носитель, когда восстановление будет завершено, просто перенесете данные обратно в систему. Все данные, которые Photorec удастся найти и восстановить, будут лежать в папке, которую вы указали на последнем шаге. Имена файлов изменятся, поэтому какое-то время придется потратить на разбор данных, но это не так критично, как пропажа важной информации.

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

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

Заключение

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

Пришел ко мне знакомый с такой проблемой: Нужно восстановить удаленные файлы с флэш-карты фотоаппарта. Работаю я в магазине по продаже и настройке компьютеров и естественно, что там у нас только Windows. Была у меня в запасе одна безотказная программа, которая выручала меня, и не только, не один раз — Zero Assumption Recovery. Хорошая программа на самом деле, но платная и для винды. Одним словом сканировала она 4 гиговую флэшку часа 2-3, кое-что нашла. Попытался восстановить, но в итоге в восстанавливаемой папке ничего не оказалось. Для меня это был шок! Такое с этой прогой было впервые. Решил попытаться поколдовать с картой памяти дома, но уже на родной Убунту 11.10.

Для этого я вызвал программу для восстановления именно с карт памяти или флэшек под названием PhotoRec из пакета TestDisk. Если программа не установлена, то устанавливаем:

sudo apt-get install testdisk

Теперь, не закрывая Терминал, вызываем программу командой

и вводим пароль пользователя

Далее перед нами откроются всевозможные подключенные диски на нашем компьютере. Нужная мне флэшка была третья. Стрелками вверх или вниз, вправо или влево мы будем передвигаться по Терминалу. Выделяем нужный диск/карту/флэшку, в нашем случае UDF 2.0 Silicon-Power 8G и жмем Enter.

Если нужно восстановить все файлы, то жмем Enter, а если нужно восстановить файлы одного или нескольких типов, то стрелкой Вправо переходим на пункт File Opt и далее жмем Enter.

По умолчанию все типы файлов выделены для поиска и восстановления. Буквой S снимаем все выделения. Стрелками Вверх и Вниз ищем нужный тип файлов и выделяем кнопкой Пробел. Жмем Enter.

В нижнем меню переходим на пункт Search.

Выбираем пункт FAT32. Жмем Enter. Из всех вариантов выбираем Other , т.к. наша флешка имеет файловую систему FAT32.

Если выбрать пункт FREE, то поиск будет произведен в пустом пространстве и в этом случае будут восстановлены только удаленные файлы, а если выбрать WHOLE, то поиск будет произведен на всей поверхности флешки или диска.

Теперь нужно указать директорию, куда будем сохранять нужные нам файлы. Выбираем нужную папку и естественно жмем Enter.