Zum Hauptinhalt springen
hard-driveINFO

badblocks: der Festplattentest, von dem das eigene Handbuch abrät

badblocks durchsucht ein Gerät nach fehlerhaften Blöcken, und eine seiner Optionen löscht jedes Byte der Platte. Was das Handbuch wirklich empfiehlt, welcher Modus sicher ist und wann ein Test schlicht der falsche Schritt ist.

Von Eric Gerard · Redakteur · Save My Disk6 Min. LesezeitPhoto via Pexels

badblocks gehört zu den Werkzeugen, nach denen man greift, sobald sich eine Platte merkwürdig verhält. Es liegt auf fast jedem Linux-System bereit, es klingt genau nach dem, was man sucht, und eine seiner Optionen löscht ausgerechnet das Laufwerk, das Sie eigentlich untersuchen wollten. Das Handbuch ist dabei ungewöhnlich deutlich, also hier, was tatsächlich darin steht.

Was es tut, und was nicht

Die Beschreibung besteht aus einer Zeile: badblocks durchsucht ein Gerät nach fehlerhaften Blöcken. Es erzeugt eine Liste.

Das ist die ganze Aufgabe. Repariert wird nichts. Die Neuzuweisung von Sektoren erledigt die Firmware des Laufwerks nach ihrem eigenen Zeitplan, nicht ein Scanner im Userspace. Die Liste existiert, um an e2fsck oder mke2fs übergeben zu werden, damit das Dateisystem weiß, welche Blöcke es meiden soll.

Damit gehört das Werkzeug in dieselbe Kategorie wie smartctl, das SMART-Attribute meldet, ohne sie zu reparieren. Beide sagen Ihnen etwas. Keines von beiden bringt etwas in Ordnung.

Die Option, die Ihre Platte löscht

Von allem hier ist das der Teil, den Sie sich merken sollten.

Die Option -w führt einen Test im Schreibmodus durch. Sie schreibt die Muster 0xaa, 0x55, 0xff und 0x00 in jeden Block des Geräts, liest jeden davon wieder ein und vergleicht. Der Test ist gerade deshalb gründlich, weil er die gesamte Oberfläche nutzt.

Das Handbuch enthält eine ausdrückliche Warnung:

Verwenden Sie die Option -w niemals auf einem Gerät, das ein vorhandenes Dateisystem enthält. Diese Option löscht Daten! (im Original: "Never use the -w option on a device containing an existing file system. This option erases data!")

Es gibt kein Rückgängig, keine teilweise Schonung, kein "es überschreibt nur die schlechten Stellen". Jeder Block wird beschrieben.

Mehrere gestapelte Festplatten auf einer weißen Oberfläche, mit freiliegenden grünen und blauen Platinen und einem SATA-Anschluss.
Mehrere gestapelte Festplatten auf einer weißen Oberfläche, mit freiliegenden grünen und blauen Platinen und einem SATA-Anschluss.

Die sicheren Modi

Standardmäßig führt badblocks einen zerstörungsfreien Nur-Lese-Test durch. Ohne Modus-Option liest es das Gerät und meldet, was es nicht lesen kann. Geschrieben wird nichts.

Die Option -n ergänzt einen zerstörungsfreien Lese-Schreib-Test: Sie schreibt Muster, stellt den ursprünglichen Inhalt dabei aber laufend wieder her. Das Handbuch empfiehlt sie als Ersatz für -w, wenn ein Dateisystem vorhanden ist, und benennt den Preis offen: langsamer, dafür bleiben Ihre Daten erhalten.

-n und -w schließen sich gegenseitig aus, eine kleine Gnade.

Die Empfehlung, der fast niemand folgt

Jetzt kommt der Teil, der selbst langjährige Nutzer dieses Werkzeugs überrascht. Im Handbuch steht, gleich in der Beschreibung:

Es wird dringend empfohlen, dass Nutzer badblocks nicht direkt ausführen, sondern die Option -c der Programme e2fsck und mke2fs verwenden. (im Original: "it is strongly recommended that users not run badblocks directly, but rather use the -c option of the e2fsck and mke2fs programs")

Der Grund ist die Blockgröße. Die von badblocks erzeugten Blocknummern hängen von der Blockgröße ab, die das Dateisystem verwendet, und der Standardwert liegt bei 1024 Byte. Wenn Ihr Dateisystem eine andere Größe nutzt und Sie -b nicht übergeben haben, verweisen die Zahlen in Ihrer Ausgabe nicht auf die Blöcke, die Sie meinen. Läuft der Scan über e2fsck -c oder mke2fs -c, stimmt die Blockgröße schon von der Konstruktion her.

