Antworten:
Wird
dd if=/dev/zero of=/dev/sda
eine bereits bestehende Partitionstabelle auszulöschen?
Ja, die Partitionstabelle befindet sich im ersten Teil des Laufwerks. Durch Überschreiben wird das Laufwerk zerstört. Das dd
wird über das gesamte Laufwerk schreiben, wenn Sie es laufen lassen (so wird es einige Zeit dauern).
So etwas dd bs=512 count=50 if=/dev/zero of=/dev/sda
würde ausreichen, um die ersten 50 Sektoren, einschließlich der MBR-Partitionstabelle und des primären GPT, zu überschreiben. Obwohl laut Wikipedia GPT eine sekundäre Kopie der Partitionstabelle am Ende des Laufwerks vorhanden ist, reicht es möglicherweise nicht aus, nur den Teil im Kopf des Laufwerks zu überschreiben.
(Sie haben nicht zu verwenden dd
, though. head -c10000 /dev/zero > /dev/sda
Oder cat /bin/ls > /dev/sda
würde die gleiche Wirkung haben.)
tut
fdisk /dev/sda g
auszulöschen (GPT) , die von / dev / null geschrieben Nullen?
Auch ja (sofern Sie die Änderungen speichern).
(Allerdings ist die Formulierung im Titel nur verwirrend, /dev/zero
in sich selbst nicht hat tun nichts mehr als jede regelmäßige Lagerung der Fall ist.)
/bin/ls
kurz genug ist, überschreibt der Schreibvorgang möglicherweise nur die wenigen Bytes des MBR, und der wichtigste Teil (Anfangs- und Endsektor der Partitionen) kann intakt bleiben. Obwohl eine MBR-Neuinstallation (meistens grub --install /dev/sda
) weiterhin erforderlich ist, um das System wieder bootfähig zu machen.
ls
Binärdatei umleiten und nicht die Ausgabe, wenn sie ausgeführt wird. Die kleinstmögliche ELF-Binärdatei "Hello World" scheint 98 Bytes zu sein (also weniger als ein MBR), aber ich denke, man kann davon ausgehen, dass jede Binärdatei mit tatsächlichen Funktionen größer sein sollte als ein MBR (die notorisch kleine FreeBSD-Implementierung von ls
32784) Byte lang, sogar groß genug, um den Start-of-Disk-Teil eines GPT zu überschreiben). ;)
ls
. Eine Auflistung von /usr/bin
wäre wahrscheinlich lang genug. Ich wollte es nur echo
als Beispiel verwenden, aber IIRC benötigt fast 500 Bytes, um eine MBR-Partitionstabelle zu überschreiben, daher ist die Eingabe etwas müde. (was auch immer die genaue Zahl war)
Die Partitionstabelle wird in der Nähe des Anfangs 1 der (logischen 2 ) Platteneinheit gespeichert.
Wenn Sie diesen Bereich mit irgendetwas überschreiben (Nullen von /dev/zero
oder anderen Daten), wird die Partitionstabelle durch Kauderwelsch ersetzt, sodass nicht mehr ersichtlich ist, wo die Partitionen auf dem Gerät beginnen.
Man kann immer noch die gesamte Festplatte scannen und versuchen, die "magischen Bytes" zu identifizieren, die die Anfänge von Dateisystemen markieren.
Wenn Sie umgekehrt fdisk
eine neue Partitionstabelle mit (oder einem anderen Partitionstool) erstellen, überschreibt das Tool die ersten Bytes des Datenträgers, um diese neue Tabelle zu speichern.
Es gibt nur einen Anfang für die Festplatte, sodass alles, was Sie zuletzt tun, dort "hängen bleibt".
Beachten Sie jedoch, dass einige Partitionstabellenformate (wie GPT) Sicherungskopien an verschiedenen Orten aufbewahren (z. B. am Ende der Festplatte für GPT), von denen einige Partitionsinformationen wiederhergestellt werden können.
1: beispielsweise in dem ersten 512 Bytes für einen MBR oder das ersten und letztes 17408 Bytes für einen GPT
2: der Antrieb der logischen Blöcke zu verschiedenen Teilen des physikalischen Mediums intern neu zuordnen kann, aber das Mapping ist unsichtbar (und unwichtig) das Betriebssystem.
/dev/zero
löscht nicht etwas aus, esdd
löscht es durch Kopieren. Die Tatsachen, dass die Bytes zufällig Null sind und dass die Null-Bytes zufällig/dev/zero
von einer anderen Quelle von Nullen stammen, sind geringfügige Details.