Ich probiere BTRFS aus. Ich habe einige Fehler gemacht, aus denen ich etwas lernen kann!
Ich habe mehrere btrfs-Dateisysteme auf verschiedenen Geräten (sdX, loop, lvm usw.) erstellt. Während dieser Tests habe ich (abrupt) einige oder alle Geräte entfernt, die Teil eines btrfs-Dateisystems waren (fs wurde zuerst ausgehängt).
Aber jetzt btrfs show
zeigt der Befehl immer noch die UUID des Dateisystems und eine Liste der Geräte an. Mir ist klar, dass ich das btfrs device del
VOR dem Entfernen der Geräte hätte tun sollen ...
Aber wo speichert btrfs seine Liste der behandelten Dateisysteme? Gibt es irgendwo eine Conf-Datei? Einen speziellen Befehl in den btrfs-Tools?
Beim Lesen des Wikis und der Tutorials bin ich zu keiner umfassenden Antwort gekommen ... Es wird gesagt, dass wir ein totes Dateisystem wiederherstellen und es mounten können, mount -o recovery /dev/yourBTFSvolume /mount/point
aber das setzt voraus, dass Metadaten/Daten und zugehörige Geräte noch vorhanden sind, was hier nicht der Fall ist.
Hier versuche ich nicht, Daten wiederherzustellen, ich möchte lediglich die BTRFS-Verwaltung bereinigen.
Antwort1
Ich habe im Code herumgeschaut, um zu sehen, was los war. Wenn der btrfs filesystem show
Befehl verwendet wird, um alle Dateisysteme auf allen Geräten anzuzeigen, scannt er jedes Gerät und jede Partition darin /proc/partitions
. Jedes Gerät und jede Partition wird untersucht, um festzustellen, ob eine „magische Zahl“ von BTRFS und eine zugehörige gültige Stammdatenstruktur am Offset 0x10040 vom Anfang des Geräts oder der Partition gefunden wurde.
Ich habe dann Hexedit auf einer Festplatte verwendet, die in meinem Fall falsch angezeigt wurde, und tatsächlich war da eine magische BTRFS-Nummer (das ist die ASCII-Zeichenfolge _BHRfS_M
) aus meinen vorherigen Experimenten.
Ich habe diese magische Zahl einfach erreicht, indem ich einige Zeichen der Zeichenfolge mit "**" überschrieben habe, ebenfalls mithilfe von Hexedit, und die falschen Einträge sind wie von Zauberhand verschwunden!