Die ehrliche Einordnung lautet also: badblocks ist ein Baustein, und die Programme, die es aufrufen, wissen meist besser, wie man es aufruft, als Sie.

Warum es ein eingehängtes Gerät nicht anfasst

badblocks verweigert einen Lese-Schreib-Test oder einen zerstörungsfreien Test auf einem eingehängten Gerät normalerweise, weil beides das System zum Absturz bringen oder das Dateisystem beschädigen kann, selbst wenn es nur lesend eingehängt ist.

Es gibt die Option -f, um diese Verweigerung außer Kraft zu setzen, und der Kommentar des Handbuchs dazu gehört zu den einprägsamsten Zeilen einer Linux-Manpage:

Dies lässt sich mit der Option -f außer Kraft setzen, sollte aber so gut wie nie verwendet werden: Wenn Sie glauben, klüger zu sein als das Programm badblocks, sind Sie es mit ziemlicher Sicherheit nicht. (im Original: "This can be overridden using the -f flag, but should almost never be used --- if you think you're smarter than the badblocks program, you almost certainly aren't.")

Der richtige Schritt ist, das Gerät auszuhängen. Das Handbuch lässt genau eine Ausnahme zu: eine /etc/mtab, die fälschlich behauptet, ein Gerät sei eingehängt.

Die Optionen, die man kennen sollte

Ein paar Optionen verändern den Charakter eines Durchlaufs:

  • -b setzt die Blockgröße. Standard 1024. Sie entscheidet darüber, ob die Ausgabe aussagekräftig ist oder bedeutungslos.
  • -c legt fest, wie viele Blöcke gleichzeitig getestet werden. Standard 64.
  • -p wiederholt den Scan, bis in so vielen aufeinanderfolgenden Durchläufen keine neuen fehlerhaften Blöcke mehr auftauchen. Standard 0, also ein einzelner Durchlauf.
  • -e bricht nach einer bestimmten Anzahl fehlerhafter Blöcke ab. Nützlich für die Frage "gibt es überhaupt welche", und das Handbuch weist darauf hin, dass dabei eine möglicherweise unvollständige Liste entsteht. Nutzen Sie die Option also nicht, wenn Sie das vollständige Bild wollen.
  • -o schreibt die Liste in eine Datei, in dem Format, das e2fsck -l und mke2fs -l erwarten.
  • -s zeigt den Fortschritt an, was zählt, weil ein vollständiger Durchlauf auf einer großen Platte in Stunden gemessen wird.

Wann ein Test der falsche Schritt ist

Das ist die Abwägung, die das Handbuch Ihnen nicht abnehmen kann.

Ein vollständiger badblocks-Durchlauf liest, oder liest und schreibt, jeden Block des Geräts. Auf einer gesunden Platte ist das eine lange, aber harmlose Übung. Auf einem Laufwerk, das bereits ausfällt, sind es Stunden zusätzlicher Last auf Hardware, die ohnehin schon kämpft, und Stunden, in denen Sie nichts retten.

Wenn die Daten noch zählen, lautet die Reihenfolge: erst das Abbild, dann die Untersuchung. Ein Klon mit einem Werkzeug, das für beschädigte Medien gebaut ist, das also gezielt erneut versucht und überspringt, statt sich am selben unlesbaren Sektor festzubeißen, holt Ihre Bytes von der Platte, solange sie sich noch dreht. Wir behandeln das im Leitfaden zum Klonen einer defekten Festplatte mit ddrescue. Ihre Tests laufen danach auf dem Abbild, so oft Sie wollen, ohne dass noch etwas zu verlieren wäre.

Redaktionelle Empfehlung
4.5 / 5

Wenn der Test den Ausfall der Platte bestätigt

Gegründet 200430 Tage GarantieKostenlose 2-GB-Version
Das Angebot ansehen

Die Kurzfassung

badblocks sucht nach fehlerhaften Blöcken und notiert, was es findet. Repariert wird nichts.

