Ich habe versehentlich ausgeführt, rm /*
während ich als root in einem Remote-Ubuntu-Server angemeldet war, und so gut wie alle Binärdateien gelöscht. Derzeit kann ich mich weder über ssh noch über ftp anmelden, um die Dateien wiederherzustellen (und hoffe auf das Beste).
Gibt es eine Möglichkeit, dieses Problem irgendwie zu beheben, oder sollte ich das Rechenzentrum anrufen und nach einem Format fragen?
rm
data-recovery
Ameise
quelle
quelle
-r
Argument ausgeführt habenrm
oder wirklich nur den Befehl ausgeführt haben, den Sie anzeigen. Bietet Ihr Hosting-Anbieter eine Möglichkeit, auf die Disk-Images außerhalb dieses bestimmten Computers zuzugreifen?Antworten:
rm /*
sollte sehr wenig löschen. Es gibt dort kein-r
Flag, das rekursiv etwas löschen würde, und ohne dieses Flag werden Verzeichnisse nicht gelöscht (und selbst wenn Verzeichnisse gelöscht wurden, können nur leere gelöscht werden). Diese Antwort basiert auf der Annahme, dass Sie nicht ausgeführt wurdenrm -rf /*
.Die einzigen Dateien im Root-Dateisystem, die von Bedeutung sind, können die Symlinks zu Kernel und initrd (obwohl sie auf einem Ubuntu-System, das ich betrachte, nicht vorhanden sind) oder ein
/lib64
Symlink auf 64-Bit-Systemen sein.Das Problem kann nur sein, dass der
/lib64 -> /lib
Symlink gelöscht wurde. Das ist allerdings ziemlich böse, da fast jedes Programm auf diesen Symlink angewiesen ist:Dies
ld-linux
ist der dynamische Loader. Wenn er nicht verfügbar ist, können Sie keine dynamischen ausführbaren Dateien ausführen. Dies macht es äußerst schwierig, sich anzumelden, und Sie können dies möglicherweise überhaupt nicht.Ein Retter kann sein
busybox
. Führen Sie dies aus, um Folgendes zu überprüfen:In diesem Fall sollte die Busybox ausführbar sein, aber die Frage ist, wie Sie sie ausführen können.
Wenn Sie Zugriff auf die Bootloader-Eingabeaufforderung haben, können Sie möglicherweise mit starten
init=/bin/static-sh
, wobei static-sh ein Symlink zu istbusybox
(überprüfen Sie, ob dies/bin/static-sh
vorhanden ist - auf meinem System, aber nicht auf Standard-Ubuntu. Dieser Fehler deutet darauf hin, dass es verfügbar ist .)Sobald Sie eine Root-Shell haben, können Sie den
/lib64
Symlink neu erstellen . Möglicherweise müssen Sie zuerst das Root-Dateisystem als Lese- / Schreibzugriff erneut bereitstellen. In Besetztbox sollten diese Tools integriert sein, die Sie wie folgt ausführen können:Wenn Bash funktioniert, sollte das Problem behoben sein.
quelle
Wenn Sie Dateien aus der aktuellen Installation wiederherstellen müssen, bitten Sie Ihren Host, Ihnen zu helfen. Angenommen, es handelt sich um eine VM, dauert es ungefähr fünf Minuten, um ein Image Ihrer Festplatte zu erstellen, Ihren Host von Grund auf neu zu installieren und das alte Disk-Image in Ihrem neuen Dateisystem abzulegen.
Wenn Sie nichts benötigen, lassen Sie sie einfach neu installieren. Fast immer die schnellere Option, wenn Sie Dinge hart knochen.
quelle
Wenn Sie gerade den Symlink / lib64 zu / lib gelöscht haben und die Konsole noch geöffnet ist, gehen Sie einfach wie folgt vor:
und Sie sollten in der Lage sein, Befehle wieder normal auszuführen. Passen Sie den Pfad zu Ihrer tatsächlichen ld-Bibliothek an. Sie können auch einen beliebigen anderen Befehl ausführen, indem Sie ihm den vollständigen Pfad der ld-Bibliothek voranstellen.
quelle
Ohne Zugriff auf den physischen Server können Sie nicht viel tun.
quelle