Was würde passieren, wenn ich das /
Verzeichnis lösche, während ich als Root bei Ubuntu angemeldet bin ?
Würde ich einen Fehler bekommen, der sich auswirkt Error: unable to self-destruct
? Oder könnte ich das Verzeichnis tatsächlich löschen?
Was würde passieren, wenn ich das /
Verzeichnis lösche, während ich als Root bei Ubuntu angemeldet bin ?
Würde ich einen Fehler bekommen, der sich auswirkt Error: unable to self-destruct
? Oder könnte ich das Verzeichnis tatsächlich löschen?
Antworten:
Ich habe dies vor einiger Zeit auf einem Live-USB-Stick ausprobiert, um eine Frage zu Quora zu beantworten (es gibt dort eine weitere großartige Antwort von Eric Bowersox).
Erster Versuch auf einem installierten System, bei dem ich sicher war, dass nichts passieren würde:
# cd /
# rm -rf /
rm: it is dangerous to operate recursively on `/'
rm: use --no-preserve-root to override this failsafe
# rm -rf .
rm: cannot remove directory: `.'
#
Also habe ich es auf einem Live-USB versucht (zitiert aus meinem ursprünglichen Beitrag):
Eric Bowersox hat mich dazu inspiriert, es auf einem Live-USB (ohne Ausdauer) auszuprobieren. Wie er sagte, führten eine große Anzahl von Fehlern in Bezug auf aktuell verwendete Dateien sowie eine weitere große Anzahl von Fehlern in Bezug auf das verwendete schreibgeschützte Dateisystem dazu, dass Teile der GUI schrittweise verschwanden: zuerst die Symbole im Unity-Launcher, dann das Symbol für das HUD und dann die Symbole in der Taskleiste. Als alles endete (bemerkenswert schnell), konnte nur das Terminal fokussieren, und das Klicken auf eine andere Stelle funktionierte nicht. Ich könnte alles andere öffnen, nicht einmal die Einstellungen des Terminals. Die Menüs der Lokalisierung und der Uhr-Applets wurden geöffnet, funktionierten jedoch nicht.
Das Wechseln zu den anderen ttys hat einmal funktioniert (ich habe keine Befehle ausprobiert), aber als ich wieder zur GUI gewechselt bin, hat nichts funktioniert.
Zu diesem Zeitpunkt funktionierte nichts. Mit Ausnahme des Netzschalters und der Magic SysRq-Tasten.
Das Löschen der gemeinsam genutzten Bibliotheken oder rm
selbst sollte keine Probleme verursachen, da beide beim rm
Start in den Speicher geladen worden wären .
Also habe ich es in einer laufenden Ubuntu 14.10 VM in Virtualbox gemacht . Ich habe mich nicht darum gekümmert, es selbst zu installieren, sondern es direkt von osboxes.org heruntergeladen
Das Ausführen sudo rm -rf --no-preserve-root /
in einem Terminal hat Folgendes verursacht:
Das war nur der sichtbare Teil. Ich habe es nicht lange laufen lassen und die Maschine heruntergefahren.
rm
War also nicht ganz erfolgreich, da noch einige Dateien herumlagen: / bin, / run, ein Teil von / lib und / var
Aber kein / boot und kein Kernel mehr übrig, so dass es nicht mehr bootfähig war, obwohl die Module noch da waren.
Bearbeiten : Die Ausführung über eine Konsole (Strg-Alt-F1 oder Rechts-Strg F1 in der Vbox) ist viel erfolgreicher, wenn auch weniger spektakulär.
Es spuckt Fehler über die / sys-Datei aus, die nicht gelöscht werden kann, genau wie in / proc. Aber es ist nichts mehr übrig, nachdem es abgeschlossen ist. Nur einige Geräte unter / dev und einige Dateien in / run.
/proc
und /sys
sind virtuelle Dateisysteme, die vom Kernel gefüllt werden. Die darin enthaltenen Dateien sind nicht auf der Festplatte vorhanden.
TUN SIE DAS NIEMALS, aber wenn Sie sudo rm -rf /
den rm
Befehl ausführen, der als ausgeführt wird root
, würde er gerne mit dem Löschen beginnen. Wenn es eine Datei finden würde, würde es sie löschen. Wenn rm
ein Verzeichnis gefunden wird, wird es in das Verzeichnis eingegeben, alle Dateien gelöscht und dann das Verzeichnis gelöscht. Möglicherweise rm
gehen die zu löschenden Dateien aus oder es werden die rm
erforderlichen Dateien gelöscht (z. B. eine dynamische Bibliothek):
$ ldd $( type -p rm)
linux-vdso.so.1 => (0x00007ffd4a978000)
libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007f905b7be000)
/lib64/ld-linux-x86-64.so.2 (0x00007f905bbcc000)
Beim rm
Löschen /lib/x86_64-linux-gnu/libc.so.6
oder /lib64/ld-linux-x86-64.so.2
es wird wahrscheinlich brechen.
Linux hat seine Philosophie von Unix übernommen: "Leistungsstarke Tools sind leistungsstark, halten Sie die Finger von der Maschinerie fern".
/
Verzeichnis vollständig zu entfernen ?
sudo rm -rf /
es standardmäßig deaktiviert ist. Sie müssen auch den --no-preserve-root
Schalter hinzufügen , damit er tatsächlich ausgeführt wird.
Wenn Sie den Ordner / und alle Unterordner entfernen möchten, können Sie von einem Live PenDrive booten und mit Gparted die Partition entfernen, auf der / sich befindet, und sie neu erstellen, wenn Sie dies wünschen. Wenn Sie alle anderen Ordner unter root auf separaten Partitionen haben möchten, können Sie dies auch mit den anderen Partitionen tun. Sie können es einfach nicht absichtlich über die Befehlszeile tun, wenn Sie von dort aus gebootet haben.