Иногда мы сожалеем о поспешно принятых нами решениях. Касается это и удаления файлов. Тем более что мы можем стереть их и вовсе без принятия решения, случайно. В Windows для такого случая есть корзина . Убунту не обладает этим инструментом, однако пользователь может другими способами восстановить утерянные данные, иногда даже в существенно большем объёме. Главное, в нужный момент знать, как восстановить удалённые файлы в Ubuntu.
Благодаря функционалу программного обеспечения можно восстановить файлы на Ubuntu.
Если случилось так, что вы удалили не тот документ, видео или целую папку, то восстанавливать это необходимо немедленно, сразу как только вы это осознали. Вам непонятно, к чему такая поспешность? Узнаете чуть позже, а пока нам надо очень быстро вернуть обратно потерянные файлы. Помогут в этом различные утилиты.
Не самая эффективная из всех программ по восстановлению данных. Но прибегнуть к ней смогут многие, так как она часто устанавливается на Ubuntu и проста в управлении. Установить её также очень легко:
sudo apt-get install gparted
Запускаем GParted с расширенными правами:
Находим раздел диска, с которого была удалена важная информация, открываем его.
Теперь кликаем по кнопке «Устройство» в верхнем меню и выбираем «Попробовать восстановить данные».
Вероятность успеха операции не так уж велика. Однако если вы сделали это вскоре после очистки нужного файла, есть возможность вернуть всё назад.
TestDisk уже больше подходит для того, чтобы заниматься восстановлением удалённых файлов на Ubuntu. Утилита обладает широким функционалом, и эта процедура - лишь одно из действий. Управляется всё через текстовый интерфейс, что, конечно, не очень удобно для новичков.
Сначала устанавливаем TestDisk:
sudo apt install testdisk
Запускаем программу:
Эта утилита позволяет быстро восстановить конкретный файл, причём обладать серьёзными знаниями, даже знанием команд, не требуется. Однако не всегда есть возможность восстановить отображаемые там файлы, если они были перезаписаны.
PhotoRec чуть более, чем полностью специализируется на восстановлении файлов. С этой программой нельзя, как с предыдущей, выборочно восстанавливать нужные документы. Однако при помощи неё можно вернуть назад практически всё что угодно, даже информацию с повреждённых секторов , поскольку PhotoRec смотрит на исходные данные, не обращая внимания на сведения, предоставляемые файловой системой.
Устанавливаем программу:
sudo apt install photorec
Запускаем:
PhotoRec обычно восстанавливает сразу кучу различного хлама. Причём хлам этот часто без наименования, поэтому сложно найти именно то, что нужно вам. Однако же, как правило, пользователи получают доступ к важным удалённым файлам при помощи этой утилиты.
Это не такой мощный инструмент, но пользоваться им ещё проще. Программа не восстанавливает данные подобным методом. Она просто копирует файлы с повреждённых носителей на целые. В таком ключе её удобно использовать с нерабочими флешками или съёмными дисками. Вообще, спектр возможностей Safecopy довольно широк, и восстановление файлов явно не самая сильная её сторона.
Загружаем утилиту на компьютер:
sudo apt install safecopy
Переносим данные с повреждённого носителя:
sudo safecopy /dev/sda /home/
При помощи этой команды мы перенесём данные с раздела dev/sda в home. Способ подходит скорее не тем, кто случайно что-то стёр, а тем, чьи файлы повреждены.
А вот эта программа уже навряд ли уступит всем предыдущим. По заверениям некоторых пользователей и разработчиков она, вообще, является одной из самых мощных в своём роде и позволяет вернуть обратно информацию, которая была удалена давно и перезаписана. Для некоторых это будет последняя надежда. Программа есть не только на системах Linux , но и на Виндовс.
Устанавливаем Scalpel:
sudo apt-get install scalpel
Открываем конфигурационный файл утилиты:
sudo gedit /etc/scalpel/scalpel.conf
Вместо gedit можно использовать nano, если этот редактор стоит у вас по умолчанию.
Теперь здесь нужно найти строку, которая содержит формат того файла, который мы ищем. Например, это png. Находим png и удаляем решётку (#) в начале строки. Это действие называется «раскомментировать».
Сохраняем файл и закрываем редактор.
Запускаем команду для поиска утраченных данных:
sudo scalpel /dev/sda1 -o /home/png/
sda1 - раздел, в котором мы ищем, home/png - раздел, куда всё будет скопировано.
Процесс запустился. Занять он может несколько часов. По завершении откройте Nautilus и с помощью него ту папку, в которую сохранялись файлы. Там вы, скорее всего, найдёте ещё больше мусора, чем после PhotoRec, но среди него и нужные вам файлы.
Так почему же делать всё необходимо так быстро? Причина заключается в том, что, когда мы удаляем какой-то файл, в какой бы системе это ни выполнялось, мы удаляем только подобие ссылки на него. При помощи такой ссылки к нему обращаются программы, получая доступ к тому, что находится на жёстком диске. Однако каждый раз удалять файл по просьбе пользователя с HDD будет очень неудобно и затратно в плане времени и энергии. Гораздо проще пометить эту область на диске как ненужную и перезаписать, когда потребуется новое место. Поэтому чем быстрее мы всё делаем, тем меньше шансов, что область эта уже была перезаписана.
Программы, которые были приведены выше, реализуют разные способы извлечения стёртой информации. Последняя, если верить пользователям, используется даже спецслужбами. Им, кстати, вообще не составит труда «вернуть с того света» любые данные при помощи остаточного магнитного следа на диске. Но для этого обычно требуется специальная дорогостоящая аппаратура, а не просто утилита.
Если вы столкнулись с проблемой утери важных файлов, не стоит сразу же отчаиваться. Большое количество различного софта позволяет вернуть назад требуемую информацию после случайного удаления. В любом случае действуйте с важными документами на компьютере аккуратно: делайте копии, думайте, прежде чем удалять. Хотя, конечно, это и так всем известно.
Иногда так случается, что мы удаляем, как казалось бы ненужные файлы (изображения, видео, текстовые документы и пр.), а потом вдруг сожалеем об этом, т.к. среди удалённых, оказались нужные. Хорошо если мы удаляем файлы в Корзину , откуда очень просто восстановить, нажав сочетание клавиш Ctrl+Z и тогда все файлы, что находятся в Корзине будут восстановлены по своим прежним папкам или можно выборочно, кликнув правой кнопкой на нужный файл в Корзине и в контекстном меню - Восстановить .
Но что делать когда мы удалили фалы функцией - Удалить безвозвратно
? Многие считают, что данные утеряны безвозвратно. Но это не так. В этом случае нам поможет консольная утилита Scalpel
.
Scalpel
— простое высокодейственное средство восстановления файлов.
Scalpel
— это средство быстрого восстановления файлов, которое читая из базы данных начало и конец файлов известных форматов, пытается найти их на диске. Уникальность данного ПО заключается в том, что оно не зависит от файловой системы. Поэтому, восстановление возможно как с FATx, NTFS, ext2/3
, так и с "голых" (raw) разделов
. Инструмент может использоваться как для цифрового поиска информации, так и для восстановления файлов.
Scalpel есть в репозиториях практически всех дистрибутивах Linux . В Ubuntu и производных вы можете установить его из Центра приложений или выполнить команду в терминале на установку:
sudo apt-get install scalpel
После установки вы не найдёте в системном меню Scalpel , т.к. я упоминал выше, этот инструмент запускается из терминала определённой командой. Но прежде чем запустить команду на поиск безвозвратно удалённых файлов, вы должны в конфигурационном файле scalpel.conf раскомментировать строку (убрать знак решётки) с расширением нужного файла (Все типы файлов "по умолчанию" закомментированы). Выполните команду в терминале на открытие конфигурационного файла scalpel.conf:
sudo gedit /etc/scalpel/scalpel.conf
Примечание . В команде gedit (Ubuntu; Linux Mint Cinnamon) измените на название текстового редактора своего дистрибутива, установленного по умолчанию.
Для примера я выбрал поиск потерянных файлов изображений c расширением JPG и раскомментировал данную строку в открывшемся редакторе с файлом scalpel.conf :
И вот теперь нужно выполнить терминальную команду с инструментом
scalpel
для поиска утраченных файлов:
sudo scalpel /dev/sda8 -o /home/vladimir /JPG /output/
sda8 - это раздел на ж/диске моей актуальной системы. Чтобы вам определить свой раздел и изменить его в команде, выполните команду:
/home/vladimir - это имя моей Домашней папки . Измените vladimir на своё.
/JPG - это название папки в команде, которая будет создана а вашей Домашней папке , куда будут сохранены все восстановленные файлы, которое вы также можете изменить на своё.
Итак, выполняем команду и ждём окончания восстановления:
По окончании восстановления, откройте Домашнюю папку с правами администратора:
sudo nautilus
Вместо nautilus укажите название файлового менеджера своего дистрбутива (например: Linux Mint - nemo или сaja ; и т.п.).
Заключение. Хотелось бы заметить, что инструмент scalpel находит все файлы с указанным расширением, даже те, что были раньше на этом разделе, когда на нём когда-то были установлены другие операционные системы. Данная утилита также используется спецслужбами разных стран для поиска компромата пользователя компьютером в случае необходимости. Так что чем бы мы не удаляли файлы безвозвратно, они всё-равно оставляют свой след на ж/диске.
Только физическое уничтожение ж/диска избавит пользователя компьютером от компрометирующих файлов .
Такая операция, как восстановление удаленных файлов в Linux, требуется редко. Но для того, чтобы в неподходящий момент не остаться без важных данных, следует заранее быть готовыми и уметь быстро принять необходимые меры.
Существуют 2 варианта восстановления данных в системе Линукс – непосредственно с жесткого диска системы и с флешки.
Файловые системы, используемые во всех ОС, не только в Unix-подобных, организованы таким образом, что не дают удаленному файлу пропасть бесследно. То есть, если файл был создан и находился на жестком диске, значит, он занимал некоторое пространство и был внесен в список ссылок среди других объектов.
Когда пользователь его удаляет, ссылка на файл дезактивируется, давая понять файловой системе, что занятое пространство можно пометить как неразменное. На самом же деле, удаленный объект до сих пор существует и располагается на тех кластерах, на которых он и был. Его полное стирание наступит только после перезаписи его следа иными данными.
Из чего следует вывод, что пока пространство, где находился файл, нетронуто, его можно восстановить. Соответственно после обнаружения пропажи данных, нужно незамедлительно прекратить все записывающие процессы (скачивание файлов, создание документов, обновления системы и программ, установка ПО) и заняться его восстановлением.
Так как в Linux «Корзина» работает слегка иначе, чем в Windows, первым делом следует ее проверить. Удаленные обычным методом файлы, без очистки корзины после этого, хранятся именно там. Для восстановления достаточно подключить накопитель, зайти в корзину и восстановить объект.
Но если данные стерты из обоих источников, придется прибегнуть к встроенному или стороннему программному обеспечению для восстановления. Перед этим советуется сделать резервную копию раздела, на котором находился файл. Для этого необходимо следовать инструкции ниже, с оговоркой на то, что для создания копии необходимо количество свободного пространства жесткого диска, равное объему флешки. В случае неудачи в попытках восстановить данные на самом накопителе, можно будет обратиться к более опытному мастеру, предоставив ему виртуальную копию раздела.
Самый простой и очевидный выход – пойти в специализированный сервис по восстановлению данных. Но есть огромный минус – цена. Процедура извлечения стоит очень дорого, а насколько сложным был этот процесс, никто не расскажет. Также гарантии на возвращение всех объектов нет, тем более оборудование, которое может восстановить файл после нескольких перезаписей, поставляется только спецслужбам. Так что, прежде чем отчаиваться, следует попробовать провернуть операцию своими силами.
Самая распространенная программа для работы с разделами в Linux. Однако не со всеми дистрибутивами она идет в комплекте. Не самый надежный помощник в подобных операциях, но попробовать ее, как вариант, стоит.
Scalpel Linux – небольшой инструмент, специализирующийся на восстановлении удаленных файлов с EXT4 разделов и других файловых систем. Он имеет в своем арсенале базу данных по типам ФС и о форматах данных, что делает его универсальным. Ведь во время сканирования он сверяет остатки записей на жестком диске или флешке с собственным списком, и при обнаружении совпадений приступает к восстановлению удаленных файлов Linux.
Установка и использование просты:
Более наглядно процесс можно увидеть здесь:
TestDisk также может помочь в восстановлении файлов из-под Linux, но несколько иначе. Дело в том, что данный софт нацелен не на извлечение данных с накопителей, а для тестирования и восстановления работоспособности созданных на них разделов.
Также существует программа в Ubuntu – PhotoRec. В первую очередь ее функционал рассчитан на восстановление файлов мультимедийных форматов и архивов. Данное ПО полностью игнорирует ошибки, отсутствие или форматирование файловой системы, тем самым без проблем сканируя данные.
Теперь же она поставляется совместно с TestDisk, и из-за такого объединения усилий конечная утилита считается лучшей среди программ для восстановления файлов Ubuntu. Чтобы избежать проблем по неопытности пользователя, во время основных настроек и манипуляций, утилита использует подход «все в системе только для чтения».
Определяя ошибки информации, TestDisk может воссоздать потерянные разделы в различных ФС, таких как, например, FAT, NTFS и EXT4. Даже если раздел ранее был удален, найдя его следы, программа сможет исправить зависимости, не позволяющие корректно обращаться к файлу. Программа доступна в официальном репозитории Canonical. Для того чтобы приступить к восстановлению данных с жесткого диска Ubuntu, нужно выполнить инструкцию:
Safecopy – простой инструмент для взаимодействия с разделами и данными. Он не помогает в восстановлении данных с флешки Ubuntu, однако сможет скопировать объекты с поврежденного носителя на здоровый. Ее преимущество состоит в полном игнорировании возникающих при считывании и копировании фалов ошибок. Что может лучшим образом сказаться на попытке сохранить мультимедийные файлы.
Пара битый байт мало чем сможет навредить фотографии или видеозаписи, да и текстовый документ, скорее всего, нужно будет просто немного подправить. Но вот работа с архивами, особенно если они под паролем, может быть нарушена.
Для работы с программой нужно:
Для того чтобы удалить файл в Ubuntu, есть много способов. Но также все зависит от того системный файл это или пользовательский. Понять это просто. Все, что находится до директории /home, – системные файлы, внутри же нее – пользовательские.
Часто ли вы сталкивались с ситуациями когда нужно было восстановить данные? Вы случайно удалили файла, но когда было уже поздно одумались, но не знали как восстановить, как вариант устанавливали операционную систему и по незнанию разметки дисков, отформатировали диск с всеми данными, музыка, фильмы, домашние фото и прочие другие данные. Вы в отчаянии не зная можно ли восстановить восстанавливали все по крупицам, но это лишь малейшая часть решения последствий проблемы которая возникла, данные в Linux можно восстановить и для этого есть утилиты, как платные так и бесплатные и сегодня мы обсудим 7 утилит которые помогут в восстановлении данных в Ubuntu Linux.
Частично конечно это все помогало, но большая часть данных все же была утеряна, а представьте ситуацию, вы студент, готовите курсовую, остается неделя либо две до сдачи, а у вас полетел жесткий диск на котором была ваша курсовая, как поступить в данной ситуации.
Знаю, многие пользователи привыкли с времен работы на системе от мелкомягких работать с графическим интерфейсом, но мы сегодня обсудим так же и консольные утилиты так как многие из них помогают в восстановлении не хуже, а в некоторых ситуациях даже лучше.
Scalpel - это набор инструментов для быстрого восстановления файлов. Уникальная утилита, уникальность ее в том, что она никак не зависит от файловой системы. Утилита ищет по базе данных файлы файлы всех известных форматов и пытается найти их на диске по определенным своим шаблонам просматривая начало и конец файла. Может помочь в восстановлении в таких файловых системах как FATx, NTFS, ext2/3, так же с "RAW" разделов.
утилита работает по своему внутреннему шаблону /etc/scalpel/scalpel.conf , если вы хотите восстановить файлы определенного формата, стоит открыть конфиг и раскомментировать соответствующие строки для данного типа файлов. При редактировании шаблона конфига нужно быть очень осторожным чтобы не нарушить его и не удалить чего лишнего.
директория для восстановления "dir_recovery " обязательно должна быть пустой, file.iso это как пример данных которые нам нужно восстановить, мы знаем, что у нас был такой образ с точно таким же названием, мы можем указать не только файл напрямую, но можем и указать полный путь к устройству откуда нужно восстановить, вида /dev/sdb1/directory_name/directory_name2/filename .
R-Linux является бесплатной программой для восстановления файловых систем Ext2/Ext3/Ext4 FS, используемых в Linux и некоторых Unix операционных системах (ОС). Используемая в R-Linux Технология Сканирования и удобный в установке параметров интерфейс программы дают пользователю абсолютный контроль над процессом восстановления данных. Программа восстанавливает данные с существующих логических дисков, даже если записи файлов утрачены. Однако, в программе отсутствует возможность восстановления данных по сети, а также функциональность по реконструкции дисковых массивов и восстановления с них данных.
Есть два варианта утилиты R-Linux: для ОС Linux и для ОС Windows. Они имеют одинаковую функциональность, разница состоит лишь в ОС хоста.
Если вам что-то не понятно по приложению, вы можете ознакомиться с справочным руководством по ссылках / руководство достаточно обширное, найдете ответы на многие вопросы.
Скачать файл для вашей архитектуры вы можете по ссылке - , далее для установки, откроем терминал и выполним команды:
Cd ~/Загрузки/ cd ~/Downloads/ sudo dpkg -i rli*
после завершения установки ищем приложение в меню Ubuntu - Системные утилиты - R-Linux , после первого запуска вы увидите англоязычное приложение, не пугайтесь, поддержка "Русского" так же присутствует. Перейдите в меню Help - Interface Language , и выберите русский, готово.
Если вам нужно восстановить файлы, подключите как пример флешку, увидели что флешка определилась, на боковой панели Ubuntu, нажмите в приложении кнопку обновить, чтобы увидеть ваш носитель. Далее выделяем курсором мыши раздел нашего флеш-носителя и жмем кнопку "Сканировать ".
Как видите, нам предлагают более детально настроить параметры сканирования, искать ли по известных типах файлов, вести ли журнал, где конкретно искать, позволяется указать с какого отрезка байтов стоит начинать сканирование, с 0 по стандарту или же указать свои данные.
Cканирование начато, ждем пока завершится, не отменяем ни в каком случае, иногда это может плохо кончиться для флеш-носителя. Сканирование завершено, далее мы видим следующую картинку:
ниже под нашим флеш-разделом появилась область с названием "Найденные по сигнатурам ", нажмите по этому разделу курсором мыши и увидим новое окно:
нажмите по строке "Файлы, найденные по информации о типичных особенностях структуры их данных ". После нажатия по данной ссылке мы увидим примерно следующее:
выделяем нужные вам директории и жмем кнопку "Восстановить помеченные ", я ради теста проверил, утилита хорошо работает, пробуйте и отписывайтесь по результату как она в деле в реальной ситуации когда утеряны данные, удалены файлы и прочее.
Платная утилита, но она того стоит так как выручит даже из самых сложных ситуаций, купить можно на официальном сайте - . Продвинутая утилита, лучшая с утилит для восстановления данных, работает с файловыми системами 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 входят:
Конечно, выше описаны не все утилиты для восстановления данных, имеется еще список с таких утилит как Unrm, Giis, Ddrescue, DMDE, PhotoRec, Mondo Rescue и Safecopy, я описал лишь основные, о других утилитах и их возможностях, советовал бы ознакомиться с материалом - . На этом пожалуй и окончим материал, будут вопросы, спрашивайте, уточняйте и оставляйте отзывы об используемых утилитах которыми вы восстановили данные, может в статье нет то, что вы используете, опишите в комментариях, чем вы пользуетесь.
Неприятности случаются чаще, чем хотелось бы. Одной из них является удаление файла с важными данными. Причем в 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 довольно мощная утилита, применяемая обычно для проверки и изменения файловой системы и предоставляющая непосредственный доступ к файловой системе. Нам потребуются три ее команды:
Запускаем 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
По выводу можно догадаться, что данный файл является базой данных и открыть его соответствующей программой.
Заключение
Помните, ничто не заменяет регулярного резервирования. А применение методов, рассмотренных в статье, должно быть скорее исключением, чем правилом. Поверьте, ведь немного удовольствия от спуска в бездну небытия.