GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Unix/Linux stellt gelöschte Dateien wieder her

Der Link, den jemand in den Kommentaren bereitgestellt hat, ist wahrscheinlich Ihre beste Chance.

Linux debugfs Hack:Dateien wiederherstellen

Dieser Artikel sieht zwar ein wenig einschüchternd aus, ist aber eigentlich ziemlich einfach zu verfolgen. Im Allgemeinen sind die Schritte wie folgt:

  1. Verwenden Sie debugfs, um ein Dateisystemprotokoll anzuzeigen

    $ debugfs -w /dev/mapper/wks01-root
    
  2. An der debugfs-Eingabeaufforderung

    debugfs: lsdel
    
  3. Beispielausgabe

    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. Führen Sie den Befehl in debugfs

    aus
    debugfs: logdump -i <7536655>
    
  5. Datei-Inode ermitteln

    ...
    ...
    ....
    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. Führen Sie mit den obigen Inode-Informationen die folgenden Befehle aus

    # 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
    

Dateien wurden auf recovered.file.001 wiederhergestellt .

Andere Optionen

Wenn das Obige nichts für Sie ist, habe ich Tools wie photorec verwendet um Dateien in der Vergangenheit wiederherzustellen, aber es ist nur für Bilddateien ausgelegt. Ich habe ausführlich in meinem Blog in diesem Artikel mit dem Titel:

über diese Methode geschrieben

So stellen Sie beschädigte JPEG- und MOV-Dateien von der SDD-Karte einer Digitalkamera unter Fedora/CentOS/RHEL wieder her.


Mit ein paar Chancen kann ich manchmal gelöschte Dateien mit diesem Skript oder der nächsten Lösung in der Antwort wiederherstellen:

#!/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

Es gibt noch einen weiteren nützlichen Trick:Wenn Sie ein Muster in Ihren gelöschten Dateien kennen, geben Sie alt ein +sys +Ergebnis um neu zu starten und neu zu mounten im Nur-Lese-Modus, dann mit einer Live-CD, verwenden Sie grep auf der Festplatte suchen :

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

Bearbeiten Sie dann /tmp/recover um nur das zu behalten, was Ihre Datei(en) vorher waren.

Hey, wenn mit der Unix-Philosophie alles aus Dateien besteht, ist es an der Zeit, dies zu nutzen, oder?


Was bei mir funktioniert hat, wurde von arch angegeben (gilt nur für Textdateien):

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

wobei /dev/sdXN ist die Partition, die die verlorene Datei enthält (überprüfen Sie mit mount falls unsicher).

Dauert eine Weile, hat aber funktioniert, als ich versehentlich Quellcode gelöscht habe, den ich noch nicht übergeben hatte!


Linux
  1. Verschieben von Dateien unter Linux ohne mv

  2. So stellen Sie eine gelöschte Datei unter Linux wieder her

  3. Eine gelöschte Datei wiederherstellen??

  4. Spielt unter Linux/Unix .tar.gz im Vergleich zu .zip eine Rolle?

  5. Wie kann ich Dateien von einer ext4-Partition wiederherstellen/wiederherstellen?

AWK-Befehl unter Linux/Unix

ls-Befehl unter Linux/UNIX

So installieren Sie TestDisk unter Linux und stellen gelöschte Dateien wieder her

So verwenden Sie PhotoRec, um gelöschte Dateien in Linux/Ubuntu wiederherzustellen

So verwenden Sie Linux zum Wiederherstellen gelöschter Dateien

So komprimieren Sie eine Datei unter Linux