
Ich hatte ein Paar 3-TB-Festplatten in einem BTRFS-RAID1-Array.
Eine dieser Festplatten begann zu versagen (Smartd zeigt fehlerhafte Sektoren an) und so kaufte ich ein Paar neuer 8-TB-Laufwerke, um beide Festplatten im Array zu ersetzen.
Ich habe beide durch ersetzt btrfs replace
und btrfs balance
anschließend ein ausgeführt, was mit der folgenden Meldung fehlschlägt:
[ 5063.136378] BTRFS error (device sdc): parent transid verify failed on 5153170751488 wanted 1433374 found 1417912
[ 5063.140428] BTRFS error (device sdc): parent transid verify failed on 5153170751488 wanted 1433374 found 1417912
Nun, ich habe diese Nachrichten genau gesehenVorErsetzen der Festplatten, aber da jetzt beide Festplatten ersetzt wurden, glaube ich, dass es etwas damit zu tun hat btrfs
.
Meine Daten sind vollständig gesichertund das Dateisystem ist online und funktioniert ordnungsgemäß, aber ich kann aufgrund dieses Fehlers keinen Ausgleich durchführen. Das Ausführen eines Scrubs führt zu einer kleinen Anzahl nicht korrigierbarer Fehler, genau wie vor dem Ersetzen der Festplatten.
Ich habe mich gefragt, wie ich vielleicht:
- Finden Sie heraus, welche Dateien beschädigt sind, und stellen Sie sie aus einem Backup wieder her
- Setzen Sie die Transaktion im Dateisystem zurück, um die Fehler zu beheben
- Ignorieren Sie die Fehler beim Balancieren
... oder eine andere vernünftige Lösung.
Danke!
Antwort1
Ich habe einige zusätzliche Versuche unternommen, das Problem zu lösen, aber letztendlich konnte nur eine saubere Neuformatierung des Dateisystems das Problem lösen.
Nachdem ich die Daten von den Festplatten übertragen hatte, habe ich zwei gefährliche Befehle ausprobiert – btrfs check --init-csum-tree
und einen btrfs check --repair
–, die beide keinen Schaden angerichtet, das Problem jedoch nicht gelöst haben.
Nach der Neuformatierung habe ich die Daten noch einmal zurück auf das Dateisystem übertragen, a btrfs filesystem balance
und a ausgeführt btrfs filesystem scrub
und nun funktioniert alles wieder.
Prost!