BTRFS Balance Bug in Kernel 5.Top 10.X

BTRFS Balance Bug in Kernel 5.Top 10.X
In Kernel 5 gibt es einen Fehler.14.X, was dazu führt einzel Zu DUP. Das Dateisystem geht in einen schreibgeschützten Zustand ein. Die Lösung dieses Problems erfordert eine unkonventionelle Lösung.

Über BTRFS -Profile

Eines der großartigen Merkmale von BTRFS ist die Fähigkeit, die verschiedenen RAID -Profile zu verwenden. Da BTRFS die Daten und die Metadaten separat speichert, können Sie die Daten über die Festplatten als RAID0 streifen und alle Metadaten als RAID1 spiegeln. Diese Redundanz in Metadaten nimmt wenig zusätzlichen Platz ein. Und dies wird in BTRFS RAID0 -Setups empfohlen.

Es wurde immer vorgeschlagen, die Metadaten selbst auf einer einzelnen Festplatte zu duplizieren, da es auch bedeutet, dass die Metadaten die Daten verlieren müssen.

BTRFS ist in der Lage, ein RAID -Profil in einem Live -System zu ändern und die Daten und Metadaten zu konvertieren, um Redundanz bereitzustellen (oder zu entfernen). Dies geschieht mit a Gleichgewicht. Eine BTRFS-Balance schreitet alle Blöcke des Dateisystems neu und passt an die neuen Profile an, die gleichzeitig entsprechen.

Der Fehler

Ich versuchte, das Metadatenprofil auf meiner einzelnen Festplatte zu ändern einzel Zu DUP für die Redundanz.

$ sudo btrfs balance start -mconvert = dUp /mnt

Das Dateisystem ging sofort in einen schreibgeschützten Zustand ein. Das System ging unter. Bei der Neustart konnte ich die Recovery -Initramfs nicht überwinden. Es konnten keine Daten auf die Festplatte geschrieben werden.

Wenn ein Balance -Betrieb auf dem BTRFS -Dateisystem unterbrochen wird, wird automatisch das nächste Mal wieder aufgenommen, wenn das Dateisystem montiert ist. Dies kann normalerweise gestoppt werden mit:

$ sudo mont

Dann stornieren Sie bei Bedarf mit dem folgenden Befehl:

$ sudo btrfs salb Cancel /mnt

Der Fehler führte jedoch nicht nur dazu, dass das Gleichgewicht gesperrt wurde, sondern die Mount -Optionen, um ihn daran zu verhindern, dass sie fortgesetzt werden. Jedes Mal, wenn das Dateisystem montiert ist, versucht der Gleichgewicht, wieder aufzunehmen. Es ist fehlgeschlagen und das Dateisystem ging weiter schreibgeschützt. Wenn Sie darauf stoßen, müssen Sie eine Distribution mit einem älteren Kernel starten. In meinem Fall war es Bogen mit 4.18.

Montieren Sie das Dateisystem mit dem älteren Kenel:

$ sudo mont

Den Restbetrag abbrechen:

$ sudo btrfs salb Cancel /mnt

Führen Sie den Gleichgewicht erneut aus:

$ sudo btrfs balance start -mconvert = dUp /mnt

Sobald die Balance abgeschlossen ist, können Sie sicher in einen neueren Kernel starten, jetzt mit doppelten Metadaten im Dateisystem. Überprüfen Sie die vom Dateisystem verwendeten Profile. Sie werden sehen, dass Sie zwei Kopien der Metadaten des DateiSytems und nur einer Kopie der Daten haben:

$ sudo btrfs fi Nutzung

Abschluss

BTRFS ist ein erstaunliches Dateisystem, das viele erweiterte Optionen in der Lage ist. Bei der Verwendung von BTRFS sollten Sie jedoch auch überarbeitete Backups sowie einen bootfähigen Kernel aus einer LTS -Distribution zur Systemrettung haben. Auch wenn ein Gleichgewicht auf einem montierten Root -Dateisystem ausgeführt werden kann, wird dies nicht immer empfohlen, dies zu tun. Es gibt immer noch viele Fehler im Dateisystem. Sie sollten auf eine Dateisystemrettung vorbereitet sein, wenn das BTRFS-Modul nicht vollständig gegen Kernel der Blutungen getestet wurde.