Gibt es einen einfachen Befehl, mit dem ich die letzten 1 MB einer Festplatte auf Null setzen kann?
Zum Start der Fahrt würde ich dd if=/dev/zero of=/dev/sdx bs=1M count=1
. Die seek
Option für dd sieht vielversprechend aus, aber hat jemand eine einfache Möglichkeit, genau zu bestimmen, wie weit ich suchen soll?
Ich habe eine Hardware-RAID-Appliance, die einen Teil der RAID-Konfiguration am Ende des Laufwerks speichert. Ich benötige die RAID-Appliance, um die Laufwerke als nicht konfiguriert zu betrachten. Daher möchte ich die RAID-Konfiguration entfernen, ohne die Zeit für einen vollständigen Löschvorgang der Laufwerke aufwenden zu müssen. Ich habe ein Dutzend 2-TB-Laufwerke, und das vollständige Löschen all dieser Laufwerke würde viel Zeit in Anspruch nehmen.
sda
Beispiels fürchterlich gefährlich, wenn Sie kopieren und einfügen und es schaffen, den Wagenrücklauf zu kopieren.sdx
wäre viel besser geeignet. Ich habe Vorsichtsmaßnahmen getroffen, aber nur deshalb habe ich meine Festplatte jetzt nicht zerstört.Die Größe jeder Partition ist in verfügbar
/proc/partitions
. Der folgende Befehl zeigt die Größe vonsdx
(in kB-Einheiten):Somit:
quelle
Die Suche nach dem Ende des Laufwerks funktioniert sehr gut, dh:
Wenn Sie dies jedoch verwenden, empfehle ich, dass Sie entweder wissen, dass Ihr Zählwert korrekt ist, oder dass Sie ihn überhaupt nicht verwenden. Der Grund, warum ich das sage, ist, dass Laufwerke entweder 512-Byte-Sektoren oder 4-KByte-Sektoren haben können. Wenn Sie diese Lösung mit einem Laufwerk verwenden, das 4-KByte-Sektoren enthält, werden Sie mit diesem Zählwert nicht zum Ende des Laufwerks gelangen. und möglicherweise fehlen die RAID-Informationen am Ende (ich bin darauf gestoßen).
quelle
dd
Sektoren adressiert werden, wenn benutzerdefiniertebs
Werte verwendet werden, die kleiner / größer sind als die tatsächliche Blockgröße, die von der Firmware des Geräts oder dem Linux-Kernel gemeldet wird.Mit können Sie die Anzahl der Sektoren auf der Festplatte ermitteln
hdparm -v /dev/sdx
. Versuchen Sie, eine Anzahl_von_Sektoren - 2048 (unter der Annahme von 512-Byte-Sektoren) zu ermitteln.quelle
/sys/block/sdx/queue/physical_block_size
Vielleicht geben Sie die Informationen, aber einige neuere Festplatten spielen mit der Sektorgröße, die sie melden, schnell und locker. Es ist wahrscheinlich besser, das Etikett auf der Festplatte zu lesen oder es im Datenblatt des Herstellers nachzuschlagen.hdparm -I /dev/sda
2 "Versionen" der Sektorgröße:Logical
und aufgelistet sindPhysical
. Ist es das, was du mit "schnell und locker" meinst? .... Ich habe nur das "Gefühl", dass, wenn sich etwas so verhält, es auch ein RAID-System sein könnte.Sie können
dd
die Gerätegröße verwenden und abrufen überfdisk
:Ich verwende keine Blockgröße von 1 m, um Rundungsfehler zu vermeiden.
Alternativ können Sie ein kleines C-Programm (oder Skript) schreiben, das die
lseek
Funktion mitSEEK_END
einem negativen Offset von 1 MB aufruft und dann aufruftwrite
.quelle