Author Topic: восстановление удалённых вайлов  (Read 3423 times)

0 Members and 1 Guest are viewing this topic.

Offline Protey

  • Newbie
  • *
  • Posts: 28
  • Karma: +0/-0
    • http://
восстановление удалённых вайлов
« on: September 05, 2007, 14:48:21 »
как восстановить удалённые файлы на ext3 fs?

Offline Diver

  • Hero Member
  • *****
  • Posts: 790
  • Karma: +2/-0
восстановление удалённых вайлов
« Reply #1 on: September 06, 2007, 10:33:01 »
Quote from: Protey
как восстановить удалённые файлы на ext3 fs?
Quote
Фактически никак. Вот что по этому поводу сказал Andreas Dilger, один из разработчиков:

Для проверки возможности безопасного продолжения разлинковки (unlink) после падения файловая система ext3 обнуляет указатели на блоки в inode’ах, а ext2 просто помечает эти блоки как неиспользуемые, inode’ы — как удаленные, оставляя указатели нетронутыми.

Единственное, что вам остается делать, — вызывать grep для нахождения частей удаленных файлов и надеяться на лучшее.
Quote
Начать следует с отключения от системы всех пользователей и если это возможно процессов, которые в данный момент работают с разделом, где произошло нежелательноe удаление.
Сам процесс восстановления не очень приятный, да и вообще не всегда спасает. Все из-за того, что в ФС ext3 после удаления файла информация из файлового дескриптора удаляется (в ext2 этого не происходит, поэтому восстановление файлов там существенно проще). Таким образом мы имеем кучу данных на диске, часть из которых находится на блоках, помеченных как свободные. Так как данные никак не названы - единственный способ найти нужную информацию в разделе - это утилита grep.

# grep -a -B1 -A200 'this text' /dev/hda2

Эта команда будет выводить фрагменты из 200 строк, следующих за нашим
выражением - this text.
Параметры:
-a - рассматривать бинарный файл, как текстовый.
-Aчисло - число выводимых строк идущих до искомого фрагмента.
-Bчисло - число выводимых строк идущих после искомого фрагмента.
/dev/hda2 - раздел, на котором были утерены файлы.

Для удобства можно писать в файл (находящийся на другом разделе - чтобы не затереть ваши данные).

# grep -a -B1 -A200 'this text' /dev/hda2 >>/root/results

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

С большими фрагментированными файлами или бинарниками все усложняется - поэтому не стоит принебрегать бекапами, особенного на ext3.

Info:
man grep
man dd (Пригодится, если необходимо скопировать раздел целиком, для последующего восстановления)
MCP

Offline Protey

  • Newbie
  • *
  • Posts: 28
  • Karma: +0/-0
    • http://
восстановление удалённых вайлов
« Reply #2 on: September 06, 2007, 19:19:29 »
2Diver
благодарю, буду пробовать