Unix
Bewertung: 1 Punkt(e)
The Final Shutdown: rm -rf /
von Lars Packschies
t=0: Vier Daumen drücken gleichzeitig die [Return]-Taste. Der Befehl lautet rm -rfv / -- als Schnapsidee geboren (»Läuft rm-rf / eigentlich durch?«) stand schnell fest, dass ein altes, nur noch archäologisch interessantes System dran glauben sollte.
t+1: Schnelles Ende in einer Endlosschleife:
removing all entries of directory //boot
removing directory itself: //boot
In schneller Abfolge fliegen uns diese Zeilen um die Ohren. Dass rm -rf / alles löschen soll, hat man oft und überall gelesen. Reines Mysterium, denn gemountete Partitionen lassen sich auf diese Weise nicht entfernen. Spätestens beim ersten Mountpoint ist Schluss. Auf unserem Delinquenten ist die Lage recht einfach: Nur /boot hält uns auf. Ein einfaches umount /boot entfernt das letzte Hindernis. Ab jetzt geht alles ganz schnell:
* t+60: Alles läuft noch; David Gray singt »This years love« -- wie passend.
* t+120: /usr/share/texmf muss dran glauben.
* t+180: /usr/src/linux verabschiedet sich -- sorry, Linus.
* Nach fast vier Minuten ist der Spuk vorbei; David Gray trällert »Sail away with me, honey«, und Linux läuft immer noch.
Die Festplatte ist leer, doch wir haben kein df mehr, um es zu prüfen. Ein ls scheitert natürlich ebenso. Daher weichen wir auf echo * .* aus. Die einzigen Überlebenden sind /dev, /proc und die zuvor gestarteten Prozesse. Irgendwann wird das System schon merken, dass es im dritten Stock keinen Boden mehr unter den Füßen hat. Man hat schon Linux-Installationen mit 2GB gesehen, bei denen weniger funktionierte.
Eine root-Shell und damit die Bash Builtins bleiben uns. /proc/meminfo wäre interessant, doch cat hat uns verlassen. Mit den Bordmitteln der Shell lässt sich jedoch Abhilfe schaffen:
function cat() { while read a; do echo »$a«; done < $1; }
Die Funktion cat ersetzt so weitgehend das fehlende Programm: Zeilenweise schaufelt uns die Schleife mittels der Variable a den Inhalt der übergebenen Datei auf den Bildschirm. Der Aufruf cat /proc/meminfo liefert nun die gewünschte Information.
Was läuft denn noch?
David Gray ist bei »Say hello, wave goodbye«. Zeit, dem in den letzten Zügen liegenden System den Rest zu geben. Wir wollen alle verbleibenden Prozesse löschen. Die zunächst einleuchtend erscheinende Idee, alle Prozess-IDs von 1 bis 65535 in einer while-Schleife zu killen, nimmt uns die root-Shell bei PID 911. Tastatur weg, Maus weg, X nutzt nix. Von außen ist der Rechner immer noch mit ping zu erreichen -- eth0 verlässt das sinkende Schiff mit dem Reset-Knopf zuletzt.
Totgesagte leben länger: Zwar ist der Kernel gelöscht, doch liegen seine Datentrümmer immer noch an der von LILO vermuteten Stelle. Der Kernel bootet, doch der Versuch, die Mutter aller Prozesse (/sbin/init) zu starten, scheitert:
Kernel panic: No init found.
Try passing init= option to kernel.
(hej)