Externe Festplatte testen

In diesem Artikel zeige ich euch, wie man eine externe Festplatte am einfachsten testen kann. Die gleiche Information gilt übrigens auch für interne Festplatten. (Achtung, nicht für SSDs oder NVMe!) Doch wozu sollte man eine externe Festplatte überhaupt testen? Aus mehreren Gründen. Zunächst einmal gibt es die Theorie, dass wenn ein elektronisches Gerät nicht in den ersten Tagen oder Wochen ausfällt, es über Jahre problemlos funktionieren wird. Und die Statistiken geben der Theorie recht. So sagt z.B. der Speicher-Anbieter Backblaze, dass wenn eine Festplatte im ersten Jahr nicht ausgefallen ist, diese eine sehr geringe Wahrscheinlichkeit hat, in den nächsten drei Jahren auszufallen. Erst im vierten Jahr erhöht sich wieder die Ausfallwahrscheinlichkeit. 

Der zweite Grund sind unterschiedliche Qualitätsmerkmale von Festplatten. Zwar wurde diese Theorie von den Herstellern nicht bestätigt, zeigt sich aber deutlich in den Ausfallraten der Laufwerke.

Komplett fehlerfreie Festplatten verwendet der Hersteller selbst unter der eigenen Premium-Marke. Festplatten mit einigen Mängeln, die jedoch nicht so schlimm sind, verwenden die Hersteller als „externe“ Festplatten oder verkaufen diese als OEM-Waren an Dritthersteller, die selbst keine eigenen Festplatten herstellen, sondern einfach nur die Laufwerke umlabeln. 

Möchte man sich also nur im geringsten Maße auf eine Festplatte verlassen können, sollte man diese vor der Benutzung testen. Man spricht dabei vom Einbrennen der Festplatte – wie bei einer geschmiedeten Pfanne.

Festplatte Einbrennen mit dem Tool „bht“

Leider habe ich unter Windows kein Tool gefunden, was ähnlich funktioniert, deshalb ist man hier auf Linux bzw. ein Linux-Derivat angewiesen. Das Tool, was ich für den Test verwende, nennt sich bht. Bht steht dabei für „bulk hdd testing“. Also einen HDD-Massentest. Und ja, das Tool ist hauptsächlich dafür gedacht, Festplatten in Massen zu testen. Bei einer einzigen Festplatte funktioniert das Tool aber genauso. Bht verwendet zum Testen der Festplatten das Linux-Tool badblocks. Achtung: Beim Test werden alle Daten auf der Festplatte unwiederherstellbar gelöscht!

Der Test selbst erfolgt in 8 Schritten. Dabei werden verschiedene Datenmuster auf die Festplatte geschrieben und gelesen. Zunächst wird das Muster (HEX) 0xAA geschrieben. Das entspricht der Bitfolge „10101010“. Nach dem Schreiben wird die Festplatte ausgelesen und mit dem Muster verglichen. Gab es keine Fehler, fährt das Tool fort mit dem Muster (HEX) 0x55, was der Bitfolge „01010101“ entspricht. Also genau dem Gegenteil der ersten Bit-Folge. Anschließend mit (HEX) 0xFF, also „11111111“ und zum Schluss mit (HEX) 0x00, also „00000000“. Am Ende des Tests hat man also eine mit Nullen beschriebene Festplatte, wie sie auch im Auslieferungszustand sein sollte.

Festplatte mit bht testen

