Linux Partitionstabelle löschen

Vor einer Neuinstallation von Linux macht es Sinn die Festplatte zu formatieren, weil z.B. Ubuntu es einem nicht erlaubt denselben Volume Group Namen zu verwenden, welcher das vorherige System schon hatte. Dabei muss man noch nicht einmal zeitaufwändig die ganze Festplatte löschen; es reicht auch schon, wenn man nur die Partitionstabelle löscht. Und das geht sogar bei laufendem System.

Mit dd lässt sich die Partitionstabelle einer Festplatte löschen, indem einfach die ersten paar Megabyte der Festplatte überschrieben werden – dort befindet sich die Partitionstabelle (MBR oder GPT). Achtung: Dieser Vorgang ist irreversibel und zerstört alle Partitionseinträge auf der Festplatte!

Beispiel (vorsichtig anwenden!):

sudo dd if=/dev/zero of=/dev/sdX bs=512 count=2048
  • if=/dev/zero: Eingabedatei – nur Nullen
  • of=/dev/sdX: Zieldatenträger (z. B. /dev/sda, nicht /dev/sda1!)
  • bs=512: Blockgröße (512 Byte)
  • count=2048: Anzahl der Blöcke → 2048 × 512 = 1 MiB (genug für MBR und GPT)

Inhalt

Hinweise

  • MBR (klassisch): Die Partitionstabelle sitzt im ersten 512 Byte – count=1 würde schon reichen.
  • GPT: GPT speichert die Partitionstabelle am Anfang und eine Kopie am Ende der Platte. Deshalb am besten Anfang und Ende löschen, z. B.:
# Anfang löschen (GPT + Protective MBR)
sudo dd if=/dev/zero of=/dev/sdX bs=1M count=2

# Ende löschen (Backup-GPT-Tabelle)
sudo dd if=/dev/zero of=/dev/sdX bs=1M count=2 seek=$(($(blockdev --getsz /dev/sdX) / 2048 - 2))

Danach, um sicherzustellen, dass das System keine Reste cached:

sudo partprobe /dev/sdX

Oder neu starten.

Script zur Automatisierung

Hier ist ein kleines Bash-Skript, das die Partitionstabelle einer Festplatte sicher löscht, sowohl bei MBR als auch GPT. Es löscht die ersten 2 MiB und – im Fall von GPT – auch die letzten 2 MiB der Platte.

🔧 Skript: wipe_partition_table.sh

#!/bin/bash

# Sicheres Skript zum Löschen der Partitionstabelle (MBR und GPT)
# WARNUNG: ALLE DATEN auf der angegebenen Festplatte werden unbrauchbar!

set -e

DEVICE="$1"

if [[ -z "$DEVICE" ]]; then
  echo "❌ Bitte gib das Zielgerät an (z. B. /dev/sdX)"
  echo "✅ Beispiel: sudo $0 /dev/sdX"
  exit 1
fi

# Sicherheitsabfrage
read -p "⚠️  Bist du sicher, dass du ALLE Partitionen auf $DEVICE löschen willst? (ja/nein): " confirm
if [[ "$confirm" != "ja" ]]; then
  echo "❎ Abgebrochen."
  exit 1
fi

echo "🧹 Lösche die ersten 2 MiB auf $DEVICE..."
dd if=/dev/zero of="$DEVICE" bs=1M count=2 status=progress

# Ermitteln der Größe der Festplatte in Sektoren
DISK_SIZE=$(blockdev --getsz "$DEVICE")
# 512 Byte pro Sektor, 2048 Sektoren = 1 MiB → Wir nehmen 2 MiB → 4096 Sektoren
GPT_BACKUP_START=$((DISK_SIZE - 4096))

echo "🧹 Lösche die letzten 2 MiB (GPT-Backup) auf $DEVICE..."
dd if=/dev/zero of="$DEVICE" bs=512 count=4096 seek=$GPT_BACKUP_START status=progress

echo "🔄 Aktualisiere Partitionstabellen im Kernel..."
partprobe "$DEVICE" || true

echo "✅ Partitionstabelle auf $DEVICE erfolgreich gelöscht."

Published by

Steven Varco

Steven ist ein Redhat RHCE- und Kubernetes CKA Zertifizierter Linux-Crack und ist seit über 20 Jahren sowohl beruflich wie auch privat auf Linux spezialisiert. In seinem Keller steht ein Server Rack mit diversen ESX und Linux Servern.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert