Unix / Linux восстановить удаленные файлы

Есть ли команда для восстановления/восстановления удаленных файлов с помощью rm ?

  $ rm -rf/path/to/ myfile  

Как мне восстановить myfile ? Если есть такой инструмент, как я могу его использовать?


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

Linux debugfs Хак: отменить удаление файлов

Эта статья, хотя и выглядит немного пугающей, на самом деле довольно проста. В общем, шаги следующие:

  1. Используйте debugfs для просмотра журнала файловых систем

      $ debugfs  -w/dev/mapper/wks01-root  
  2. В приглашении debugfs

       debugfs: lsdel  
  3. Пример вывода

      Блоки размера режима владельца индексного дескриптора Время удалено 23601299 0 120777  3 1/1 Вт 13 марта 16:17:30 20127536655 0 120777 3 1/1 Вт 1 мая 06:21:22 20122 найдены удаленные inodes.  
  4. Запустить команду в debugfs

      debugfs: logdump -i 
  5. Определить индексный дескриптор файлов

      .......... вывод усеченный Fast_link_dest: bin Блоки: (0 + 1): 7235938 Блок FS 7536642 зарегистрирован в последовательности  38402086, блок журнала 26711 (блок inode для inode 7536655): Inode: 7536655 Тип: символьная ссылка Режим: 0777 Флаги: 0x0 Генерация: 3532221116 Пользователь: 0 Группа: 0 Размер: 3 ACL файла: 0 ACL каталога: 0 Ссылки: 0 Количество блоков:  0 Фрагмент: Адрес: 0 Номер: 0 Размер: 0 ctime: 0x4f9fc732  - Вт 1 мая 06:21:22 2012 atime: 0x4f9fc730 - Вт 1 мая 06:21:20 2012 mtime: 0x4f9fc72f - Вт 1 мая 06:21:19 2012 dtime: 0x4f9fc732 - Вт 1 мая 06:21  : 22 2012 Fast_link_dest: bin Блоки: (0 + 1): 7235938 Нет магического числа в блоке 28053: конец журнала.  
  6. С указанным выше Информация об индексных дескрипторах запустите следующие команды

      # dd if =/dev/mapper/wks01-root of = recovered.file.001 bs = 4096 count = 1 skip = 7235938 # file  recovered.file.001file: текст ASCII с очень длинными строками  

Файлы были восстановлены в recovered.file.001 .

Другие варианты

Если это не для вас, я использовал такие инструменты, как photorec для восстановления файлы в прошлом, но он предназначен только для файлов изображений. Я подробно писал об этом методе в своем блоге в этой статье под названием:

Как восстановить поврежденные файлы jpeg и mov с SDD-карты цифровой камеры в Fedora/CentOS/RHEL.


С небольшой долей вероятности иногда я могу восстановить удаленные файлы с помощью этого скрипта или следующего решения в ответе:

  #!/bin/bashif [[!  $ 1]];  затем echo -e "Использование:  n  n  t $ 0 'имя файла'" exit 1fif = $ (ls 2>/dev/null -l/proc/*/fd/* | fgrep "$ 1 (удалено" | awk  '{print $ 9}') if [[$ f]]; then echo "fd $ f found ..." cp -v "$ f" "$ 1" else echo> & 2 "Не найден fd ... "exit 2fi  

Есть еще один полезный трюк: если вы знаете шаблон в удаленных файлах, введите alt + sys + resuo для перезагрузки + перемонтировать в режиме только для чтения, затем с live-cd используйте grep для поиска в жесткий диск:

  grep -a -C 500 'известный шаблон'/dev/sda | tee/tmp/recovery  

затем отредактируйте /tmp/restore , чтобы сохранить только то, что было вашим файлом (-ами) раньше.

Эй, если с философией unix все файлы, пора воспользоваться этим, не так ли?


С небольшими шансами иногда я могу восстановить удаленные файлы с помощью этот сценарий или следующее решение в ответе:

  #!/bin/bashif [[! $ 1]]; затем echo -e "Использование:  n  n  t $ 0  'имя файла' "exit 1fif = $ (ls 2>/dev/null -l/proc/*/fd/* | fgrep" $ 1 (удалено "| awk '{print $ 9}') if [[$ f]]  ; затем echo "fd $ f found ..." cp -v "$ f"  "$ 1" else echo> & 2 "Файл не найден ..." exit 2fi  

Есть еще один полезный трюк: если вы знаете шаблон в удаленных файлах, введите alt + sys + resuo для перезагрузки + перемонтировать в режиме только для чтения, затем с live-cd используйте grep для поиска на жестком диске:

  grep -a -C 500 'известный шаблон'/dev/sda |  tee/tmp/restore  

затем отредактируйте /tmp/recovery , чтобы сохранить только то, что было вашим файлом (-ами) раньше.

Эй, если с философией unix все — это файлы, пора воспользоваться этим, нет?