Der Standardmodus liest nur und ist sicher. -n schreibt und stellt wieder her. -w löscht das gesamte Gerät, und das Handbuch sagt, es niemals dort einzusetzen, wo ein Dateisystem existiert. Das Handbuch empfiehlt außerdem, badblocks überhaupt nicht direkt aufzurufen, sondern über e2fsck -c oder mke2fs -c, damit die Blockgröße stimmt. Verweigert es den Dienst, weil das Gerät eingehängt ist, hängen Sie es aus, statt zu -f zu greifen.

Und wenn das Laufwerk stirbt und nicht bloß verdächtig ist, verbringen Sie seine verbleibenden Stunden nicht mit Tests. Kopieren Sie es zuerst.

Das hier beschriebene Verhalten, einschließlich der Muster im Schreibmodus, der Warnung vor -w, der Empfehlung, e2fsck und mke2fs statt badblocks direkt zu verwenden, der Verweigerung bei eingehängten Geräten und der Standardwerte, stammt aus der Handbuchseite badblocks(8), wie sie mit e2fsprogs 1.47.0 ausgeliefert wird. Optionen und Standardwerte können sich zwischen Versionen unterscheiden, prüfen Sie das Handbuch auf dem System, das Sie tatsächlich verwenden. Kommerzielle Links tragen das Attribut rel="sponsored nofollow", eine Affiliate-Provision kann anfallen, ohne dass für Sie zusätzliche Kosten entstehen.

Redaktionelle Empfehlung
4.5 / 5

Stelle die Daten deiner Festplatte wieder her → EaseUS

Kostenloser Scan · gelöschte, formatierte & verlorene Dateien · Windows & Mac

Gegründet 200430 Tage GarantieKostenlose 2-GB-Version
Das Angebot ansehen

Häufig gestellte Fragen

Repariert badblocks fehlerhafte Sektoren?

Nein. Die eigene Beschreibung lautet, dass das Programm ein Gerät nach fehlerhaften Blöcken durchsucht. Es erzeugt eine Liste. Eine Reparatur im Sinne einer Neuzuweisung defekter Sektoren übernimmt die Firmware des Laufwerks, nicht badblocks. Die Ausgabe ist dafür gedacht, an e2fsck oder mke2fs übergeben zu werden, damit das Dateisystem diese Blöcke meidet.

Welche badblocks-Option zerstört Daten?

Der Schreibtest mit -w. Er schreibt die Muster 0xaa, 0x55, 0xff und 0x00 in jeden Block des Geräts und liest anschließend jeden davon zum Vergleich wieder ein. Das Handbuch enthält eine ausdrückliche Warnung: -w niemals auf einem Gerät verwenden, das ein vorhandenes Dateisystem enthält, denn diese Option löscht Daten. Stattdessen -n verwenden, langsamer, aber es erhält, was vorhanden ist.

Stimmt es, dass das Handbuch davon abrät, badblocks direkt aufzurufen?

Ja, und es wird leicht überlesen. Im Handbuch steht, dass Nutzern dringend empfohlen wird, badblocks nicht direkt auszuführen, sondern die Option -c der Programme e2fsck und mke2fs zu verwenden. Der Grund ist die Blockgröße: Die von badblocks erzeugten Blocknummern hängen von der Blockgröße ab, die das Dateisystem verwendet. Passt sie nicht, erhalten Sie eine Liste von Zahlen, die etwas anderes bedeuten, als Sie annehmen.

Warum verweigert badblocks den Test meines eingehängten Laufwerks?

Weil ein Lese-Schreib-Test oder ein zerstörungsfreier Test auf einem eingehängten Gerät das System zum Absturz bringen oder das Dateisystem beschädigen kann, selbst wenn es nur lesend eingehängt ist. Die Option -f setzt diese Verweigerung außer Kraft, und der Kommentar des Handbuchs dazu ist unmissverständlich: Wer glaubt, klüger zu sein als das Programm badblocks, ist es mit ziemlicher Sicherheit nicht. Hängen Sie das Gerät stattdessen aus.

Sollte ich badblocks auf einem bereits ausfallenden Laufwerk ausführen?

In der Regel nicht. Ein vollständiger Durchlauf liest oder beschreibt jeden Block des Geräts, also sehr viel zusätzliche Arbeit für ein Laufwerk, das ohnehin schon kämpft, und die Zeit für den Test fehlt bei der Rettung. Wenn die Daten noch zählen, erstellen Sie zuerst ein Abbild mit einem Werkzeug für beschädigte Medien und untersuchen dann die Kopie.