Warum ist GNU Shred beim Füllen eines Laufwerks mit zufälligen Daten schneller als dd?

Warum ist GNU Shred beim Füllen eines Laufwerks mit zufälligen Daten schneller als dd?

Beim sicheren Löschen einer Festplatte vor der Außerbetriebnahme ist mir aufgefallen, dass dies dd if=/dev/urandom of=/dev/sdafast einen ganzen Tag dauert, während es shred -vf -n 1 /dev/sdabei 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 dddie Daten in kleineren Blöcken geschrieben werden. Probieren Sie dd if=... of=... bs=(1<<20)aus, ob das zu einer besseren Leistung führt.

verwandte Informationen