Für den Test verwende ich selbst einen ausgemusterten Rechner, den ich mit einem Linux-Livesystem starte. Als System verwende ich dabei Ubuntu. Die folgenden Zeilen (insbesondere was die Installation von Paketen angeht, beziehen sich deshalb auf eine Ubuntu Distribution, bzw. auf APT.

Zunächst einmal benötigen wir das Tool “bht”. Dieses laden wir direkt aus den Quellen des Entwicklers mit git herunter.

git clone https://github.com/ezonakiusagi/bht

Sobald der Download abgeschlossen ist, können wir in das Verzeichnis bht wechseln.

cd bht

Bei mir auf dem System haben noch einige Pakete gefehlt, die ich noch vorher installieren musste.

sudo apt install sysstat ksh smartmontools lsscsi

Im nächsten Schritt muss man herausfinden, welche Bezeichnung die Festplatten haben, die man testen möchte. Bzw. welchen Pfad sie unter Linux haben. Hierfür verwendet man das Tool lsblk

sudo lsblk

NAME                      MAJ:MIN RM   SIZE RO TYPE MOUNTPOINT
loop0                       7:0    0  55.4M  1 loop /snap/core18/1932
loop1                       7:1    0  71.3M  1 loop /snap/lxd/16099
loop2                       7:2    0  67.8M  1 loop /snap/lxd/18150
loop3                       7:3    0  55.4M  1 loop /snap/core18/1944
loop4                       7:4    0  31.1M  1 loop /snap/snapd/10492
loop5                       7:5    0  31.1M  1 loop /snap/snapd/10707
sda                         8:0    0 232.9G  0 disk
├─sda1                      8:1    0     1M  0 part
├─sda2                      8:2    0     1G  0 part /boot
└─sda3                      8:3    0 231.9G  0 part
  └─ubuntu--vg-ubuntu--lv 253:0    0   116G  0 lvm  /
sdb                         8:16   0   9.1T  0 disk
└─sdb1                      8:17   0   9.1T  0 part
sdc                         8:32   0   3.7T  0 disk
sdd                         8:48   0   3.7T  0 disk
├─sdd1                      8:49   0   128M  0 part
└─sdd2                      8:50   0   3.7T  0 part

Mit lsblk bekommt man die Auflistung aller Block-Devices (auch Festplatten), die im System verfügbar sind. In der Ausgabe oben sieht man ein paar loop Devices. Diese sind irrelevant. Dann folgen weiter unten weitere Festplatten. Die Ausgabe zeigt z.B. Festplatten sda, sdb, sdc, und sdd an. Die Ziffern am Ende sind die erkannten Partitionen. So hat z.B. die Festplatte sdb eine Partition sdb1. Der genaue Pfad der Festplatten unter Linux beginnt mit /dev. Also befindet sich die Festplatte sdb unter Linux unter dem Pfad /dev/sdb.

(Optional) Kann man die Festplatte immer nicht identifizieren, bekommt man mit smartctl weitere Informationen.

Hat man jetzt immer noch Probleme, die Festplatten zu identifizieren, kann man das Tool smartctl mit dem Parameter “-a” nutzen, um die Hardware-Daten der Festplatte auszulesen.

smartctl -a /dev/sdc
smartctl 7.1 2019-12-30 r5022 [x86_64-linux-5.4.0-59-generic] (local build)
Copyright (C) 2002-19, Bruce Allen, Christian Franke, www.smartmontools.org

=== START OF INFORMATION SECTION ===
Model Family:     Toshiba 3.5" MD04ACA... Enterprise HDD
Device Model:     TOSHIBA MD04ACA400
Serial Number:    X4T3KALCFSAA
LU WWN Device Id: 5 000039 5db804348
Firmware Version: FP2A
User Capacity:    4,000,787,030,016 bytes [4.00 TB]
Sector Sizes:     512 bytes logical, 4096 bytes physical
Rotation Rate:    7200 rpm
Form Factor:      3.5 inches
Device is:        In smartctl database [for details use: -P show]
ATA Version is:   ATA8-ACS (minor revision not indicated)
SATA Version is:  SATA 3.0, 6.0 Gb/s (current: 3.0 Gb/s)
Local Time is:    Wed Jan 13 08:51:52 2021 UTC
SMART support is: Available - device has SMART capability.
SMART support is: Enabled
...
...

Wie man sieht, ist die Festplatte /dev/sdc eine 4TB Toschiba Festplatte mit der Seriennummer X4T3KALCFSAA.

Externe festplatte testen: Test starten

Nun kann der eigentliche Test gestartet werden. Dazu erstellt man zunächst ein leeres Verzeichnis, in dem die Status-Daten gespeichert werden. Ich nenne es jetzt bht-data.

mkdir bht-data
cd bht-data

Anschließend kann man den Test starten. Entweder gibt man alle Laufwerke einzeln an oder man bedient sich der Linux-Abkürzungen. Also:

sudo ../bht /dev/sdb /dev/sdc /dev/sdd 

oder

sudo ../bht /dev/sd[b-d]

Danach wird das Tool ausgeführt, es fragt noch einmal nach, ob man sicher ist. Denn alle Daten werden von der Festplatte gelöscht. Wenn man sich sicher ist, bestätigt man die Meldung mit einem “y”.

INFO: changing to /home/dr/bht/bht-data.
ATTN: this hard drive testing process will wipe all data
ATTN: on the following hard drives:
ATTN: /dev/sdb /dev/sdc /dev/sdd
ATTN: ARE YOU SURE YOU WANT TO PROCEED?: y

Anschließend wird die Meldung ausgegeben, dass der Test begonnen hat:

INFO: collecting SMART data from each drive.
INFO: WDCWD101EMAZ-11G7DA0 / VCH295XP
INFO: TOSHIBAMD04ACA400 / X4T3KALCFSAA
INFO: ST4000DM000-1F2168 / W3017XF8
INFO: Running badblocks on /dev/sdb.
INFO: ==> output to /home/dr/bht/bht-data2/disks/WDCWD101EMAZ-11G7DA0_VCH295XP.
INFO: ==> [WDCWD101EMAZ-11G7DA0|VCH295XP]
INFO: Running badblocks on /dev/sdc.
INFO: ==> output to /home/dr/bht/bht-data2/disks/TOSHIBAMD04ACA400_X4T3KALCFSAA.
INFO: ==> [TOSHIBAMD04ACA400|X4T3KALCFSAA]
INFO: Running badblocks on /dev/sdd.
INFO: ==> output to /home/dr/bht/bht-data2/disks/ST4000DM000-1F2168_W3017XF8.
INFO: ==> [ST4000DM000-1F2168|W3017XF8]

Da der Test Stunden oder Tage dauert, wird er im Hintergrund ausgeführt.

Status des Tests abfragen

Möchte man nun den Status des Tests abfragen, kann man dies mit dem Parameter “–status” machen.

../bht --status
WDCWD101EMAZ-11G7DA0_VCH295XP:
	badblocks[Reading and comparing  79.96% done, 92:56:25 elapsed. (0/0/0 errors)]
	HDD Type:[SATA]
	SMART:[Reallocated_Sector_Ct=0]
	SMART:[Power_On_Hours=0]
	SMART:[Multi_Zone_Error_Rate=0]
ST4000DM000-1F2168_W3017XF8:
	badblocks[Reading and comparing Pass completed, 0 bad blocks found. (0/0/0 errors)]
	HDD Type:[SATA]
	SMART:[Reallocated_Sector_Ct=0]
	SMART:[Power_On_Hours=16160]
	SMART:[Multi_Zone_Error_Rate=0]
TOSHIBAMD04ACA400_X4T3KALCFSAA:
	badblocks[Reading and comparing Pass completed, 0 bad blocks found. (0/0/0 errors)]
	HDD Type:[SATA]
	SMART:[Reallocated_Sector_Ct=0]
	SMART:[Power_On_Hours=20655]
	SMART:[Multi_Zone_Error_Rate=0]

Wie man jetzt hier sieht, werden drei Festplatten getestet. Die erste Festplatte ist 10TB groß, sie ist zu fast 80% fertig. Achtung, die 80% beziehen sich nicht auf den Gesamtstatus, sondern auf den Durchgang. In meinem Fall das Lesen und Vergleichen des Musters 0xFF. Die beiden anderen Festplatten sind jeweils 4 TB groß und sind komplett fertig. Die Meldung “0 bad blocks found. (0/0/0 errors)” zeigt, dass keine Fehler gefunden wurden.

Für Linux-Neulinge: Gibt es folgende Fehlermeldung beim Abfragen des Status, muss man erst in das Arbeitsverzeichnis des Tests wechseln.

../bht --status
bash: ../bht: Is a directory
cd bht-data
../bht --status

Wie lange dauert der Test einer externen Festplatte mit bht?

Wie lange ein Test dauert, hängt sehr stark von der Performance der Festplatte ab und dem Port. Eine interne Festplatte, die über ein SATA 3 Port angeschlossen ist, hat Lese- und Schreibgeschwindigkeiten um die 160-220MB/s. Eher um die 190MB/s. Wird die Festplatte über USB 3.0 oder 3.1 angeschlossen, ist die Festplatte immer noch der Flaschenhals und es sollten die gleichen Geschwindigkeiten möglich sein. Nutzt man hingegen USB 2.0, ist die Geschwindigkeit auf rund 50-60MB/s limitiert.

Ich gehe davon aus, dass die Festplatte entweder über USB 3.0 angeschlossen ist oder über SATA und die Geschwindigkeit bei 190MB/s liegt.  Bei einem Test werden die Daten 4 Mal geschrieben und 4 Mal gelesen. Bei einer 4 TB Festplatte sind es 32 TB an Daten. 

32.000.000 MB / 190 MB/s / 3600 => 46,78 Stunden #4TB
80.000.000 MB / 190 MB/s / 3600 => 116,96 Stunden #10TB

Check Also

LSI SAS 3008 HBA (z.B. IBM M1215) in den IT mode flashen – ZFS

Diese Anleitung ist stark angelehnt an die englische Anleitung von STH und speziell für Leute …

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.