Ich habe meinen Desktop gelöscht und alles ist eingefroren. Was habe ich getan?

Ich habe meinen Desktop gelöscht und alles ist eingefroren. Was habe ich getan?

Ich habe also mit einem Live-Disk-Experiment herumgespielt (eine externe Festplatte als Live-Disk verwendet) und ein Skript erstellt, das 9.023 Verzeichnisse auf meinem Desktop erstellte, bevor ich es stoppen konnte. Als Neuling habe ich diesen Befehl ausgeführt, um das Chaos zu beseitigen:

rm -rf Desktop 

Und dann habe ich in meinem Home-Verzeichnis einen neuen Ordner namens Desktop erstellt. Mein Computer funktionierte ein paar Sekunden lang einwandfrei, dann fror alles außer meiner Maus ein. Zum Glück war alles auf einer Live-Disk, also ging nichts verloren, aber ich würde gerne wissen, was ich tatsächlich getan habe.

Ich habe versucht, bei Google nach „Ubuntu-Desktopverzeichnis gelöscht“ und anderen Varianten zu suchen, aber ich fand nur Leute, die versuchten, es loszuwerden, nicht, es wiederherzustellen.

EDIT: Es gab einiges Interesse an der Gabelbombe, die ich betrieb. Nicht lachen:

while true; do
for i in a; do
declare b=b+1
mkdir "$b" 
done
done

Ich hatte eine ungefähre Ahnung, was es tun würde, war aber an die Arbeit mit Python gewöhnt, wo ich es schnell beenden konnte, bevor es zu sehr außer Kontrolle geriet.

An alle anderen, die dies irgendwann in der Zukunft lesen: Lasst diese Gabelbombe nicht laufen, sie macht eine Sauerei.

PS: Bevor Sie sagen, wie dumm es von mir war, das überhaupt zu tun, beachten Sie bitte, dass ich mich auf einer Live-Disk befand, die genau zu diesem Zweck beiseite gelegt wurde, um solche Dinge zu tun, damit ich lernen kann.

Antwort1

Es ist gut, dass Sie dies mit einem Live-USB-Stick gemacht haben, sonst hätten Sie mit ziemlicher Sicherheit einige Daten verloren. Das anschließende Aufräumen wäre eine riesige Zeitverschwendung gewesen.

Zuerst haben Sie eine sogenannte Fork Bomb ausgeführt. Eine Fork Bomb ist ein einfacher, oft verschleierter Befehl, der so lange neue Prozesse, Ordner oder Dateien erzeugt, bis der Speicherplatz voll ist, CPU-Zyklen verbraucht oder der gesamte Arbeitsspeicher aufgebraucht ist. Dies führt dazu, dass der Computer einfriert, weil er keine Ressourcen mehr zur Verfügung hat.

Zweitens haben Sie Ihre DE (Desktop-Umgebung) gelöscht. Das ist alles, was Sie sehen, also die Grafiken, mit denen Sie interagieren, die Fenster, die Sie geöffnet haben (sozusagen – es gibt einen Fenstermanager, aber den überspringen wir jetzt). Im Grunde haben Sie alles gelöscht, worauf Sie klicken konnten.

Es ist gut, zu lernen. Verwenden Sie Ihre bevorzugte Suchmaschine, bevor Sie Befehle in das Terminal eingeben. Informieren Sie sich immer, was der Befehl bewirkt, bevor Sie drücken ENTER. Ich kann das nicht genug betonen. Es gibt Leute, die Sie absichtlich in die Irre führen. Das Terminal ist ein potenziell mächtiges Werkzeug. Es ist Ihr wichtigstes Werkzeug in Ihrem Werkzeugkasten, aber wie alle Werkzeuge muss es mit Bedacht eingesetzt werden.

Wenn Sie uns sagen, was der Befehl für die Fork-Bombe war, können wir ihn vielleicht verarbeiten und Ihnen genau sagen, was er bewirkt hat und warum. Sie scheinen ein neugieriger Mensch zu sein, also möchten Sie das vielleicht auch lernen?


Bearbeiten:

Sie haben jetzt den Code für Ihre Fork-Bombe eingefügt. Ich werde ihn für die nächste Person einfügen, die vorbeikommt. Wenn Sie ihn sich ansehen und die Logik analysieren, können Sie sehen, dass er besagt, dass, solange eine Bedingung erfüllt ist (wahr ist), etwas getan werden soll (ein aufgezähltes Verzeichnis erstellt wird) und dass er, da nichts angibt, aufzuhören (eine Schleife), weiterläuft, bis die Ressourcen verbraucht sind, der RAM aufgebraucht ist oder bis es einfach zu einer Art Kollision kommt, die alles einfrieren lässt. (Das könnte alles Mögliche sein, wie z. B. ein Speicherleck, aber das spielt hier wahrscheinlich keine Rolle.)

So wie es sich anhört oder was ich lese, scheint es, als hätten Sie ziemlich gute Arbeit geleistet. Dies ist eine klare Warnung an andere, Ihren Code nicht auszuführen (Sie sollten dies mit der Bearbeitungsfunktion zu Ihrem Beitrag hinzufügen, oder jemand anderes kann das tun, wenn Sie möchten). Es war kreativ. Ich glaube nicht, dass ich es jemals so gemacht gesehen habe, aber die Theorie ist bei allen ziemlich gleich. Für andere wiederum kann dies in verschleiertem Code oder Code versteckt sein, den Sie möglicherweise einfach nicht verstehen, wenn Sie nicht wissen, wie man Perl analysiert (als Beispiel). Dies ist ein gutes Beispiel dafür, was man nicht tun sollte.

Ich wage zu behaupten, dass Sie die Installation abschließen und dann noch etwas Spaß haben sollten. Machen Sie einfach gute Backups.

Antwort2

Ein Neustart, das Neuerstellen des Desktop-Verzeichnisses von einer virtuellen Konsole aus und anschließendes erneutes Anmelden beim Desktop sollten das Problem beheben. Ihr Computer ist entweder abgestürzt, weil Sie eine Fork-Bombe ausgeführt haben oder weil Ihr Desktop-Verzeichnis verschwunden ist, während Ihre Desktop-Umgebung versucht hat, es zu verwenden. In beiden Fällen wird mein vorgeschlagener Fix das Problem jedoch beheben (obwohl Sie alles verloren haben, was sich auf Ihrem Desktop befand).

Antwort3

Nein, das ist keine Forkbomb, da eine Forkbomb ein Programm wiederholt ausführt, bis Ihre CPU hinüber ist. Sie könnten jedoch an Zipbomben interessiert sein, das sind Zipdateien, die so komprimiert sind, dass sie aussehen, als ob sie fast keine Daten enthalten, wie 42.zip mit seinen 42 KB komprimierter Daten. Die Zipdatei wird extrahiert. OH NEIN, Sie haben Teribyte an Daten. Der Computer kann das Zeug nicht verarbeiten. Ihr Computer wird jetzt wiederholt abstürzen. Im Grunde ist eine Bombe ein Programm, das existiert, um Ihrer CPU zu schaden. Aber Sie haben zentrale Systemdateien gelöscht. Das ist, als ob Sie Ihr Laufwerk C: in Windows löschen und ein neues erstellen. Ihr Laufwerk C: enthält die wichtigen Dateien von Windows. Wenn Sie das also löschen, sagt Ihr Betriebssystem: WO IST C:/Windows/AUTOEXEC.bat. Ihr Computer wird jetzt nicht mehr hochfahren.

verwandte Informationen