То, что сработало для меня, было предоставлено Arch (применимо только к текстовым файлам):

  grep -a -C 200 -F 'Уникальная строка в текстовом файле'/dev/sdXN  

где /dev/ sdXN — это раздел, содержащий потерянный файл (проверьте с помощью mount , если не уверены).

Занимает немного времени, но работал, когда я случайно удалил некоторые исходный код, который я еще не зафиксировал!


То, что сработало для меня, было предоставлено Arch (применяется только в текстовые файлы):

  grep -a -C 200 -F 'Уникальная строка в текстовом файле'/dev/sdXN  

где /dev/sdXN — это раздел, содержащий потерянный файл (проверьте с помощью mount , если не уверены).

Принимает немного, но сработало, когда я случайно удалил какой-то исходный код, который еще не зафиксировал!


Хотя это Вопрос i Решено и несколько лет назад, я хочу упомянуть утилиту testdisk.

Как восстановить файлы с помощью testdisk хорошо объяснено в этом руководстве. Чтобы восстановить файлы, запустите testdisk/dev/sdX и выберите тип таблицы разделов.. После этого выберите [Advanced] Filesystem Utils , затем выберите свой раздел и выберите [Undelete] . Теперь вы можете просматривать и выбирать удаленные файлы и копировать их в другое место в файловой системе.


Хотя это Вопрос решен и несколько лет назад, я хочу упомянуть утилиту testdisk.

Как восстановить файлы с помощью testdisk хорошо объяснено в этом руководстве. Чтобы восстановить файлы, запустите testdisk/dev/sdX и выберите тип таблицы разделов. После этого выберите [Advanced] Filesystem Utils , затем выберите свой раздел и выберите [Undelete] . Теперь вы можете просматривать и выбирать удаленные файлы и копировать их в другое место в файловой системе.


Инструменты восстановления — Командная строка:

  • testdisk (3) (5)
  • photorec (3)
  • extundelete (3)

Средства восстановления — графический интерфейс:

  • R-Linux (2) (5)
  • R-Studio (1) (5) (4)
  • Проводник UFS (1) (5) (4)
  • Recovery Explorer (1) (5) (4)

Информация:

По моему личному опыту, я возвращаю свои данные с помощью ufs-explorer и photorec

(1) = Не с открытым исходным кодом, не бесплатно

(2) = Не с открытым исходным кодом, бесплатно

(3) = С открытым исходным кодом и бесплатно

(4) = Есть поддержка NTFS

(5 ) = Есть функция структуры каталогов


Источники: Linuxhacks.org
Раскрытие: я владелец Linuxhacks.org


Инструменты восстановления — Командная строка:

  • testdisk (3) (5)
  • photorec (3)
  • extundelete (3)

Средства восстановления — графический интерфейс:

  • R -Linux (2) (5)
  • R-Studio (1) (5) (4)
  • UFS Explorer (1) (5) (4)
  • Recovery Explorer (1) (5) (4)

Информация:

По моему личному опыту, я возвращаю свои данные с помощью ufs-explorer и photorec

(1) = Не с открытым исходным кодом, не бесплатно

(2) = Не с открытым исходным кодом, бесплатно

(3) = Открытый исходный код и бесплатно

(4) = Имеет поддержку NTFS

(5) = Есть функция структуры каталогов


Источники: Linuxhacks.org
Раскрытие: я владелец Linuxhacks.org


Альтернативой может быть использование del вместо rm для удаления:

http://fex.belwue.de/fstools/del.html

del имеет функцию восстановления и работает с любой файловой системой.

Конечно, это не решение, если вы уже удалили свои файлы с помощью rm: -}


Альтернативой может быть использование del вместо rm для удаления:

http://fex.belwue.de/fstools/del.html

del имеет функцию восстановления удаления и работает с любой файловой системой.

Конечно, это не решение, если вы уже удалили свои файлы с помощью rm: -}


подключить диск через внешний интерфейс

  1. mount
  2. umount/dev/{sd * }
  3. extundelete --restore-all/dev/{sd *}
  4. результаты переходят в домашнюю папку на загрузочном диске
  5. бонусные баллы: напишите для этого графический интерфейс

См. эту ссылку для получения дополнительной информации: восстановить только что удаленный файл на ext4 с помощью extundelete.


подключить диск через внешний интерфейс

  1. mount
  2. umount/dev/{sd *}
  3. extundelete --restore-all/dev/{sd *}
  4. результаты переходят в домашнюю папку при загрузке диск
  5. бонусные баллы: напишите для этого графический интерфейс

См. эту ссылку для получения дополнительной информации: восстановить только что удаленный файл на ext4 с помощью extundelete.


На прошлой неделе у меня была такая же проблема, и я перепробовал много программ, таких как debugfs, photorec, ext3grep и extundelete . ext3grep была лучшей программой для восстановления файлов. Синтаксис очень прост:

  ext3grep image.img --restore-all  

