Ich habe eine Festplatte, der ich nicht ganz vertraue, die ich aber trotzdem verwenden möchte (Burstcoin-Mining, bei der ich nur ein paar Cent verliere, wenn ich einen fehlerhaften Block in einer Datei erhalte).
Wie kann ich btrfs anweisen, bestimmte Blöcke als schlecht zu markieren (z. B. von badblocks
Ausgabe)?
Wenn ich Blöcke nicht vorab als fehlerhaft markieren kann, werden alle fehlerhaften Blöcke durch btrfs scrub
identifiziert in Zukunft vermieden werden, wenn die Datei, die sie verwendet, gelöscht wird?
Akzeptierte Antwort:
Leider nein.
btrfs verfolgt keine fehlerhaften Blöcke und btrfs scrub
verhindert nicht, dass die nächste Datei dieselben fehlerhaften Blöcke trifft.
Dieser Beitrag zur Btrfs-Mailingliste schlägt vor, ext4 mit mkfs.ext4 -c
zu verwenden (Dies "erstellt eine Liste fehlerhafter Blöcke und
verwendet diese Sektoren dann nicht" ).
Der Vorschlag, btrfs über mdadm 3.1+ mit RAID0 zu verwenden, funktioniert nicht.
Anscheinend unterstützt LVM keine Neuzuweisung von Badblocks.
Eine Problemumgehung besteht darin, ein Gerät zu bauen, das als schlecht bekannte Blöcke ausschließt:btrfs über dmsetup.
Das btrfs-Projektideen-Wiki sagt:
Nicht beansprucht – noch keine Patches – Noch nicht im Kernel
Derzeit verfolgt btrfs keine fehlerhaften Blöcke, Festplattenblöcke, die sehr wahrscheinlich Daten verlieren, die auf sie geschrieben wurden. Btrfs sollte eine Liste im Ausgabeformat von Badblocks akzeptieren, sie in einem neuen Btree (oder vielleicht im aktuellen Extent-Baum mit einem neuen Flag) speichern, alle Daten, die die Blöcke enthalten, verschieben und diese Blöcke reservieren, damit sie nicht verwendet werden können für zukünftige Zuweisungen. Zusätzlich könnte Scrub beigebracht werden, auf fehlerhafte Blöcke zu testen, wenn ein Prüfsummenfehler gefunden wird. Dies würde das Peeling viel nützlicher machen; Prüfsummenfehler werden im Allgemeinen von der Festplatte verursacht, aber während Scrub betroffene Dateien erkennt, was in einem Backup-Szenario die Möglichkeit gibt, sie neu zu erstellen, wird die nächste Datei, die die fehlerhaften Blöcke wiederverwendet, stattdessen nur Fehler erhalten. Diese beiden Elemente würden einer ext4-Funktion entsprechen (verwendet durch e2fsck).
Bitte kommentieren Sie, wenn sich der Status ändert, und ich werde diese Antwort aktualisieren.
Verwandte:Debian – Wie installiere ich ein einzelnes Paket von Debian Testing oder Unstable auf Stable?