Dateien auf ext4 wiederherstellen


11

Meine Mutter hat pro Unfall einige wichtige Dateien auf ihr / tmp gelegt. Jetzt sind sie natürlich weg.

Dies geschah gestern (2 Stiefel der Maschine seitdem)

Ich möchte versuchen, die Dateien wiederherzustellen. Sie befanden sich auf / tmp, das sich auf derselben Partition befand wie der Rest von /, daher benötige ich ein Tool, das auf einem gemounteten System ausgeführt wird (oder ich könnte eine Live-CD verwenden ...).

Im Moment versuche ich testdisk auf einer Systemrescuecd, die ich gerade heruntergeladen habe. Ich kann einige Dateien von / tmp bekommen, aber nicht alle. (Ist es das richtige Tool? Was genau sind diese "roten" Dateien? Können nur einige von ihnen wiederhergestellt werden?)

Antworten:


14

Sie können auch verwenden extundelete

Hängen Sie zuerst umountdas Dateisystem aus, in dem die Dateien gelöscht wurden.
Dann lesen Sie das Kapitel Was tun , wenn Sie eine Datei gelöscht haben .

Sie können extundeleteaus dem klassischen Ubuntu-Repository installieren :

sudo apt-get install extundelete

Oder besser, Sie können die neueste Version herunterladen und kompilieren:

cd ~/Download
tar -xf extundelete-*.*.*-.tar.bz2  #Replace *.*.* by the version
cd      extundelete-*.*.*
sudo apt-get install e2fslibs-dev   #Required for compilation
./configure
make
sudo make install
extundelete --version               #Should be your *.*.* version

Anwendungsbeispiel: Stellen Sie alle gelöschten Dateien aus dem Verzeichnis Imagesin einem neu erstellten Verzeichnis wieder herrestore

sudo extundelete --restore-directory Images/ -o restore /dev/sda3

Schlechte Nachrichten, wenn Sie Ihre Datei XXXXim folgenden Format sehen:

Unable to restore inode NNN (Images/XXXX): Space has been reallocated.

Alle wiederhergestellten Dateien anzeigen (suchen Sie nach Ihrer Datei):

find restore -name '*'

Sichern Sie Ihre Datei (en) und entfernen Sie dieses temporäre Verzeichnis restore

cp restore/Images/XXXX MY_BACKUP_DIRECTORY
sudo rm -rf restore  

3
Diese Antwort hat buchstäblich gerade meinen Job gerettet. Vielen Dank.
Twifty

10

Die Datenwiederherstellung, insbesondere auf EXT-Dateisystemen, sollte von einer Live-CD oder einem anderen System versucht werden, das nicht von der Partition abhängt, von der Sie nicht löschen. Das Aushängen oder erneutes Bereitstellen der Festplatte als schreibgeschützt hilft bei der Wiederherstellung erheblich.

Die meiste Zeit versuche ich, ein Image der Partition oder der Festplatte mit ddeinem ähnlichen Tool zu erstellen , damit ich nicht an der Festplatte selbst arbeite:

dd if=/dev/sd[xx] of=/media/backup_drive/recovery.img

Sobald Sie Ihr Bild haben, können Sie mit einem Tool ext3grepversuchen, die gesuchten Dateien zu finden. Es gibt viele verschiedene Schalter, die Sie ausprobieren können, aber dies könnte ein guter Anfang sein:

ext3grep --restore-file 'tmp/moms-file.txt' recovery.img

Das ext3grepDienstprogramm bietet auch verschiedene Möglichkeiten zum Durchsuchen des Dateisystems, wenn Sie den Namen der Datei nicht kennen. Überprüfen Sie ext3grep --helpdie verschiedenen Suchmethoden.


Es wäre schön, wenn Sie die genauen Schritte hinzufügen könnten?
saji89

@ saji89 Beispiel für eine Verwendung hinzugefügt - auch behoben, um auf das richtige Dienstprogramm zu verlinken!
Windigo

nett. jetzt ... funktioniert es mit ext4?
Josinalvo

1
@josinalvo Ich habe mit einem EXT4-Volume gearbeitet, als ich es ausprobiert habe, und es hat funktioniert. Es hat nicht die Dateien gefunden, nach denen ich gesucht habe, aber ich glaube, ich hatte das Zeitfenster verpasst.
Windigo


0

Ich konnte meine Crontab-Datei nicht mit ext4magic oder extundelete wiederherstellen.

Auf Debian ist die Crontab für root hier:

/var/spool/cron/crontabs/root

Mit dem folgenden Befehl konnte ich meine Crontab jedoch zumindest manuell aus den Protokollen wiederherstellen.

 grep CRON /var/log/syslog.* -i| awk -F " CMD " {'print $2;'} |sort | uniq

Es werden nur die ausgeführten Cron-Jobs ausgegeben (keine Timings), aber zumindest ist dies viel mehr als ein Neuanfang.

Wenn Sie sich nicht erinnern, wie oft bestimmte Cron-Jobs ausgeführt werden, erstellen Sie ein vollständiges Protokoll, z. B. syslog.1. Dadurch erhalten Sie die Anzahl der Läufe im Laufe des Tages:

grep CRON /var/log/syslog.1 -i| awk -F " CMD " {'print $2;'} |sort | uniq -c |sort -n

0

AnalyzeEXT

Analysieren Sie Datenblöcke für EXT-Verzeichnisdaten.

Eine ausführliche Dokumentation zu EXT4 finden Sie hier:

Laden Sie das Perl-Skript mit herunter

git clone https://github.com/halpomeranz/analyzeEXT

Keine Garantie, kann jedoch möglicherweise gelöschte Dateisysteme rekonstruieren.


1
Was ist dieses Tool genau? Wie benutzt man es? Ich habe die Repo-Beschreibung und die Hilfemeldung im Skript gelesen , aber es gibt nicht viele Details.
Wjandrea

Wirf einen Blick auf das Perl-Skript. Die CLI-Hilfe stimmt nicht mit dem Skript überein!
abu_bua

Weitere Details finden Sie hier. Ich bin darauf gestoßen - habe es nie benutzt! youtube.com/watch?v=6pzm6909IvY
jouell

@jouell Ich habe 2:30 des Videos gesehen und er hat das Drehbuch noch nicht erwähnt. Könnten Sie Ihre Antwort bearbeiten , um eine kurze Zusammenfassung hinzuzufügen?
Wjandrea
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.