или:

  ext3grep/dev/sda3 --restore-all --after `date -d '2015-01-01 00:00:00' '+% s' '--before` date -d  '2015-01-02 00:00:00' '+% s'`  

Это видео представляет собой мини-руководство, которое может вам помочь.


На прошлой неделе у меня была такая же проблема, и я перепробовал множество программ, таких как debugfs, photorec, ext3grep и extundelete. ext3grep была лучшей программой для восстановления файлов. Синтаксис очень прост:

  ext3grep image.img --restore-all  

или:

  ext3grep/dev/sda3 --restore-all --after `date -d '2015-01-01 00:00:00' '+% s' '--before` date -d  '2015-01-02 00:00:00' '+% s' ' 

Это видео представляет собой мини-руководство, которое может вам помочь.


Я не согласен с тем, что это невозможно, просто очень-очень сложно, и я никогда не делал этого в Linux:

Когда файлы удаляются, они фактически не удаляются. Что происходит, так это то, что пространство, которое они были на жестком диске, сбрасывается, поэтому, если компьютер пытается записать туда данные, ничего не жалуется. Как правило, данные на жестком диске, которые вы считали удаленными, могут быть там почти год спустя. Или, по крайней мере, это мой опыт работы на машине с Windows. Я не уверен, работает ли он таким же образом из командной строки в Linux, но вам, вероятно, понадобится отдельный Live CD, чтобы открыть такой раздел, и также нет гарантии, что файлы все еще там. Я делал это на windows xp несколько раз, используя восстановление нулевого предположения. Я уверен, что есть похожий инструмент, если вы посмотрите достаточно внимательно.


Я не согласен, что это невозможно, просто очень-очень сложно, и ни то, ни другое делал ли я это когда-нибудь в Linux:

Когда файлы удаляются, они фактически не удаляются. Что происходит, так это то, что пространство, которое они были на жестком диске, сбрасывается, так что, если компьютер пытается записать данные на него, ничего не жалуется. Как правило, данные на жестком диске, которые вы считали удаленными, могут оказаться там почти год спустя. Или, по крайней мере, это мой опыт работы на машине с Windows. Я не уверен, работает ли он таким же образом из командной строки в Linux, но вам, вероятно, понадобится отдельный Live CD, чтобы открыть такой раздел, и также нет гарантии, что файлы все еще там. Я делал это на windows xp несколько раз, используя восстановление нулевого предположения. Я уверен, что есть похожий инструмент, если вы присмотритесь.


Когда вы удаляете файл, количество ссылок в таблице индексных дескрипторов для этого файла уменьшается на единицу. В Unix, когда счетчик ссылок падает до 0, блоки данных для этого файла помечаются как свободные, и обычно ссылки на эти блоки данных теряются. Я только что обнаружил из комментария @ fedorqui, что может быть какой-то способ получить доступ к этим блокам, но это применимо только к файловой системе ext3.

Один из способов сохранить файлы — написать функцию, которая позволит вы должны переместить файлы в корзину (скажем, $ HOME/.trash ) и восстановить оттуда необходимые файлы. Этой функции можно присвоить псевдоним rm . Вы можете запланировать задание cron для удаления файлов, которые находились в корзине определенное количество дней.


Когда вы удаляете файл , количество ссылок в таблице индексных дескрипторов для этого файла уменьшается на единицу. В Unix, когда счетчик ссылок падает до 0, блоки данных для этого файла помечаются как свободные, и обычно ссылки на эти блоки данных теряются. Я только что обнаружил из комментария @ fedorqui, что может быть какой-то способ получить доступ к этим блокам, но это применимо только к файловой системе ext3.

Один из способов сохранить файлы — написать функцию, которая позволит вы должны переместить файлы в корзину (скажем, $ HOME/. мусор ) и восстановите оттуда необходимые файлы. Этой функции можно присвоить псевдоним rm . Вы можете запланировать задание cron для удаления файлов, которые находились в области корзины в течение определенного количества дней.


Это может сэкономить проблемы для некоторых из вас.
Если вы когда-либо использовали gedit для редактирования этого файла, по умолчанию будет создана копия этого файла.
Например, предположим, что у нас есть случайно удалил myfile.txt.
В папке, которая раньше содержала файл, который вы только что удалили, используйте эти команды, и вы восстановите копию оттуда:
ls | grep 'myfile.txt ~'
Если повезет, вы его найдете, а затем:
cp 'myfile.txt ~' 'myfile.txt '
Я только что восстановил файл этим методом. Удачи!


Это может спасти проблемы для некоторых из вас.
Если вы когда-либо использовали gedit для редактирования этого файла, по умолчанию будет создана копия этого файла.
Например, предположим, что мы случайно удалили myfile.txt .
В папке, которая раньше хранила только что удаленный файл, используйте эти команды, и вы восстановите копию оттуда:
ls | grep 'myfile.txt ~'
Если повезет, вы его найдете, а затем:
cp 'myfile.txt ~' 'myfile.txt '
Я только что восстановил файл этим методом. Удачи!

Оцените статью
techsly.ru
Добавить комментарий