Man kann zwar direkt alles auf die Platte knallen und hoffen,dass diese die Reise von der Qualitätskontrolle in den eigenen Haushalt defektfrei und ohne Stürze ( was bei der Hektik bei den einschlägigen Lieferdiensten und den oftmals ruppigen Sortieranlagen eher einem Glücksspiel gleicht) überstanden hat, Kontrolle ist aber besser – und im unternehmerischen Einsatz verpflichtend.
Das Ganze mal am Beispiel einer Seagate Exos X18 St18000NM000J mit 18 TB.
Als Erstes sei hier die Möglichkeit der herstellereigenen Software für solche Zwecke genannt. Das ist der vom Hersteller vorgeschlagenen und im Normalfall auch bevorzugte Weg. Im Falle von Seagate wären das die Seatools bzw Seatools_Lite.
Allerdings prüfen diese nur herstellereigene Parameter bzw. führen „nur“ einen Selbsttest durch. Man weiss daher nicht,ob das Speichermonster vielleicht ab Werk irgendwo „in der Mitte“ defekte Sektoren hat oder durch irgendeinen anderen Einfluss Schaden genommen hat.
Immerhin ist ein menschliches Haar ungefähr 20.000 mal dicker als die Flughöhe der Schreib/Leseköpfe beträgt. Eine sehr interessante Bschreibung findet man bei Seagate (Abbildung6) in folgendem Artikel: https://www.seagate.com/de/de/tech-insights/advanced-format-4k-sector-hard-drives-master-ti/
Gegen Datenverlust durch Herstellungsfehler,Toleranzen oder unsachgemäße Handhabung hilft ein sogenannter „Burn-In-Test“,welchen ich im folgenden beschreibe und gerade selbst so durchführe:
- oben genannter Test mit SeaTools_Lite, um einen groben Überblick zu bekommen,was die Platte über sich selbst zu berichten hat
- ein Kurztest mit den smartmontools,um sich die rohen S.M.A.R.T.-Daten anzusehen. Dauert ungefähr 3 min
- der S.M.A.R.T.-Extended Test. Dauert je nach Plattengröße eine ganze Weile – bei der Exos rund 25h 😉
Jetzt könnte/würde man die Platte möglicherweise mit badblocks auf Schreib-/Lesefehler testen bzw. stressen, was allerdings bei 18 TB gut und gerne nochmal ein paar Tage dauern könnte. Das Archwiki beschreibt in seinem Artikel https://wiki.archlinux.org/title/badblocks eine Alternative,die zumindest einigermaßen überschaubar erscheint. Sie weisen auch darauf hin,daß badblocks „eigentlich zur Überprüfung von Disketten gedacht ist und nicht auf die Anforderungen moderner Festplatten zugeschnitten“ ist.
Achtung! Das folgende überschreibt jegliche Daten auf dem Laufwerk. Man sollte ganz sicher sein,dass man die richtige HDD ausgewählt hat!
Das Laufwerk „/dev/sda“ ist nur beispielhaft gewählt,weil es bei meinem Server unter ProxMox momentan die einzige SATA-HDD ist.
Das ganze sieht dann so aus:
4. man spannt eine Verschlüsselungsschicht über die ganze Platte:
cryptsetup open /dev/sda <name_des_Cryptogeräts> --type plain --cipher aes-xts-plain64
und beschreibt die Platte mit Nullen (welche verschlüsselt gespeichert werden),
was nebenbei bemerkt wieder rund 24h dauert:
shred -v -n 0 -z /dev/mapper/<name_des_Cryptogeräts>
Wenn das Ganze durchgelaufen ist, prüft man mit
cmp -b /dev/zero /dev/mapper/name
auf Veränderungen. Wenn das Programm nach einer undefinierten Zeitspanne (Es läuft gerade noch,während ich den Artikel schreibe, geschätzt < 24h) nichts ausspuckt,abgesehen von einem EOF, dann hat man a) die Platte einmal durchweg mit Nullen beschrieben,wieder ausgelesen und verglichen, ob wirklich Nullen geschrieben wurden. b) und kann davon ausgehen,dass die Platte fehlerfrei ist. Laut Archwiki ist diese Methode wesentlich schneller,als die Platte mit badblocks zu prüfen. ;) "This method is also way faster than badblocks even with a single pass."
P.S. Nicht von der SEEK/READ Error Rate bei den smartmontools verrückt machen lassen. Seagate nutzt diesen Wert für Prüfsummen. Diese Zahl sagt nichts über tatsächliche Defekte aus.