Kurze Antwort: Es wird ungefähr das tun, was Sie wollen, und dann wird nichts funktionieren. Wenn dd
Sie auf einer Ebene unterhalb des Dateisystems arbeiten, sind die dort geltenden Einschränkungen nicht mehr relevant (dies bedeutet nicht, dass der Kernel Sie nicht daran hindern konnte - dies ist jedoch nicht der Fall). Einige Inhalte aus dem Dateisystem befinden sich bereits im Speicher, z. B. der Kernel und das dd
Programm selbst, andere befinden sich im Cache. Es besteht die Möglichkeit, dass im Mehrbenutzermodus des Systems einige Dateien während des dd
Vorgangs zurückgeschrieben werden, sofern sie sich tatsächlich geändert haben. Wenn Sie unter Speicherdruck stehen, werden möglicherweise auch einige Seiten von dort ausgelagert (Sie sollten verschlüsselt und daher nach dem Neustart unbrauchbar sein).
Die meisten Befehle, die Sie danach ausgeben reboot
würden - einschließlich -, befinden sich nicht im Cache und funktionieren daher nicht. Wenn Sie sich also im Einzelbenutzermodus befinden, funktioniert dies sehr gut. Wenn Sie sich im Mehrbenutzermodus befinden, werden die meisten Daten gelöscht. Idealerweise sollten Sie es von einem anderen Medium aus starten (vielleicht sogar auf der initrd anhalten), damit Sie sicher sein können, woher alle Schreibvorgänge kommen.
Wenn Sie ein sicheres Löschen wünschen, reicht dies nicht aus, da noch einige Spuren der Originaldaten vorhanden sind, wenn Sie sie nur auf Null setzen. Normalerweise würden Sie bis zu drei Random Writes wollen, die aus dem Kopieren bedeuten würde /dev/urandom
statt /dev/zero
- viel langsamer , aber sicherer. Einige schlagen möglicherweise vor, dass Sie /dev/random
das Gerät für "reine" Zufallsdaten verwenden - kein Pseudozufalls -, aber zu diesem Zweck ist die Wahrscheinlichkeit, dass jemand den PRNG-Startwert knackt und die Daten erfolgreich maskiert, im Wesentlichen vernachlässigbar.
Wenn Sie wirklich paranoid sind, müssen Sie das Speichergerät in einen Ofen werfen, damit es entmagnetisiert / entladen wird.