mdadm --zero-superblock auf Festplatten mit anderen Partitionen

mdadm --zero-superblock auf Festplatten mit anderen Partitionen

Ich habe drei Festplatten, auf denen früher ein MD RAID5-Array gespeichert war. Ich habe dieses Array inzwischen entfernt (oder zumindest dachte ich das) und Partitionen für Btrfs und Swap-Speicher erstellt. Beim Neustart des Computers bindet MD immer noch die Geräte, auf denen früher das alte Array gespeichert war, wodurch das Mounten des neuen Dateisystems fehlschlägt.

Mir wurde gesagt, dass die alten Superblöcke der RAID-Arrays zurückbleiben könnten, wodurch MD denkt, es handele sich um ein echtes Array und die Festplatten dadurch gebunden werden. Die vorgeschlagene Lösung war, mdadm --zero-superblock zu verwenden, um den Superblock auf den betroffenen Festplatten zu löschen. Ich weiß jedoch nicht wirklich, was das mit der Festplatte macht. Da diese Festplatte Partitionen enthält, möchte ich nicht wirklich blind damit beginnen, Teile davon auf Null zu setzen.

Welches Verfahren sollte ich also befolgen, um die MD-Superblöcke sicher zu löschen, ohne die anderen Partitionen und Dateisysteme auf den Laufwerken zu beschädigen?

Diese Frage besagt im Wesentlichen dasselbe, es gibt jedoch keine klare Antwort darauf, ob die Ausführung von mdadm --zero-superblock auf einem neu partitionierten Gerät tatsächlich sicher ist:mdadm-Superblock-Partition verstecken/beschatten

Antwort1

https://raid.wiki.kernel.org/index.php/RAID_superblock_formats

Der Superblock ist 4 K lang und wird in einen 64 K ausgerichteten Block geschrieben, der mindestens 64 K und weniger als 128 K vom Ende des Geräts entfernt beginnt (um die Adresse des Superblocks zu erhalten, runden Sie die Größe des Geräts auf ein Vielfaches von 64 K und ziehen Sie dann 64 K ab). Die verfügbare Größe jedes Geräts ist der Speicherplatz vor dem Superblock. Daher gehen zwischen 64 K und 128 K verloren, wenn ein Gerät in ein MD-Array integriert wird.

Es ist also schon zu spätund könnte unsicher seinzu verwenden --zero-superblock, da wir nicht wissen, ob Daten vorhanden sind oder nicht – Sie müssen die Größe Ihrer aktuellen Partition bis -128Kzum Ende der x-RAID-Partition ändern/verkleinern, dann diesen Teil löschen und die Partition wieder vergrößern.

Andere Option 1: Schreiben Sie so große Dateien, dass sie die gesamte Festplatte füllen. Dadurch werden RAID-Superblöcke überschrieben und sie sind für mdadm nicht erkennbar.

Andere Option 2: ähnlich wie 1:https://unix.stackexchange.com/questions/44234/clear-unused-space-with-zeros-ext3-ext4

Antwort2

wipefs --all /dev/sd[4ppropr14t3][123](Richten Sie natürlich den Glob für Ihre Laufwerke/Partitionen ein!)

Antwort3

So habe ich es herausgefunden (es ist möglicherweise ganz spezifisch für meinen Fall, aber ich werde versuchen, es so allgemein wie möglich zu halten).

(Wenn ich von Geräten spreche, meine ich die Geräte, aus denen das RAID-Volume besteht, nicht das RAID-Array selbst.)

Ich habe mdadm -E $DEVICEherausgefunden, welches Metadatenformat das Array verwendet. Dann ging ich zuraid.wiki.kernel.orgum Informationen zum Superblock-Format zu finden. In meinem Fall war dies Version 0.90.

Bei diesem Format wird der Superblock am Ende des Geräts gespeichert. Hier kommt meine Situation ins Spiel. Mein altes Array wurde direkt auf den Laufwerken erstellt, keine Partitionierung. Aus diesem Grund wusste ich, dass der Superblock ganz am Ende des Geräts liegen sollte. Meine neue Partitionierung beinhaltete am Ende eine Swap-Partition. Daher konnten dort, wo sich der Superblock befand, nicht viele Daten verloren gehen.

Ich habe mich ein wenig umgehört und bin zu dem Schluss gekommen, dass mdadm --zero-superblocknur der Superblock selbst auf Null gesetzt wird und es daher in meinem Fall sicher sein sollte. Ich habe die Superblöcke auf allen drei Geräten entfernt:

mdadm --stop $ONE_OF_THE_DEVICES

Wiederholen Sie diese Zeile nach Bedarf

mdadm --zero-superblock $DEVICE

Einige zusätzliche Kommentare/Spekulationen:

Wenn der Speicherplatz von den neuen Partitionen/Dateisystemen benötigt wird, sollte er im Allgemeinen bereits überschrieben worden sein. Wenn der Superblock also noch vorhanden ist, sollte das Nullsetzen die Partitionen/Dateisysteme nicht beeinträchtigen. Ich bin mir jedoch nicht sicher, wie MD den Fall handhabt, in dem der Superblock bereits auf einem oder mehreren, aber nicht auf allen Geräten überschrieben wurde. Auf der Manpage steht, dass -f erforderlich ist, um den Superblock auf Null zu setzen, wenn er ungültig ist, aber behalten Sie das im Hinterkopf.

verwandte Informationen