Beim sicheren Löschen einer Festplatte vor der Außerbetriebnahme ist mir aufgefallen, dass dies dd if=/dev/urandom of=/dev/sda
fast einen ganzen Tag dauert, während es shred -vf -n 1 /dev/sda
bei demselben Computer und derselben Festplatte nur ein paar Stunden dauert.
Wie ist das möglich? Ich vermute, dass der Engpass die begrenzte Ausgabe von ist /dev/urandom
. Verwendet shred einen Pseudozufallsgenerator, der weniger zufällig ist und nur für seinen einzigen Zweck ausreicht (also effizienter ist) als urandom
?
Antwort1
Fetzenverwendet einen internen Pseudozufallsgenerator
Standardmäßig verwenden diese Befehle einen internen Pseudozufallsgenerator, der mit einer kleinen Menge Entropie initialisiert wird. Mit der Option --random-source=file können Sie jedoch angewiesen werden, eine externe Quelle zu verwenden. Wenn die Datei nicht genügend Bytes enthält, wird ein Fehler gemeldet.
Beispielsweise die Gerätedatei/Entwickler/urandomkönnte als Quelle für Zufallsdaten verwendet werden. Normalerweise sammelt dieses Gerät Umgebungsrauschen von Gerätetreibern und anderen Quellen in einem Entropiepool und verwendet diesen Pool, um Zufallsbits zu erzeugen. Wenn der Pool nicht genügend Daten enthält, verwendet das Gerät den internen Pool erneut, um mithilfe eines kryptografisch sicheren Pseudozufallszahlengenerators mehr Bits zu erzeugen. Beachten Sie jedoch, dass dieses Gerät nicht für die Massenerzeugung von Zufallsdaten ausgelegt ist und ist relativ langsam.
Ich bin nicht davon überzeugt, dass zufällige Daten wirksamer sind alsein einziger DurchgangvonNullen(oder ein beliebiger anderer Bytewert) zum Verdecken vorheriger Inhalte.
Um ein Laufwerk sicher außer Betrieb zu nehmen, verwende ich einen großen Magneten und einen großen Hammer.
Antwort2
Ich vermute, dass dies eher daran liegt, dass dd
die Daten in kleineren Blöcken geschrieben werden. Probieren Sie dd if=... of=... bs=(1<<20)
aus, ob das zu einer besseren Leistung führt.