Full Wipe der Festplatten mit dd

overflow

Well-Known Member
Ich würde gerne meine Festplatten sd0 und sd1 formatieren.
Bei der vorherigen Installation hatte ich auch eine Verschlüsselung drin.
Vielleicht kann man Problem daran liegen.

Aktuell sieht es bei mir wie folgt aus:

hw.disknames=sd0.ae02f27e98a1c4e1,sd1:,rd0:ad83f17e499dd6b8

Ich erhalte die Meldung, dass der Speicher voll sei:
/: write failed, file system is full
dd: /dev/rsd0c: no space left on device
 

Esjott

Kellerkind
Normal geht das als root/per sudo.
Code:
dd if=/dev/zero of=/dev/ad0
Zum ausnullen der Platte. Butte dreimal gucken, dass das device im of= teil die richtige ist. Und dann nochmal prüfen.
 

devland

Member
Das müsste eigentlich gehen, so etwas wie 'dd if=/dev/zero of=/dev/rsd0c bs=1m count=1' ist auch im Manual angegeben, wenn man sd0 meint (jedenfalls sollte man z.B. mit disklabel nachprüfen, dass sd0 tatsächlich die Platte ist, die man überschreiben will). Anderswo habe ich aber über ähnliche Probleme gelesen.
 

pit234a

Well-Known Member
It is good practice to wipe the front of the disk before using it:
# dd if=/dev/zero of=/dev/rsd0c bs=1m count=1

Ich weiß nicht, ob es nötig ist, darauf hinzuweisen, aber ich mache es trotzdem mal. Unabhängig von OpenBSD gilt, dass man mittels dd Bytes auf ein Gerät oder in eine Datei schreiben kann. Das Ziel heißt ja of, was wohl für "out-file" (im Gegensatz zu "in-file") steht. Ein Gerät, das erkannt wird und einen Eintrag in /dev erhält, ist also durch diese Datei beschrieben und kann als Ziel für dd benutzt werden.
Das können sowohl komplette Geräte sein, als auch Partitionen.
Mit der Benennung der Geräte in OpenBSD kenne ich mich indessen nicht aus, ein ls /dev | grep sdc würde aber nach meinem Verständnis in dem oben genannten Beispiel zeigen, welche Geräte und Partitionen zu den Geräten Namens sdc erkannt sind.
Angenommen, /dev/sdc steht für eine komplette Platte (/dev/sdd entsprechend für eine andere, also wie von Linux bekannt), dann könnte ein
Code:
# dd if=/dev/zero of=/dev/sdc
diese Platte komplett löschen, bzw mit Nullen überschreiben. Die Angabe eines bs=irgendwas fasst nur mehrere Bytes zu einem Block zusammen und kann damit die Übertragungsrate deutlich erhöhen. Mit count=x kann man bestimmen, wieviele derartige Blöcke geschrieben werden sollen. Will man eine Platte komplett mit Nullen füllen, lässt man das weg und erhält dann womöglich am Ende eine Fehlermeldung, weil der letzte Block nicht mehr vollständig geschrieben werden konnte.
Wenn das komplette Gerät das Ziel ist und die Rechte ausreichen, wird das komplette Gerät beschrieben und dd ist dabei immer unabhängig vom Dateisystem, also unabhängig von Verschlüsselung oder anderen Zuständen. Es nimmt Bytes rein und schreibt Bytes raus.

Soweit unterscheidet sich dd unter FreeBSD auch nicht von dd unter GNU/Linux.
Allerdings habe ich da durchaus schon Unterschiede festgestellt, weshalb möglicherweise auch das dd in OpenBSD Eigenheiten aufweist.
 

CommanderZed

OpenBSD User
Teammitglied
War die Platte villeicht noch gemountet so das es einen konkurierenden zugriff durch die verschlüsselung schon gab, so das dd nicht den zugriff bekommen hat da es die anfrage ja erst nach dem zugriff durch die Software hatte?

Oder hattest du ne RD gebootet? Aus dem laufenden System heraus macht man das wenns um die boot platte ging eher nicht

@pit> Bei openbsd ist es etwas anders aufgebaut

Erst kommt "sd" für SCSI (Und auch Sata e.t.c.) Platten und "wd" für klassische ATA platten
Dann eine laufende Nummer (1,2,3,4) für die jeweilige platte, 0 ist die erste
dann ein Buchstabe für die Partitionen vom Disklabel - dabei ist "c" die komplette platte
Das Device existiert auch nochmal mit nem "rs" davor, das ist dann das "raw" device
 

overflow

Well-Known Member
Selbstverständlich war es nicht im laufenden System. Auch habe ich von USB gebootet.
Ich glaube aber, dass ich das Problem reproduzieren kann.

@KobRheTilla Das Kommando was ich genutzt habe:

dd if=/dev/zero of=/dev/rsd0c bs=1m count=1

Ich würde jetzt mal schauen ob @CommanderZed mit seiner Annahme recht hat.
 

devland

Member
Wie CommanderZed erwähnte, ist es auf OpenBSD etwas anders. Hier sind die Einzelheiten gut beschreiben. Dort steht vereinfacht gesagt auch: "Use block dev only for mounting, use raw for anything else."

Wenn ich richtig verstehe, ist der Rechner vom USB mit OpenBSD darauf gestartet worden. Man könnte mit disklabel nachprüfen, was auf sd0 erkannt wird. OpenBSD kann übrigens mit LUKS nicht umgehen.
 
Oben