GNU/Linux >> Znalost Linux >  >> Linux

Unix/Linux obnovit/obnovit smazané soubory

Odkaz, který někdo uvedl v komentářích, je pravděpodobně vaše nejlepší šance.

Linux debugfs Hack:Undelete Files

Tento zápis, i když vypadá trochu zastrašující, je ve skutečnosti poměrně přímočarý. Obecně jsou kroky následující:

  1. Použijte debugfs k zobrazení protokolu souborových systémů

    $ debugfs -w /dev/mapper/wks01-root
    
  2. Na výzvu debugfs

    debugfs: lsdel
    
  3. Ukázkový výstup

    Inode  Owner  Mode    Size    Blocks   Time deleted
    23601299      0 120777      3    1/   1 Tue Mar 13 16:17:30 2012
    7536655      0 120777      3    1/   1 Tue May  1 06:21:22 2012
    2 deleted inodes found.
    
  4. Spusťte příkaz v debugfs

    debugfs: logdump -i <7536655>
    
  5. Určete inode souborů

    ...
    ...
    ....
    output truncated
        Fast_link_dest: bin
        Blocks:  (0+1): 7235938
      FS block 7536642 logged at sequence 38402086, journal block 26711
        (inode block for inode 7536655):
        Inode: 7536655   Type: symlink        Mode:  0777   Flags: 0x0   Generation: 3532221116
        User:     0   Group:     0   Size: 3
        File ACL: 0    Directory ACL: 0
        Links: 0   Blockcount: 0
        Fragment:  Address: 0    Number: 0    Size: 0
        ctime: 0x4f9fc732 -- Tue May  1 06:21:22 2012
        atime: 0x4f9fc730 -- Tue May  1 06:21:20 2012
        mtime: 0x4f9fc72f -- Tue May  1 06:21:19 2012
        dtime: 0x4f9fc732 -- Tue May  1 06:21:22 2012
        Fast_link_dest: bin
        Blocks:  (0+1): 7235938
    No magic number at block 28053: end of journal.
    
  6. S výše uvedenými informacemi o inode spusťte následující příkazy

    # dd if=/dev/mapper/wks01-root of=recovered.file.001 bs=4096 count=1 skip=7235938
    # file recovered.file.001
    file: ASCII text, with very long lines
    

Soubory byly obnoveny na recovered.file.001 .

Další možnosti

Pokud výše uvedené není pro vás, použil jsem nástroje jako photorec obnovit soubory v minulosti, ale je zaměřen pouze na soubory obrázků. O této metodě jsem rozsáhle psal na svém blogu v tomto článku s názvem:

Jak obnovit poškozené soubory jpeg a mov z karty SDD digitálního fotoaparátu na Fedora/CentOS/RHEL.


S trochou šancí se mi někdy podaří obnovit smazané soubory pomocí tohoto skriptu nebo dalšího řešení v odpovědi:

#!/bin/bash

if [[ ! $1 ]]; then
    echo -e "Usage:\n\n\t$0 'file name'"
    exit 1
fi

f=$(ls 2>/dev/null -l /proc/*/fd/* | fgrep "$1 (deleted" | awk '{print $9}')

if [[ $f ]]; then
    echo "fd $f found..."
    cp -v "$f" "$1"
else
    echo >&2 "No fd found..."
    exit 2
fi

Existuje další užitečný trik:pokud znáte vzor ve smazaných souborech, napište alt +sys +resuo pro reboot+remount pouze pro čtení a poté s live-cd použijte grep pro vyhledávání na pevném disku:

grep -a -C 500 'known pattern' /dev/sda | tee /tmp/recover

pak upravte /tmp/recover zachovat pouze to, co byly vaše soubory dříve.

Hej, pokud s filozofií unixu jsou všechno soubory, je čas toho využít, ne?


To, co mi fungovalo, dal arch (platí pouze pro textové soubory):

grep -a -C 200 -F 'Unique string in text file' /dev/sdXN

kde /dev/sdXN je oddíl obsahující ztracený soubor (zkontrolujte mount pokud si nejste jisti).

Chvíli to trvá, ale fungovalo to, když jsem omylem smazal nějaký zdrojový kód, který jsem ještě nespáchal!


Linux
  1. Jak obnovit smazaný soubor v Linuxu

  2. Obnovit smazaný soubor??

  3. Na Linuxu/Unixu záleží na .tar.gz versus .zip?

  1. Přesouvání souborů na Linuxu bez mv

  2. 10 příkladů příkazů Cat pro správu souborů v systému Linux / UNIX

  3. Jak mohu obnovit/obnovit soubory z oddílu ext4?

  1. Kopírování souborů v Linuxu

  2. Jak obnovit smazané soubory v Linuxu [Příručka pro začátečníky]

  3. Jak obnovit smazané soubory v Linuxu