So stellen Sie versehentlich von rm gelöschte Dateien in einer Linux-Umgebung wieder her

So stellen Sie versehentlich von rm gelöschte Dateien in einer Linux-Umgebung wieder her

Vorwort

Wenn es darum geht, Dateien unter Linux zu löschen, ist sudo rm -rf /* ein Muss. Jedes Mal, wenn ich diesen Befehl sehe, denke ich an ein lustiges Bild:

rm

Diese Erklärung zum „Müll aufräumen“ ist wirklich „genau richtig“. Es wird gesagt, dass ein Neuling im Forum eine Frage gestellt hat und jemand scherzhaft mit dem Befehl sudo rm -rf /* geantwortet hat, und das Problem war gelöst und der Neuling wurde getötet~

Vom Löschen der Datenbank bis zum Weglaufen – ein kleiner Trick führt jeden Tag ins Gefängnis. Daher müssen wir bei der Verwendung des Befehls rm -rf vorsichtig sein, der Shift+Delete unter Windows entspricht. Die Datei wird nicht in den Papierkorb verschoben, sondern direkt dauerhaft gelöscht. Die Ausführung des Befehls rm unter Linux entspricht einer dauerhaften Löschung.

Obwohl sudo rm -rf /* extrem gefährlich ist, schreiben wir es selten direkt. Der Befehl rm wird jedoch immer noch häufig verwendet. Erst vor ein paar Tagen habe ich das Shell-Skript, das ich mit so viel Mühe geschrieben habe, direkt mit rm -rf gelöscht. Zum Glück habe ich den Inhalt vorher auf der Konsole ausgedruckt, sonst wäre das ganze Skript umsonst geschrieben worden.

Gibt es nach RM noch Hoffnung?

Obwohl der Befehl rm eine dauerhafte Löschung bedeutet, heißt das nicht, dass die Dateien nicht wiederhergestellt werden können. Die Chancen auf eine Wiederherstellung sind jedoch unterschiedlich. Tatsächlich markiert der Löschbefehl nur den Dateiknoten zum Löschen und löscht den Dateiinhalt nicht wirklich. Wenn die Datei unmittelbar nach dem Löschen wiederhergestellt wird, ist die Erfolgswahrscheinlichkeit immer noch sehr hoch. Wenn jedoch andere Benutzer diese Maschine verwendet haben oder einige Schreibvorgänge auf der Festplatte ausgeführt wurden, kann dieser Teil der Daten bald überschrieben werden. Zu diesem Zeitpunkt ist es grundsätzlich unmöglich, die Datei wiederherzustellen.

Abrufen von Dateien mit „first“

foremost ist ein Befehlszeilentool, das Dateien auf Grundlage der Kopf- und Fußzeileninformationen und der integrierten Datenstruktur der Datei wiederherstellt. Die Installations- und Wiederherstellungsschritte sind wie folgt:

foremost installieren

Das CentOS-System kann durch Ausführen des Befehls sudo yum install https://forensics.cert.org/centos/cert/7/x86_64//foremost-1.5.7-13.1.el7.x86_64.rpm -y vervollständigt werden.

Wenn es sich um ein Ubuntu-System handelt, versuchen Sie bitte den Befehl: sudo apt install foremost

[root@VM-0-3-centos ~]# sudo yum install https://forensics.cert.org/centos/cert/7/x86_64//foremost-1.5.7-13.1.el7.x86_64.rpm -y
Geladene Plugins: fastestmirror, langpacks
Das Repository epel ist in der Konfiguration mehr als einmal aufgeführt
leading-1.5.7-13.1.el7.x86_64.rpm | 46 kB 00:00:01
Untersuchen von /var/tmp/yum-root-XJIfxM/foremost-1.5.7-13.1.el7.x86_64.rpm: leading-1.5.7-13.1.el7.x86_64
Markieren von /var/tmp/yum-root-XJIfxM/foremost-1.5.7-13.1.el7.x86_64.rpm zur Installation
Auflösen von Abhängigkeiten
--> Transaktionsprüfung wird ausgeführt
---> Paket leading.x86_64 0:1.5.7-13.1.el7 wird installiert
--> Abhängigkeitsauflösung abgeschlossen
epel/7/x86_64 | 4,7 kB 00:00:00
epel/7/x86_64/group_gz | 96 kB 00:00:00
epel/7/x86_64/updateinfo | 1,0 MB 00:00:00
epel/7/x86_64/primary_db | 7,0 MB 00:00:01
extras/7/x86_64 | 2,9 kB 00:00:00
extras/7/x86_64/primary_db | 243 kB 00:00:00
os/7/x86_64 | 3,6 kB 00:00:00
Aktualisierungen/7/x86_64 | 2,9 kB 00:00:00
Updates/7/x86_64/Primary_DB |

Aufgelöste Abhängigkeiten

====================================================================================================================
 Paket Arch Version Repository Größe
====================================================================================================================
Installieren:
 vor allem x86_64 1.5.7-13.1.el7 /vor allem-1.5.7-13.1.el7.x86_64 85k

Zusammenfassung der Transaktion
====================================================================================================================
1 Paket installieren

Gesamtgröße: 85 KB
Installierte Größe: 85 k
Pakete herunterladen:
Ausführen einer Transaktionsprüfung
Ausführen eines Transaktionstests
Transaktionstest erfolgreich
Transaktion wird ausgeführt
  Installiere: leading-1.5.7-13.1.el7.x86_64 1/1
  Überprüfung: leading-1.5.7-13.1.el7.x86_64 1/1

Eingerichtet:
  vor allem.x86_64 0:1.5.7-13.1.el7

Vollständig!
[root@VM-0-3-centos ~]#

Erstellen einer Testdatei

[root@VM-0-3-centos ~]# echo "Dies ist eine wichtige Datei">important.txt
[root@VM-0-3-centos ~]# pwd
/Wurzel
[root@VM-0-3-centos ~]# ls
connecttendis.sh important.txt wiederherstellen tarlist tendis test.iso
[root@VM-0-3-centos ~]# mkdir -p /tmp/restore

Versuchen Sie, die Datei nach dem Löschen wiederherzustellen

[root@VM-0-3-centos ~]# rm wichtig.txt
[root@VM-0-3-centos ~]# vor allem -i /dev/vda1 -o /tmp/restore/
Wird verarbeitet: /dev/vda1
|***********Segmentierungsfehler

Nach einigen Minuten der Ausführung stürzte es ab und konnte nicht wiederhergestellt werden. Ich öffnete das Verzeichnis und fand:

[root@VM-0-3-centos ~]# ls /tmp/wiederherstellen/
audit.txt bmp doc exe htm jpg mov mpg pdf ppt rar sdw sxc sxw wav xls zip
avi, dll, docx, gif, jar, mbd, mp4, ole, png, pptx, rif, sx, sxi, vis, wmv, xlsx

Es scheint mit dem Dateityp zusammenzuhängen, der wiederhergestellt werden muss. Versuchen Sie es mit einem anderen Computer und einer anderen PNG-Datei. Suchen Sie zuerst nach einer Testdatei showball.png und bestätigen Sie dann die Partition /dev/vda1

[root@VM-0-3-centos ~]# df
Dateisystem 1K-Blöcke Verwendet Verfügbare Nutzung% Eingebunden auf
devtmpfs 930496 0 930496 0% /Entwickler
tmpfs 941004 24 940980 1% /dev/shm
tmpfs 941004 508 940496 1 % /Lauf
tmpfs 941004 0 941004 0% /sys/fs/cgroup
/dev/vda1 51473868 6458344 42692404 14 % /
/dev/loop0 361650 361650 0 100 % /mnt/iso
tmpfs 188204 0 188204 0% /run/benutzer/0
[root@VM-0-3-centos ~]# pwd
/Wurzel
[root@VM-0-3-centos ~]# ls
showball.png wiederherstellen

Versuchen Sie nach dem Löschen der PNG-Datei, sie wiederherzustellen. Nachdem der Fortschrittsbalken endet, können Sie das angegebene Verzeichnis /root/restore/ aufrufen, um ihn anzuzeigen.

[root@VM-0-3-centos ~]# rm showball.png
rm: normale Datei „showball.png“ entfernen? y
[root@VM-0-3-centos ~]# pwd
/Wurzel
[root@VM-0-3-centos ~]# vor allem -t png -i /dev/vda1 -o /root/restore/
Wird verarbeitet: /dev/vda1
|*****************************************************************************************************|

Im angegebenen Verzeichnis befinden sich eine Statistikdatei audit.txt und ein Ordner vom Typ png

[root@VM-0-3-centos ~]# ll wiederherstellen/
insgesamt 40
-rw-r--r-- 1 root root 24548 27. November 22:57 audit.txt
drwxr-xr-- 2 Wurzel Wurzel 16384 Nov 27 22:56 png
[root@VM-0-3-centos ~]# cd wiederherstellen/
[root@VM-0-3-centos wiederherstellen]# ll png
insgesamt 43764
-rw-r--r-- 1 Wurzel Wurzel 3500 27. Nov. 22:53 00367400.png
-rw-r--r-- 1 Wurzel Wurzel 3578 27. November 22:53 00367408.png
-rw-r--r-- 1 Wurzel Wurzel 3445 27. November 22:53 00367416.png
-rw-r--r-- 1 Wurzel Wurzel 368 27. Nov. 22:53 00367432.png
-rw-r--r-- 1 Wurzel Wurzel 363 27. Nov. 22:53 00367456.png
-rw-r--r-- 1 Wurzel Wurzel 392 27. Nov. 22:53 00367464.png
-rw-r--r-- 1 Wurzel Wurzel 199 27. Nov. 22:53 00367616.png
...

Die Dateinamen im PNG-Verzeichnis sind alle Zahlen, die sich völlig von den ursprünglich gelöschten Dateien unterscheiden. Sie müssen dies anhand der Datei audit.txt bestätigen. Öffnen Sie die Datei zur Bestätigung:

[root@VM-0-3-centos wiederherstellen]# head audit.txt
Foremost Version 1.5.7 von Jesse Kornblum, Kris Kendall und Nick Mikus
Prüfdatei

Foremost begann am Samstag, 27. November 2021 um 22:53:48 Uhr
Aufruf: leading -t png -i /dev/vda1 -o /root/restore/
Ausgabeverzeichnis: /root/restore
Konfigurationsdatei: /etc/foremost.conf
------------------------------------------------------------------
Datei: /dev/vda1
Beginn: Sa 27. Nov 2021 22:53:48
[root@VM-0-3-centos wiederherstellen]# head -n 20 audit.txt
Foremost Version 1.5.7 von Jesse Kornblum, Kris Kendall und Nick Mikus
Prüfdatei

Foremost begann am Samstag, 27. November 2021 um 22:53:48 Uhr
Aufruf: leading -t png -i /dev/vda1 -o /root/restore/
Ausgabeverzeichnis: /root/restore
Konfigurationsdatei: /etc/foremost.conf
------------------------------------------------------------------
Datei: /dev/vda1
Beginn: Sa 27. Nov 2021 22:53:48
Länge: 49 GB (53686025728 Bytes)

Num Name (bs=512) Größe Datei Offset Kommentar

0: 00367400.png 3 KB 188108800 (16 x 16)
1: 00367408.png 3 KB 188112896 (16 x 16)
2: 00367416.png 3 KB 188116992 (16 x 16)
3: 00367432.png 368 B 188125184 (16 x 16)
4: 00367456.png 363 B 188137472 (16 x 16)
5: 00367464.png 392 B 188141568 (16 x 16)
...

Die Datei audit.txt zeichnet kurze Informationen zu den wiederhergestellten Dateien auf. Dazu müssen Sie die relevanten Informationen der ursprünglich gelöschten Dateien kennen, da Sie sie sonst nur einzeln öffnen können. Ich habe nach Auflösung gesucht

[root@VM-0-3-centos wiederherstellen]# grep "1217" audit.txt
116: 12888200.png 40 KB 6598758400 (1217 x 690)
360: 38088960.png 40 KB 19501547520 (1217 x 690)

Den gefilterten Informationen zufolge habe ich 12888200.png geöffnet und festgestellt, dass es sich um die Datei handelte, die ich „versehentlich gelöscht“ hatte. Jetzt kann ich sie wiederherstellen.

Wiederherstellen von Dateien mit Extundelete

extundelete unterstützt die Dateiwiederherstellung unter den Dateisystemen ext3 und ext4. Verwenden Sie cat /etc/fstab um den Dateisystemtyp in der Linux-Umgebung anzuzeigen.

[root@VM-0-3-centos ~]# cat /etc/fstab
UUID=21dbe030-aa71-4b3a-8610-3b942dd447fa / ext4 noatime,acl,user_xattr 1 1
proc /proc proc-Standardwerte 0 0
sysfs /sys sysfs noauto 0 0
debugfs /sys/kernel/debug debugfs noauto 0 0
devpts /dev/pts devpts-Modus=0620,gid=5 0 0
[root@VM-0-3-centos ~]#

Installieren von Abhängigkeitsdateien

[root@VM-0-3-centos ~]# yum installiere e2fsprogs-devel
Geladene Plugins: fastestmirror, langpacks
Das Repository epel ist in der Konfiguration mehr als einmal aufgeführt
Bestimmung der schnellsten Spiegel
epel | 4,7 kB 00:00:00
Extras | 2,9 kB 00:00:00
os | 3,6 kB 00:00:00
Aktualisierungen | 2,9 kB 00:00:00
(1/2): epel/7/x86_64/updateinfo | 1,0 MB 00:00:00
(2/2): epel/7/x86_64/primary_db | 7,0 MB 00:00:01
Auflösen von Abhängigkeiten
--> Transaktionsprüfung wird ausgeführt
---> Paket e2fsprogs-devel.x86_64 0:1.42.9-19.el7 wird installiert
--> Abhängigkeitsauflösung abgeschlossen

Aufgelöste Abhängigkeiten

===============================================================================================================
 Paket Arch Version Repository Größe
===============================================================================================================
Installieren:
 e2fsprogs-devel x86_64 1.42.9-19.el7 os 73k

Zusammenfassung der Transaktion
==============================================================================================================
1 Paket installieren

Gesamte Downloadgröße: 73 k
Installierte Größe: 162 k
Ist das ok [j/d/N]: j
Pakete herunterladen:
e2fsprogs-devel-1.42.9-19.el7.x86_64.rpm | 73 kB 00:00:00
Ausführen einer Transaktionsprüfung
Ausführen eines Transaktionstests
Transaktionstest erfolgreich
Transaktion wird ausgeführt
  Installiere: e2fsprogs-devel-1.42.9-19.el7.x86_64 1/1
  Überprüfung: e2fsprogs-devel-1.42.9-19.el7.x86_64 1/1

Eingerichtet:
  e2fsprogs-devel.x86_64 0:1.42.9-19.el7

Vollständig!
[root@VM-0-3-centos ~]#

Laden Sie den Quellcode von extundelete herunter

[root@VM-0-3-centos ~]# wget https://src.fedoraproject.org/repo/pkgs/extundelete/extundelete-0.2.4.tar.bz2/77e626ad31433680c0a222069295d2ca/extundelete-0.2.4.tar.bz2
--2021-11-28 18:36:15-- https://src.fedoraproject.org/repo/pkgs/extundelete/extundelete-0.2.4.tar.bz2/77e626ad31433680c0a222069295d2ca/extundelete-0.2.4.tar.bz2
src.fedoraproject.org (src.fedoraproject.org) wird aufgelöst ... 38.145.60.20, 38.145.60.21
Verbindung zu src.fedoraproject.org (src.fedoraproject.org)|38.145.60.20|:443... wird hergestellt.
HTTP-Anfrage gesendet, warte auf Antwort ... 200 OK
Länge: 108472 (106K) [application/x-bzip2]
Speichern unter: „extundelete-0.2.4.tar.bz2“

100 %[====================================================================================>] 108.472 33,5 KB/s in 3,2 s

2021-11-28 18:36:20 (33,5 KB/s) – 'extundelete-0.2.4.tar.bz2' gespeichert [108472/108472]

[root@VM-0-3-centos ~]# ls
extundelete-0.2.4.tar.bz2

Entpacken Sie den Extundelete-Quellcode

[root@VM-0-3-centos ~]# tar -jxvf extundelete-0.2.4.tar.bz2
extundelete-0.2.4/
extundelete-0.2.4/acinclude.m4
extundelete-0.2.4/fehlt
extundelete-0.2.4/autogen.sh
extundelete-0.2.4/aclocal.m4
extundelete-0.2.4/Konfigurieren
extundelete-0.2.4/LIZENZ
extundelete-0.2.4/README
extundelete-0.2.4/install-sh
extundelete-0.2.4/config.h.in
extundelete-0.2.4/quelle/
extundelete-0.2.4/src/extundelete.cc
extundelete-0.2.4/src/block.h
extundelete-0.2.4/src/kernel-jbd.h
extundelete-0.2.4/src/insertionops.cc
extundelete-0.2.4/src/block.c
extundelete-0.2.4/src/cli.cc
extundelete-0.2.4/src/extundelete-priv.h
extundelete-0.2.4/src/extundelete.h
extundelete-0.2.4/src/jfs_compat.h
extundelete-0.2.4/src/Makefile.in
extundelete-0.2.4/src/Makefile.am
extundelete-0.2.4/configure.ac
extundelete-0.2.4/depcomp
extundelete-0.2.4/Makefile.in
extundelete-0.2.4/Makefile.am
[root@VM-0-3-centos ~]# cd extundelete-0.2.4/
[root@VM-0-3-centos extundelete-0.2.4]# ls
acinclude.m4 aclocal.m4 autogen.sh config.h.in konfigurieren configure.ac depcomp
install-sh LICENSE Makefile.am Makefile.in fehlt README src
[root@VM-0-3-centos extundelete-0.2.4]#

Kompilieren Sie die Installation des xtundelete-Quellcodes

[root@VM-0-3-centos extundelete-0.2.4]# ./configure --prefix=/usr/local/extundelete && make && make install
Konfigurieren von extundelete 0.2.4
Schreiben der generierten Dateien auf die Festplatte
make -s vollständig rekursiv
Alles in src machen
extundelete.cc: In der Funktion „ext2_ino_t find_inode(ext2_filsys, ext2_filsys, ext2_inode*, std::string, int)“:
extundelete.cc:1272:29: Warnung: Konvertierung von „search_flags“ von „int“ in „ext2_ino_t {auch bekannt als unsigned int}“ innerhalb von { } einschränken [-Wnarrowing]
    buf, match_name2, priv, 0};
                             ^
Installation in src durchführen
  /usr/bin/install -c extundelete '/usr/local/extundelete/bin'
[root@VM-0-3-centos extundelete-0.2.4]# welches extundelete
/usr/bin/which: kein Extundelete in (/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin)
[root@VM-0-3-centos extundelete-0.2.4]# ll /usr/local/extundelete/bin/
insgesamt 1296
-rwxr-xr-x 1 root root 1323360 Nov 28 18:45 extundelete

Wenn in diesem Schritt configure: error: C++ compiler cannot create executables gemeldet wird, können Sie den Befehl yum -y install gcc-c++ ausführen, um die Kompilierungsumgebung zu installieren.

Testdateien vorbereiten

[root@VM-0-3-centos Beispiele]# df -T
Dateisystemtyp 1K-Blöcke Verwendet Verfügbare Nutzung% Eingebunden auf
devtmpfs devtmpfs 930496 0 930496 0% /Entwickler
tmpfs tmpfs 941004 24 940980 1% /dev/shm
tmpfs tmpfs 941004 508 940496 1 % /Lauf
tmpfs tmpfs 941004 0 941004 0% /sys/fs/cgroup
/dev/vda1 ext4 51473868 6465732 42685016 14 % /
/dev/loop0 iso9660 361650 361650 0 100% /mnt/iso
tmpfs tmpfs 188204 0 188204 0% /run/benutzer/0
[root@VM-0-3-centos-Beispiele]# cp ../extundelete-0.2.4.tar.bz2 .
[root@VM-0-3-centos Beispiele]# ls
extundelete-0.2.4.tar.bz2

Fragen Sie die Inode-Informationen der Datei ab

Wir wählen das gerade heruntergeladene Extundelete-Quellpaket als „versehentlich gelöschte“ Datei aus und überprüfen zunächst die Informationen. -li kann die Inode-Informationen der Datei in der ersten Spalte anzeigen. Der Inode-Wert des Beispielordners ist 1311798:

[root@VM-0-3-centos ~]# ls Beispiele/
extundelete-0.2.4.tar.bz2
[root@VM-0-3-centos ~]# ls -li
insgesamt 361676
1311798 drwxr-xr-x 2 root root 4096 Nov 28 20:28 Beispiele
1310761 drwxr-xr-x 3 1000 1000 4096 28. November 18:45 extundelete-0.2.4
 918157 drwxr-xr-x 2 root root 4096 28. Februar 2021 tarlist
 396057 -rw-r--r-- 1 root root 370329600 27. Februar 2021 test.iso

Löschen Sie die Testdatei und verwenden Sie die Abfrageinformationen

[root@VM-0-3-centos ~]# CD-Beispiele/
[root@VM-0-3-centos Beispiele]# ls
extundelete-0.2.4.tar.bz2
[root@VM-0-3-centos Beispiele]# rm extundelete-0.2.4.tar.bz2 -f
[root@VM-0-3-centos Beispiele]# ls
[root@VM-0-3-centos Beispiele]# /usr/local/extundelete/bin/extundelete /dev/vda1 --inode 1311798
HINWEIS: Erweiterte Attribute werden nicht wiederhergestellt.
WARNUNG: EXT3_FEATURE_INCOMPAT_RECOVER ist festgelegt.
Um alle Dateien ohne weiteren Datenverlust wiederherzustellen, sollte die Partition ausgehängt werden.
Wenn die Partition derzeit nicht gemountet ist, bedeutet diese Meldung
Es wurde nicht ordnungsgemäß ausgehängt und Sie sollten fsck ausführen, bevor Sie fortfahren.
Wenn Sie fortfahren, überschreibt extundelete möglicherweise einige der gelöschten
Dateien und machen die Wiederherstellung dieser Dateien unmöglich. Sie sollten den
Dateisystem und überprüfen Sie es mit fsck, bevor Sie extundelete verwenden.
Möchten Sie fortfahren? (j/n)
j
Metadaten des Dateisystems werden geladen … 400 Gruppen geladen.
Gruppe: 160
Inhalt von Inode 1311798:
0000 | ed 41 00 00 00 10 00 00 7a 62 a3 61 1b 7a a3 61 | .A......zb.aza
0010 | 1b 7a a3 61 00 00 00 00 00 00 02 00 08 00 00 00 | .za...........
0020 | 00 00 08 00 0b 00 00 00 0a f3 01 00 04 00 00 00 | ................
0030 | 00 00 00 00 00 00 00 00 01 00 00 00 79 20 50 00 | ............y P.
0040 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................
0050 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................
0060 | 00 00 00 00 7c 63 ab ad 00 00 00 00 00 00 00 00 | ....|c..........
0070 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................
0080 | 1c 00 00 00 80 da 0d a3 80 da 0d a3 94 24 04 08 | .............$..
0090 | 7a 62 a3 61 94 24 04 08 00 00 00 00 00 00 00 00 | zb.a.$..........
00a0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................
00b0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................
00c0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................
00d0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................
00e0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................
00f0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................

Inode ist zugewiesen
Dateimodus: 16877
Untere 16 Bits der Besitzer-UID: 0
Größe in Bytes: 4096
Zugriffszeit: 1638097530
Erstellungszeit: 1638103579
Änderungszeit: 1638103579
Löschzeit: 0
Untere 16 Bits der Gruppen-ID: 0
Anzahl der Links: 2
Anzahl der Blöcke: 8
Dateiflags: 524288
Dateiversion (für NFS): 2913690492
Datei-ACL: 0
Verzeichnis-ACL: 0
Fragmentadresse: 0
Direkte Blöcke: 127754, 4, 0, 0, 1, 5251193, 0, 0, 0, 0, 0, 0
Indirekter Block: 0
Doppelter indirekter Block: 0
Dreifacher indirekter Block: 0

Dateiname | Inode-Nummer | Löschstatus
.1311798
..393219
extundelete-0.2.4.tar.bz2 396764 Gelöscht
conftest.err 1311833 Gelöscht
[root@VM-0-3-centos Beispiele]#

Wir haben festgestellt, dass der Status der Datei extundelete-0.2.4.tar.bz2 Deleted ist

Wiederherstellen von Dateien mit Extundelete

[root@VM-0-3-centos ~]# /usr/local/extundelete/bin/extundelete /dev/vda1 --restore-directory /tmp
HINWEIS: Erweiterte Attribute werden nicht wiederhergestellt.
WARNUNG: EXT3_FEATURE_INCOMPAT_RECOVER ist festgelegt.
Um alle Dateien ohne weiteren Datenverlust wiederherzustellen, sollte die Partition ausgehängt werden.
Wenn die Partition derzeit nicht gemountet ist, bedeutet diese Meldung
Es wurde nicht ordnungsgemäß ausgehängt und Sie sollten fsck ausführen, bevor Sie fortfahren.
Wenn Sie fortfahren, überschreibt extundelete möglicherweise einige der gelöschten
Dateien und machen die Wiederherstellung dieser Dateien unmöglich. Sie sollten den
Dateisystem und überprüfen Sie es mit fsck, bevor Sie extundelete verwenden.
Möchten Sie fortfahren? (j/n)
j
Metadaten des Dateisystems werden geladen … 400 Gruppen geladen.
Journaldeskriptoren werden geladen ... 31842 Deskriptoren geladen.
*** Fehler in „/usr/local/extundelete/bin/extundelete“: doppelte Freigabe oder Beschädigung (!prev): 0x00000000014d6020 ***
======= Rückverfolgung: =========
/lib64/libc.so.6(+0x81299)[0x7f5c08190299]
/usr/local/extundelete/bin/extundelete[0x40cdcb]
/usr/local/extundelete/bin/extundelete[0x40fee6]
/usr/local/extundelete/bin/extundelete[0x4045b4]
/lib64/libc.so.6(__libc_start_main+0xf5)[0x7f5c08131555]
/usr/local/extundelete/bin/extundelete[0x404aef]
======= Speicherzuordnung: ========
00400000-0041c000 r-xp 00000000 fd:01 1311942 /usr/local/extundelete/bin/extundelete
0061c000-0061d000 r--p 0001c000 fd:01 1311942 /usr/local/extundelete/bin/extundelete
0061d000-0061e000 rw-p 0001d000 fd:01 1311942 /usr/local/extundelete/bin/extundelete
0061e000-0061f000 rw-p 00000000 00:00 0
014c6000-0176e000 rw-p 00000000 00:00 0 [Haufen]
7f5c00000000-7f5c00021000 rw-p 00000000 00:00 0
7f5c00021000-7f5c04000000 ---p 00000000 00:00 0
7f5c07ca1000-7f5c07ef3000 rw-p 00000000 00:00 0
7f5c07ef3000-7f5c07f0a000 r-xp 00000000 fd:01 265649 /usr/lib64/libpthread-2.17.so
7f5c07f0a000-7f5c08109000 ---p 00017000 fd:01 265649 /usr/lib64/libpthread-2.17.so
7f5c08109000-7f5c0810a000 r--p 00016000 fd:01 265649 /usr/lib64/libpthread-2.17.so
7f5c0810a000-7f5c0810b000 rw-p 00017000 fd:01 265649 /usr/lib64/libpthread-2.17.so
7f5c0810b000-7f5c0810f000 rw-p 00000000 00:00 0
7f5c0810f000-7f5c082d2000 r-xp 00000000 fd:01 265623 /usr/lib64/libc-2.17.so
7f5c082d2000-7f5c084d2000 ---p 001c3000 fd:01 265623 /usr/lib64/libc-2.17.so
7f5c084d2000-7f5c084d6000 r--p 001c3000 fd:01 265623 /usr/lib64/libc-2.17.so
7f5c084d6000-7f5c084d8000 rw-p 001c7000 fd:01 265623 /usr/lib64/libc-2.17.so
7f5c084d8000-7f5c084dd000 rw-p 00000000 00:00 0
7f5c084dd000-7f5c084f2000 r-xp 00000000 fd:01 291206 /usr/lib64/libgcc_s-4.8.5-20150702.so.1
7f5c084f2000-7f5c086f1000 ---p 00015000 fd:01 291206 /usr/lib64/libgcc_s-4.8.5-20150702.so.1
7f5c086f1000-7f5c086f2000 r--p 00014000 fd:01 291206 /usr/lib64/libgcc_s-4.8.5-20150702.so.1
7f5c086f2000-7f5c086f3000 rw-p 00015000 fd:01 291206 /usr/lib64/libgcc_s-4.8.5-20150702.so.1
7f5c086f3000-7f5c087f4000 r-xp 00000000 fd:01 287349 /usr/lib64/libm-2.17.so
7f5c087f4000-7f5c089f3000 ---p 00101000 fd:01 287349 /usr/lib64/libm-2.17.so
7f5c089f3000-7f5c089f4000 r--p 00100000 fd:01 287349 /usr/lib64/libm-2.17.so
7f5c089f4000-7f5c089f5000 rw-p 00101000 fd:01 287349 /usr/lib64/libm-2.17.so
7f5c089f5000-7f5c08ade000 r-xp 00000000 fd:01 266798 /usr/lib64/libstdc++.so.6.0.19
7f5c08ade000-7f5c08cde000 ---p 000e9000 fd:01 266798 /usr/lib64/libstdc++.so.6.0.19
7f5c08cde000-7f5c08ce6000 r--p 000e9000 fd:01 266798 /usr/lib64/libstdc++.so.6.0.19
7f5c08ce6000-7f5c08ce8000 rw-p 000f1000 fd:01 266798 /usr/lib64/libstdc++.so.6.0.19
7f5c08ce8000-7f5c08cfd000 rw-p 00000000 00:00 0
7f5c08cfd000-7f5c08d3f000 r-xp 00000000 fd:01 267873 /usr/lib64/libext2fs.so.2.4
7f5c08d3f000-7f5c08f3f000 ---p 00042000 fd:01 267873 /usr/lib64/libext2fs.so.2.4
7f5c08f3f000-7f5c08f40000 r--p 00042000 fd:01 267873 /usr/lib64/libext2fs.so.2.4
7f5c08f40000-7f5c08f42000 rw-p 00043000 fd:01 267873 /usr/lib64/libext2fs.so.2.4
7f5c08f42000-7f5c08f45000 r-xp 00000000 fd:01 265948 /usr/lib64/libcom_err.so.2.1
7f5c08f45000-7f5c09144000 ---p 00003000 fd:01 265948 /usr/lib64/libcom_err.so.2.1
7f5c09144000-7f5c09145000 r--p 00002000 fd:01 265948 /usr/lib64/libcom_err.so.2.1
7f5c09145000-7f5c09146000 rw-p 00003000 fd:01 265948 /usr/lib64/libcom_err.so.2.1
7f5c09146000-7f5c09168000 r-xp 00000000 fd:01 265614 /usr/lib64/ld-2.17.so
7f5c092b1000-7f5c0935d000 rw-p 00000000 00:00 0
7f5c09363000-7f5c09367000 rw-p 00000000 00:00 0
7f5c09367000-7f5c09368000 r--p 00021000 fd:01 265614 /usr/lib64/ld-2.17.so
7f5c09368000-7f5c09369000 rw-p 00022000 fd:01 265614 /usr/lib64/ld-2.17.so
7f5c09369000-7f5c0936a000 rw-p 00000000 00:00 0
7ffe581db000-7ffe581fc000 rw-p 00000000 00:00 0 [Stapel]
7ffe581fc000-7ffe581fe000 r-xp 00000000 00:00 0 [vdso]
ffffffffff600000-ffffffffff601000 r-xp 00000000 00:00 0 [vsyscall]
Abgebrochen
[root@VM-0-3-centos ~]#

Wiederherstellung fehlgeschlagen, dieser Pfad ist blockiert! ! !

Andere Leute haben es geschafft, aber mein Test ist fehlgeschlagen und der Speicher wurde freigegeben und stürzte ab. Kann mir jemand sagen, wie ich den Quellcode ändern kann? Ich habe hier einige Zweifel, ich werde es später testen und zuerst die gemeinsamen Parameter aufzeichnen.

Abfrage des Inode-Dateistatus: /usr/local/extundelete/bin/extundelete /dev/vda1 --inode 1311798

Stellen Sie die angegebenen Knotendaten wieder her: /usr/local/extundelete/bin/extundelete /dev/vda1 --restore-inode 1311798

Stellen Sie eine einzelne Datei wieder her: /usr/local/extundelete/bin/extundelete /dev/vda1 --restore-file root/examples/extundelete-0.2.4.tar.bz2

Stellen Sie ein Verzeichnis wieder her: /usr/local/extundelete/bin/extundelete /dev/vda1 --restore-files root/examples

Alle Dateien wiederherstellen: /usr/local/extundelete/bin/extundelete /dev/vda1 --restore-all

Verhindern Sie Unfälle durch versehentliches Löschen

Alias ​​definieren, Aufforderung zum Löschen

Definieren Sie einen Alias alias rm='rm -i' . Vor dem Löschen von Dateien erscheint eine Abfrage. Mit der Option -i bestätigen Sie die zu löschenden Dateien nacheinander. Die Dateien werden nur gelöscht, wenn der Benutzer y eingibt. Nach dem Hinzufügen der Option -f wird diese Methode jedoch ungültig.

Deaktivieren Sie rm und verwenden Sie stattdessen mv

Das System erlaubt nicht die direkte Verwendung des Befehls rm zum Löschen von Dateien. Sie müssen die Dateien per mv in das angegebene Recycling-Verzeichnis /.delete verschieben und dann jede Woche eine geplante Aufgabe verwenden, um die Dateien in /.delete zu löschen, was dem manuellen Erstellen eines Papierkorbs entspricht.

Zusammenfassen

Wenn Sie zum Wiederherstellen „forest“ verwenden, sollte das Zielverzeichnis vorzugsweise ein Verzeichnis auf einer anderen Festplatte sein. Beim Wiederherstellen von Dateien auf der Festplatte, auf der sich die gelöschten Dateien befinden, werden die versehentlich gelöschten Dateien vor der Wiederherstellung wahrscheinlich überschrieben.

Der vollständige Name von sodu hat derzeit zwei Ausdrücke: substitute user do und super user do Sudo wird normalerweise verwendet, um die Privilegien eines Superusers auszuüben, kann aber manchmal auch von anderen normalen Benutzern verwendet werden. Daher ist es genauer, es als substitute user do zu übersetzen, um andere Benutzer zu ersetzen.

leading unterstützt viele Dateisysteme, darunter ext2, ext3, vfat, NTFS, ufs, jfs usw., kann aber nur Dateien in bestimmten Formaten wiederherstellen. Extundelete unterstützt nur die Dateisysteme ext3 und ext4, kann aber viele Dateitypen wiederherstellen.

Neben den beiden in diesem Artikel zusammengefassten Wiederherstellungssoftwares gibt es auch Testdisk und Photorec, die zur Wiederherstellung verwendet werden können. Sie können später unbezahlbare Daten ausprobieren. Bitte mit Vorsicht löschen. Sie können die Alias-Methode verwenden oder rm -rf deaktivieren, um das Auftreten von Unfällen zu verringern.

Dies ist das Ende dieses Artikels zum Wiederherstellen von versehentlich von rm gelöschten Dateien in einer Linux-Umgebung. Weitere Informationen zum Wiederherstellen von versehentlich von rm gelöschten Dateien in Linux finden Sie in früheren Artikeln auf 123WORDPRESS.COM oder in den folgenden verwandten Artikeln. Ich hoffe, Sie werden 123WORDPRESS.COM auch in Zukunft unterstützen!

Das könnte Sie auch interessieren:
  • Linux verwendet lsof/extundelete-Tools, um versehentlich gelöschte Dateien oder Verzeichnisse wiederherzustellen
  • Detaillierte Erklärung des lsof-Befehls zum Wiederherstellen gelöschter Dateien unter Linux
  • Ein Beispiel für das versehentliche Löschen eines Pakets unter Linux
  • Wiederherstellungsmethode für die Verschlüsselung und Löschung beim Start von Linux Grub

<<:  MySQL-Unterabfrage und Details zur Verknüpfungstabelle

>>:  CSS zum Ändern der Größe (Breite, Höhe) des Bildes, wenn die Maus über den Bild-Hyperlink fährt

Artikel empfehlen

Heute werde ich einige seltene, aber nützliche JS-Techniken teilen

1. Zurück-Button Verwenden Sie history.back(), um...

Beispielcode für Text-Origami-Effekt mit CSS3

Vorwort In diesem Artikel erfahren Sie hauptsächl...

Analyse der vernachlässigten DOCTYPE-Beschreibung

Doctype ist einer davon: <!DOCTYPE HTML PUBLIC ...

Detaillierte Erklärung der KeepAlive-Verwendung in der Vue-Frontend-Entwicklung

Inhaltsverzeichnis Vorwort Keep-Avlive-Hook-Funkt...

Rsync+crontab regelmäßige Synchronisierungssicherung unter centos7

In letzter Zeit möchte ich regelmäßig wichtige in...

Website-Homepage-Design im Illustrationsstil Neuer Trend im Website-Design

Sie können sehen, dass ihre visuellen Effekte sehr...

So implementieren Sie Polygonbrechung in Echtzeit mit Threejs

Inhaltsverzeichnis Vorwort Schritt 1: Aufbau und ...

Detaillierte Erläuterung des Linux-Indexknoten-Inode

1. Einführung in Inode Um Inode zu verstehen, müs...

Verständnis und Beispielcode des Vue-Standardslots

Inhaltsverzeichnis Was ist ein Slot Grundlegendes...

Ein Artikel zeigt Ihnen, wie Sie mit React ein Rezeptsystem implementieren

Inhaltsverzeichnis 1. Rezeptsammlung 1.1 Projekth...

MySQL versteht kurz, wie "order by" funktioniert

Zum Sortieren ist „order by“ ein Schlüsselwort, d...

Erste Schritte mit dem Animieren von SVG-Pfadstrichen mit CSS3

Ohne auf JavaScript angewiesen zu sein, wird rein...

Virtueller vsftpd-Benutzer basierend auf MySql-Authentifizierung

Inhaltsverzeichnis 1. MySQL-Installation 1.2 Tabe...