In der Arbeit darf ich gerade wieder mit einem „FakeRAID“ spielen. Das ist ein RAID welches im Prinzip aus einem BIOS-Teil besteht mit dem man RAID-Arrays definieren kann und dem Software-Treiber im Betriebssystem welches das RAID betreibt. Damit der Treiber weiß was das BIOS definiert hat wird auf den Platten eine RAID-Signatur geschrieben, bei den diversen Implementationen natürlich meist an unterschiedlicher Stelle. Ich habe noch keine Dokumentation gefunden, die sauber definiert, was da wo auf die Platten genagelt wird, aber wenn man mit solchen Platten wieder was neues machen will sollten diese Platten keine RAID-Signaturen aufweisen. Wie werde ich als das Zeugs wieder los?
Am einfachsten hängt man die Platte an einen Rechner ohne RAID oder stellt im BIOS mal kurz einen Nicht-RAID-Modus ein. Dann kann man eine Linux-Live-CD booten, ich nutze dafür grml. Nun könnte man die gesamte Platte mit Nullen vollschreiben, etwa so:
1 |
# dd if=/dev/zero of=/dev/sda |
Das Problem bei dieser Vorgehensweise ist, dass man sehr viel Zeit braucht. Die 250 GB Platten die ich in der Arbeit habe benötigen da schon mal 4 Stunden bis sie „platt“ sind. Für ein zügiges Arbeiten ist das also nicht zu empfehlen.
Ein Ausweg ist, wenn man nur die Bereiche mit Nullen überschreibt, die keinen Partitionen zugeordnet sind. Aber woher weiß man die?
grml hat das neue Partitionstool parted mit auf der Scheibe. Mit parted kann man sich nun sehr schön diese Infos ausgeben lassen. Man kann mit dem Kommando „print“ die Partitionstabelle der aktuell bearbeiteten Festplatte (wählen mit device) ausgeben. Gibt man vorher noch das Kommando „unit s“ an, dann erfolgt die Ausgabe in Sektoren. Parted gibt auch die Sektorgröße an, die logische Sektorgröße ist meist 512 Bytes, die physikalische Größe kann bei ganz neuen Platten aber auch 4 KB betragen.
Bei so einer Partitionstabelle sieht man dann, dass die erste Datenpartition beispielsweise bei Sektor 2048 beginnt und die letzte Datenpartition bei Sektor 123456789 aufhört. Und das ist alles was man braucht. Dann kann man die RAID-Signaturen die in den nicht partitionierten Bereichen liegen nämlich wie folgt löschen:
1 2 |
dd if=/dev/zero of=/dev/sda bs=512 count=2048 dd if=/dev/zero of=/dev/sda bs=512 seek=123456789 |
Die erste Zeile löscht den MBR, die Partitonstabelle und den Superblock bis hin zur ersten Partition. Die zweite Zeile positioniert erst mal ans Ende der letzten Datenpartition und schreibt dann den Rest der Platte mit Nullen voll. Das geht dann im Vergleich zum Löschen der gesamten Platte blitzschnell.
[ratings]
Pingback: BIOS-RAID-Signaturen von Platten entfernen | König von Haunstetten
Pingback: Der Status von BIOS-RAID und Linux | König von Haunstetten