Простой способ восстановить удаленные файлы

    Поделюсь небольшой находкой, маленькой программой для восстанавления удаленные файлы. Какое-то время назад было очень нужно, но программы Scalpel, тогда не нашел, к сожалению. На мой взгляд, из всех известных мне способов — это один из наиболее простых. Scalpel появился из проекта Foremost.

    И так любителям rm -rf посвящается:



    Во первых, самое главное, никто не гарантирует, что Scalpel сможет восстановить ваши файлы, но шансы на это есть.

    Установка (так как на испытуемой машине стоит Ubuntu, то рассказывать буду про нее):
    sudo apt-get install scalpel


    Далее можно покурить маны (полезно):
    man scalpel

    Перед использованием Scalpel, отредактируем файл настроек:
    sudo nano /etc/scalpel/scalpel.conf

    В нем нужно указать файлы, какого типа мы будем восстанавливать (по умолчанию не один тип не выбран). Я выбрал для восстановления файлы типа doc и pdf:

    doc y 10000000 \xd0\xcf\x11\xe0\xa1\xb1\x1a\xe1\x00\x00 \xd0\xcf\x11\xe0\xa1\xb1\x1a\xe1\x00\x00 NEXT
    doc y 10000000 \xd0\xcf\x11\xe0\xa1\xb1

    pdf y 5000000%PDF %EOF\x0d REVERSE
    pdf y 5000000%PDF %EOF\x0a REVERSE



    Теперь можно запускать восстановление:
    scalpel /dev/sda1 -o output

    -o показывает директорию куда будут складывать восстановленные файлы, если директория с таким имене уже есть (и не пуста) Scalpel не запустится.
    /dev/sda1 — собственно том, который будем шерстить на предмет утерянных файлов.
    Список можно посмотреть с помощью команды mount:
    username@host:~$ mount
    /dev/sda1 on / type ext3 (rw, relatime, errors=remount-ro)
    proc on /proc type proc (rw, noexec, nosuid, nodev)
    /sys on /sys type sysfs (rw, noexec, nosuid, nodev)
    varrun on /var/run type tmpfs (rw, noexec, nosuid, nodev, mode=0755)
    udev on /dev type tmpfs (rw, mode=0755)
    devshm on /dev/shm type tmpfs (rw)
    devpts on /dev/pts type devpts (rw, gid=5, mode=620)
    lrm on /lib/modules/2.6.24–21-generic/volatile type tmpfs (rw)
    /dev/sda2 on /home type ext3 (rw, relatime)


    После отработки переходим в директорию output и смотрим что там есть:
    username@host:~/output$ ls -l
    -rw-r--r-- 1 root root 28189 2009–03–24 14:42 audit.txt
    drwxr-xr-x 2 root root 4096 2009–03–24 14:42 doc-3–0
    drwxr-xr-x 2 root root 4096 2009–03–24 14:42 doc-3–1
    drwxr-xr-x 2 root root 4096 2009–03–24 14:42 doc-3–2
    drwxr-xr-x 2 root root 4096 2009–03–24 14:42 doc-4–0

    drwxr-xr-x 2 root root 4096 2009–03–24 14:42 pdf-5–0
    drwxr-xr-x 2 root root 4096 2009–03–24 14:42 pdf-6–0



    В файле audit.txt хранится инофмация о проведеном восстановлении:
    username@host:~/output$ cat audit.txt

    Scalpel version 1.60 audit file
    Started at Tue Mar 24 14:16:04 2009
    Command line:
    scalpel /dev/sda1 -o output

    Output directory: /home/username/output
    Configuration file: /etc/scalpel/scalpel.conf

    Opening target "/dev/sda1»

    The following files were carved:
    File Start Chop Length Extracted From
    00053045.doc 183664640 YES 10000000 sda1
    00053046.doc 183971840 YES 10000000 sda1

    00050372.doc 203272192 NO 208896 sda1
    00050373.doc 203481088 NO 229376 sda1

    Completed at Tue Mar 24 14:42:41 2009


    Смотрим во вложенные каталоги и видим (если повезет) наши файлы:
    username@host:~/output/doc-3–0$ ls -l
    total 25564
    -rw-r--r-- 1 root root 307200 2009–03–24 14:42 00050348.doc
    -rw-r--r-- 1 root root 40960 2009–03–24 14:42 00050349.doc
    -rw-r--r-- 1 root root 4354 2009–03–24 14:42 00050350.doc
    -rw-r--r-- 1 root root 466686 2009–03–24 14:42 00050351.doc
    -rw-r--r-- 1 root root 176128 2009–03–24 14:42 00050352.doc



    Источник — HowtoForge (вольный перевод).

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

    Scalpel умеет работать с фаловыми системами FAT, NTFS, ext 2/3, то есть восстанавливать данные можно и с win-разделов.

    И напоследок, лучших способ восстановить очень важные файлы это:
    1. Делать бекапы.
    2. Очень хорошо думать перед удалением.

    Удачного восстановления данных!
    Поделиться публикацией

    Комментарии 29

      +3
      photorec-2.0?
        0
        А почему, кстати, 2.0?

        Ссылка для тех, кто не в курсе: photorec — программа аналогичной функциональности, но со сборками под linux/dos/win/mac.

        www.cgsecurity.org/wiki/TestDisk_Download

          0
          Да просто так, без всякого умысла :-)
        0
        Спасибо за заметку. Для меня это интересная информация, ибо о восстановлении удалённых файлов в linux немного информации пробегало, но всё это казалось чрезмерно сложным.
          0
          Буквально вчера сталкнулся с проблемой востановления файла. Кривой скрипт случайно грохнул исходник…
          Долго гуглил на тему, в итоге нашел iBored, hex-editor для диска. Т.к. файл был текстовый, то поиском по строкам нашелся, и удачно востановился. А если бы был бинарник…

          Теперь буду использовать скальпель:) На сайте говориться что под мак собирается, сейчас и попробуем.
          Кстати, пока гуглил на тему востановления нашел интересную команду srm, Secure ReMove.
          Тоже что и просто rm, только помимо того что удаляет запись о файле, еще и место где файл был случайными данными заполняет, чтобы уже совсем не востановить, для параноиков вобщем:)
            0
            Теперь, все хакеры будут юзать
            srm -rf /
              +1
              srm() { shred --remove "$@" }
              0
              В примере данные восстанавливаются с sda1 на него же. Это в корне неправильно.
                0
                Пример брался от балды, восстановление фалов мне не нужно.
                К тому же восстанавливалось из sda1 (/) в sda2 (/home)
                0
                Простой, ммм…
                  0
                  Вы просто не гуглили «ext3 removed files recovery» несколько лет назад.
                  Хотя и сейчас, наверное, можно найти :-)
                    0
                    а старый добрый mc разве не работает для ext3?
                      0
                      AFAIR, нет.
                        0
                        ну я просто погуглил mc undelete files и ткнул в первую ссылку с упоминанием ext
                        www.linuxlinks.com/article/20081228151220953/MidnightCommander.html
                        «Recover deleted files from an ext2 or ext3 partition with the undelete file system. »

                        Я бы поэкспериментировал, но у меня все под рейзером.
                          0
                          dd if=/dev/zero of=image bs=1M count=42
                          mkfs.ext3 image

                            0
                            но ведь лееень ))
                            Но я проделал это ) Вы правы — не восстанавливает.
                  –2
                  в очередной раз на хабре появляется статья про линукс на несколько экранов, начинающаяся на «простой способ...» ;-)
                    0
                    Но ручками это всё набирать же не надо. Основная часть тут — вывод команд.
                    0
                    ext3grep прекрасно работает. Восстановил мне 2 гига данных на сервере на следующие сутки. И просто в использовании (хотя и функционален):
                    www.xs4all.nl/~carlo17/howto/undelete_ext3.html
                      0
                      А для JFS такого же типа программки нет?
                        0
                        Хоть там и написано filesystem independent, но а примерах JFS нет.
                          0
                          если у вас текстовые файлы удалены, то можно брутально прогрепать /dev/sda и вывести кусочки до и после )
                          Я так восстанавливал проект, когда случайно грохнул кучу файлов и лень было терять работу за день )
                        0
                        Спасибо за статью, интересно)
                        Хочу тоже опубликовать на мой взгляд интересную инфу, однако не хватает кармы)
                        палюсь: b10s.habrahabr.ru/blog/55490/
                          +1
                          ещё программулина под названием testdisk
                          работает и под *nix и под win понимает кучу файловых систем.
                          Однажды случайно отфарматал раздел /home в reiserfs. Восстановил ~85% всего что было утеряно.
                            0
                            Еще очень легко восстанавливать файлики с помощью magicrescue (есть в репозитории ubuntu).

                            Особенно хорошо эта программка восстанавливает мультимедиа-файлики: jpeg, png, mp3 и т.п. Пару раз восстанавливал данные со случайно отформатированной флешки — абсолютно без проблем.
                              0
                              Подскажите пожалуйста, а как конфиг составить для поиска файлов типа: *.gz, *.sql, *.bz?
                              0
                              А как в конфиге описать чтобы восстановить php файлы?
                              Вчера стал одним из любителей rm -rf * а ещё любитель не делать коммитов неделями :-)
                                0
                                TestDisc и PhotoRec оказались проще и быстрее. Запустил, выбрал диск откуда восстанавливать, куда сливать файло и все, сиди жди.

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

                                Самое читаемое