Im Blick auf einige Code für (sichere) Löschen von Festplatten. Ich bemerke, wenn ich auf die verschiedenen Methoden (Infosec 5, DoD 5220.22-M, usw.) schaue, las ich "Verifiziere das Schreiben".Was bedeutet "Prüft den Schreibvorgang" beim Löschen von Festplatten?
Beispiele:
https://www.lifewire.com/dod-5220-22-m-2625856
Durchlauf 3: ein zufälligen Charakter schreiben und überprüfen die Schreib
https://en.wikipedia.org/wiki/Infosec_Standard_5#cite_note-5
Unabhängig davon, welche Ebene verwendet wird, die Überprüfung ist benötigt, um sicherzustellen, , dass das Überschreiben erfolgreich war.
Meine Frage ist, was bedeutet es technische implizieren?
Überprüfen Sie nur, wenn Sie einen Datenblock schreiben, wenn die geschriebenen Bytes gleich der Größe des Blocks sind (scheint schnell)?
Liest du den Block, den du geschrieben hast und vergleiche (memcmp?), Wenn er genauso ist wie der geschriebene Datenblock?
jede andere Lösung, die ich übersehen habe?
hier ein bisschen Codebeispiel meine Frage zu erläutern. Welche Lösung würde "Verify on write" anzeigen? Wenn Sie nur den Rückgabewert überprüfen (von write
) können Sie sicher sein, so lange entspricht die Länge des Blocks, alle Bytes sind tatsächlich geschrieben?
// erasure example
// erasure single block, start from 0
// block size
unsigned long block_size = 512;
// data-block we will write
char block[block_size];
// zero the block
bzero(&block, block_size);
// open device
int fd = open('/dev/sdb', O_RDWR);
// write 1st block
int bytes_written = write(fd, &block, block_size);
// verify option: A
if (bytes_written == block_size) {
// all good
}
// verify option B
// go back the number of bytes-wtitten from the current pos.
lseek(fd, -1 * bytes_written);
// read the same number of bytes
int bytes_read = read(fd, &block, bytes_written);
// should be same
if (bytes_read == bytes_written) {
// here code to check i block indeed contains zero's
// use memcmp ?
}
danke, mein Punkt ist mehr, tut der Rückgabewert (wenn block_size == schreiben (...)), das innerhalb der Spezifikation des Löschens, als eine Überprüfung qualifiziert. – Roger
@Rogier - Ja, beide Methoden, 'if (block_size == write (...))' oder 'if (bytes_written == block_size)' sind ein eindeutiger Hinweis (_validation_), dass _change_ gemacht wurde. Zusätzliche Schritte wie 'memcmp (...)' würden nur zusätzliche Verifizierung bereitstellen und sind für Ihren Zweck, IMO, völlig optional. Ich habe meine Antwort modifiziert, um diese Gedanken klarer zu machen. – ryyker
@Rogier - Ich bin neugierig, ob dein Avatar-Bild von einem _ [Thunder Mustang] (http://www.thundermustang.com/) _ oder einem vollständigen WWII Flugzeug ist? – ryyker