Windows nennt es seit über 10 Jahren einen Papierkorb. und wenn Sie auf "Löschen" klicken, wird explizit angegeben, dass die Datei verschoben und nicht gelöscht wird. rmhebt die Verknüpfung der der Datei zugeordneten i-Knoten auf.
Das Erste, woran Sie sich erinnern sollten, ist, dass Sie keine weiteren Schreibaktivitäten mehr auf dem Dateisystem ausführen.
Anschließend können Sie einige Tools ausprobieren, die das Dateisystem untersuchen und versuchen, Daten im gelöschten Knoten zu finden. ' extundelete' ist ein solches Tool bei sourceforge.
extundelete ist ein Dienstprogramm, mit dem gelöschte Dateien von einer ext3- oder ext4- Partition wiederhergestellt werden können. Das ext3-Dateisystem ist das am häufigsten verwendete Dateisystem unter Linux, und ext4 ist sein Nachfolger. extundelete verwendet die im Journal der Partition gespeicherten Informationen, um zu versuchen, eine von der Partition gelöschte Datei wiederherzustellen. Es gibt keine Garantie dafür, dass eine bestimmte Datei nicht gelöscht werden kann. Versuchen Sie daher immer, ein gutes Backup-System einzurichten, oder setzen Sie nach der Wiederherstellung Ihrer Dateien mindestens eines ein!
Das Nicht-Weiterschreiben kann nicht genug betont werden. Es ist nicht integriert, daher ist "Wiederherstellen" eine Frage der Wiederherstellungssoftware, die die verbleibenden Teile wieder zusammensetzt, bevor das Dateisystem die Daten mit zukünftigen Schreibvorgängen überschreibt.
Jeremy M
2
Der erste Schritt wäre, ein nicht wiederhergestelltes Tool für das Dateisystem zu versuchen, das für Ihr Root-Laufwerk verwendet wird.
Wie bereits erwähnt, sind ext3grep und extundelete die Tools für die ext-Dateisystemfamilie.
Eine weitere Option, die vom Dateityp abhängt, der wiederhergestellt werden soll, besteht darin, einen Datei-Carver auf dem Laufwerk auszuführen. Dies dauert länger als die oben genannten Dienstprogramme.
An erster Stelle steht eine Option, die ich dafür verwendet habe.
Die letzte Option, wenn Sie zufällig eine bestimmte Zeichenfolge in der Datei kennen, besteht darin, das Laufwerk in einem Hex-Editor zu öffnen und nach dieser Zeichenfolge zu suchen.
Abhängig von Ihrer Einrichtung stellt Ihr Fenstermanager möglicherweise einen Papierkorb zur Verfügung.
Letztendlich gibt es absolut keinen Ersatz für ein gutes Backup-System-Setup. Finden Sie eine, die ihre Arbeit erledigt, ohne dass Sie sie berühren, und richten Sie sie ein. Sie sparen sich auf lange Sicht viel Zeit, Ärger und Schmerzen.
Da undelete_ext3 weg zu sein scheint, ist hier ein bescheidenes Bash-Skript, das mir geholfen hat, einige Dateien wiederherzustellen, die mit extundelete oder debugfs nicht erhältlich waren . Lösung geteilt.
Sie können eine Liste der zu betrachtenden Blöcke vorab anzeigen, siehe PRESEED. Es dauert eine Blocknummer pro Zeile. Wenn Sie nicht vorab festlegen, werden standardmäßig alle Blöcke durchsucht.
Für jeden Block werden die ersten Bytes auf gzip-Inhalt geprüft.
Wenn dies erfolgreich ist, wird der betreffende Block mit einer Pistole versehen, um bei Byte 257 weiter nach "ustar" -Strings zu suchen und ein Teerarchiv zu demarkieren.
Schließlich werden Daten, die mit einem Dateimuster übereinstimmen, extrahiert (Suffixpfadstil unter Verwendung der Platzhalteroption von tar) und nach einer bestimmten Zeichenfolge durchsucht. Siehe hierzu die Variablen FILE_IN_TAR und FIT_CONTENT .
Wenn gefunden, speichern Sie die Datei.
Da Sie wahrscheinlich einen anderen Anwendungsfall haben, erhalten Sie möglicherweise einen Rahmen, auf den Sie Ihre eigene Filterung stützen können. Sie müssen auf jeden Fall die Werte anpassen, wenn Sie nach anderen Dateitypen suchen.
#!/bin/bash# Brute force (linear) search specific tar files with# certain contents on ext2 / ext3 / ext4 devices or files## .. this is a last resort if extundelete and/or debugfs# did not find what you were looking for and limited# in that recoverable data must not have been stored# in fragments, i.e. non-sequentially[[-n "$2"]]||{
echo "usage: $0 [ device | imagefile ] "\
"[ destdir_for_recovered_data ] "\
"[ max_blocks_to_search (optional) ]"
exit 1}
IMG=$1
DEST=$2
TMP=/dev/shm/cand.tmp
PRESEED=/dev/shm/cand.list
GZMAGIC=$(echo -e "\x1f\x8b\x08")
TARMAGIC=$(echo -e "ustar")# max bytes to read into $TMP when a .tar.gz has been found
LEN=$((160*1024))# pick $TMP for recovery based on matched strings..
FILE_IN_TAR="debian/rules"# ..in the tar index (suffix-search)
FIT_CONTENT="link-doc="# ..within FILE_IN_TAR matches# determine FS parameters
BLOCKS=$(tune2fs -l $IMG | grep -Po"(?<=^Block count:).*"| xargs)
BS=$(tune2fs -l $IMG | grep -Po"(?<=^Block size:).*"| xargs)
LEN=$((LEN/BS))function _dd { dd $@ 2>/dev/null ;}function _gunzip { gunzip $@ 2>/dev/null ;}function _tar { tar $@ 2>/dev/null ;}function inspect_block {
bnum=$1
if _dd if="$IMG" skip=$bnum bs=$BS count=1| tee "$TMP" \
| _dd bs=1 count=3 \
| grep -qF "$GZMAGIC"thenif _gunzip -c "$TMP" \
| _dd bs=1 count=5 skip=257 \
| grep -qF "$TARMAGIC"then
_dd if="$IMG" skip=$((bnum+1)) bs=$BS count=$((LEN-1))>>"$TMP"
echo -n found $bnum.tar.gz
if _tar xzf "$TMP"-O --wildcards *"$FILE_IN_TAR" \
| grep -qF "$FIT_CONTENT"then
echo " ..picked, stripping trailing garbage:"
exec 3>&1
gunzip -c "$TMP"2>&3| gzip > $DEST/$bnum.tar.gz
exec 3>&-else
echo
fififi
echo -ne "$((bnum+1)) / $BLOCKS done.\r">&2}if[[-f "$PRESEED"]]thenwhile read bnum
do inspect_block $bnum
done<"$PRESEED"elsefor(( bnum =0; bnum < ${3:-$BLOCKS}; bnum++))do inspect_block $bnum
donefi| gzip >"$PRESEED.log.gz"
echo
Beenden Sie die Verwendung des betreffenden Dateisystems, nachdem Sie so schnell wie möglich eine fehlerhafte Löschung festgestellt haben.
Dieses Skript schlägt wahrscheinlich bei großen Dateien fehl. Es analysiert nicht die übergeordneten Strukturen des Dateisystems.
Grundsätzlich sind moderne Dateisysteme nicht dafür ausgelegt, nicht verknüpfte Daten zuverlässig wiederherzustellen. Daher gibt es keine Garantie für die Wiederherstellung verlorener Daten.
Wenn die Datei größer als 12 Blöcke ist, werden Sie wahrscheinlich Indirektionsblöcke zwischen den Datenblöcken finden. In diesem Fall führt das einfache sequentielle Lesen zu einer Müllausgabe. Wenn Sie jedoch die Indirektionsblöcke finden können, können Sie den Rest der Datei wiederherstellen (es sei denn, sie wurde natürlich überschrieben).
rm
hebt die Verknüpfung der der Datei zugeordneten i-Knoten auf.Antworten:
Das Erste, woran Sie sich erinnern sollten, ist, dass Sie keine weiteren Schreibaktivitäten mehr auf dem Dateisystem ausführen.
Anschließend können Sie einige Tools ausprobieren, die das Dateisystem untersuchen und versuchen, Daten im gelöschten Knoten zu finden. '
extundelete
' ist ein solches Tool bei sourceforge.quelle
Der erste Schritt wäre, ein nicht wiederhergestelltes Tool für das Dateisystem zu versuchen, das für Ihr Root-Laufwerk verwendet wird.
Wie bereits erwähnt, sind ext3grep und extundelete die Tools für die ext-Dateisystemfamilie.
Eine weitere Option, die vom Dateityp abhängt, der wiederhergestellt werden soll, besteht darin, einen Datei-Carver auf dem Laufwerk auszuführen. Dies dauert länger als die oben genannten Dienstprogramme.
An erster Stelle steht eine Option, die ich dafür verwendet habe.
Die letzte Option, wenn Sie zufällig eine bestimmte Zeichenfolge in der Datei kennen, besteht darin, das Laufwerk in einem Hex-Editor zu öffnen und nach dieser Zeichenfolge zu suchen.
Abhängig von Ihrer Einrichtung stellt Ihr Fenstermanager möglicherweise einen Papierkorb zur Verfügung.
Letztendlich gibt es absolut keinen Ersatz für ein gutes Backup-System-Setup. Finden Sie eine, die ihre Arbeit erledigt, ohne dass Sie sie berühren, und richten Sie sie ein. Sie sparen sich auf lange Sicht viel Zeit, Ärger und Schmerzen.
quelle
Ich werde es versuchen, ext3grep:
http://www.xs4all.nl/~carlo17/howto/undelete_ext3.html
Sie müssen die Partition vor dem Start aushängen .
HTH
quelle
Da undelete_ext3 weg zu sein scheint, ist hier ein bescheidenes Bash-Skript, das mir geholfen hat, einige Dateien wiederherzustellen, die mit extundelete oder debugfs nicht erhältlich waren . Lösung geteilt.
Sie können eine Liste der zu betrachtenden Blöcke vorab anzeigen, siehe PRESEED. Es dauert eine Blocknummer pro Zeile. Wenn Sie nicht vorab festlegen, werden standardmäßig alle Blöcke durchsucht.
Da Sie wahrscheinlich einen anderen Anwendungsfall haben, erhalten Sie möglicherweise einen Rahmen, auf den Sie Ihre eigene Filterung stützen können. Sie müssen auf jeden Fall die Werte anpassen, wenn Sie nach anderen Dateitypen suchen.
Beispielaufruf:
./ext-undelete-tar-gz.sh devimage found_files/
quelle