it-swarm.com.de

Löschen aller Partitionen über die Befehlszeile

Wie löscht man alle Partitionen auf einem Gerät von der Kommandozeile unter Linux (speziell Ubuntu)? Ich habe versucht, fdisk zu betrachten, aber es wird eine interaktive Eingabeaufforderung angezeigt. Ich suche nach einem einzelnen Befehl, dem ich einen Gerätepfad geben kann (z. B./dev/sda) und der ext4, Linux-Swap und alle anderen gefundenen Partitionen löscht. Im Wesentlichen wäre dies dasselbe, als würde ich GParted öffnen und alle Partitionen manuell auswählen und löschen. Dies scheint ziemlich einfach zu sein, aber leider konnte ich über Google nichts finden.

41
Cerin

Würde das ausreichen?

dd if=/dev/zero of=/dev/sda bs=512 count=1 conv=notrunc
45
pk.

Mit dem Programm wipefs können Sie die Signatur der Partitionstabelle einfach löschen:

wipefs -a /dev/sda

Von man wipefs

wipefs kann Dateisystem-, RAID- oder Partitionstabellen-Signaturen (magische Zeichenfolgen) vom angegebenen Gerät löschen, um die Signaturen für libblkid unsichtbar zu machen.

wipefs löscht weder das Dateisystem selbst noch andere Daten vom Gerät. Bei Verwendung ohne Optionen listet wipefs alle sichtbaren Dateisysteme und die Offsets ihrer Basissignaturen auf.

wipefs ruft das BLKRRPART ioctl auf, wenn es eine Partitionstabellen-Signatur gelöscht hat, um den Kernel über die Änderung zu informieren.

34
user144437

Schnell und schmutzig: Verwenden Sie gparted, um die Partitionen zu löschen, oder wenn Sie es eilig haben:

dd if=/dev/zero of=/dev/[disk device] bs=512 count=1

Dadurch wird der MBR des Laufwerks gezappt (Daten sind noch intakt).

Alternative:

dd if=/dev/zero of=/dev/[disk device]

um das gesamte Laufwerk zu löschen (schreiben Sie einen einzigen Durchgang von Nullen über alles. Nicht "sicher", aber normalerweise gut genug), oder verwenden Sie ein "Disk Shredder" -Tool für ein sicheres Löschen.

12
voretaq7

Sehen man sfdisk, eine nicht interaktive Variante von fdisk. Ansonsten können Sie die gesamte Partitionstabelle mit dd löschen, wie pk geschrieben hat.

7
Sven

Sie sollten in der Lage sein, parted auch hierfür zu verwenden, obwohl dies einige Skripte erfordern kann, um die Partitionen zu durchlaufen.

6
Decado

Wenn wir über Partitionen im MBR-Stil sprechen ...

dd if=/dev/zero of=/dev/[disk device] bs=1 count=64 seek=446 conv=notrunc

Erläuterung:

dd

Dieser Standardbefehl kopiert Bytes aus einer Quelle und schreibt sie in ein Ziel. Es ist das einfachste flexible Werkzeug für diesen Job.

if=/dev/zero

Hier geben wir an, dass wir aus /dev/zero Lesen, einem speziellen Gerät, das NUL Bytes - Nullen ausgibt.

of=/dev/[disk device]

Hier geben wir an, auf welches Gerät wir schreiben.

bs=1

dd denkt in Blöcken. Die Standardblockgröße kann je nach System 512 Byte, 1024 Byte oder 4096 Byte betragen. Wir müssen die Dinge jedoch genauer ansprechen, also weisen wir dd an, eine Blockgröße von 1 Byte zu verwenden.

count = 64

Hier weisen wir dd an, 64 Blöcke (oder Bytes aufgrund unseres Parameters bs=1) Zu schreiben, da die primäre Partitionstabelle aus 4 16-Byte-Partitionseinträgen für insgesamt 64 Bytes besteht .

suchen = 446

Die primäre Partitionstabelle im MBR (hier wird also nicht über GPT gesprochen) befindet sich 446 Byte in, daher weisen wir dd an, vor dem Schreiben 446 Byte zu suchen.

Erweiterte Partitionen werden im Allgemeinen mithilfe eines primären Partitionssteckplatzes erstellt, um auf die erweiterte Partitionstabelle zu verweisen. Wenn wir also die 4 primären Partitionen löschen, löschen wir auch die erweiterte Partitionstabelle. Das Betriebssystem kann es nicht finden, daher kann es es nicht lesen und interpretieren. (Wenn Sie die erweiterte Partitionstabelle löschen möchten, müssen Sie mehr über das Betriebssystem wissen. Verschiedene Betriebssysteme führen erweiterte Partitionen auf unterschiedliche Weise aus.)

4
Michael Mol

Ich wollte dasselbe tun (außer in Slackware 14.2), stellte jedoch fest, dass ich die meisten der hier vorgeschlagenen Lösungen nicht ausführen konnte, wobei die aufwändigste und am besten dokumentierte Lösung neue Probleme beim Erstellen von Ersatzpartitionen verursachte. Dadurch wurde die Partition gelöscht, aber einige Partitionierungssoftware hat die Partitionssicherungen anscheinend automatisch gefunden.

Ich fand, dass f3probe ( http://oss.digirati.com.br/f ) das Problem des schnellen und einfachen Löschens aller Partitionen mit Laufwerken mit großer Kapazität gelöst und genau 1 Partition erstellt hat das ganze Laufwerk, das leicht zu löschen war.

Von dort aus war es auch einfach, auf einfache Weise neue Partitionen zu erstellen.

d.h.

f3probe --destructive --time-ops /dev/sdb
# Now we know only 1 partition exists on /dev/sdb
#    which is /dev/sdb1
#
# Unmount that partition
umount /dev/sdb1

#
# Delete that single partition
parted /dev/sdb rm 1

#
# Now you can create new partitions
# i.e. parted /dev/sdb mkpart primary fat32 1049K 15.8G
# 
# Update /etc/fstab before rebooting....
2
John

Verwenden Sie eine verbesserte nicht interaktive Version von fdisk, nämlich sfdisk

Verwenden Sie diesen Befehl, um die Partitionstabelle zu löschen:

sfdisk --delete /dev/sda
0
Suncatcher