Linux Festplatten löschen – Aber sicher

Warnung!

Probiere die hier aufgeführten Beispiele auf keinem Fall auf deiner produktiven Computer aus! Mit diesen Befehlen löscht du deine Festplatten unwiderruflich! Verwende dazu eine Testinstallation von Linux in einer Virtuellen Umgebung.

Bevor mensch eine Festplatten aus seinem Rechner ausbaut, sollte mensch sie Bereinigen um allfällige persönliche so wie heikle Daten nicht unfreiwillig weiter zu geben. Da reicht leider ein einfaches löschen nicht.

Einfaches löschen

Üblicherweise nutzt mensch dazu den Befehl rm und die Optionen -rf heisst das es erzwungen wird und dies auch noch rekursiv.

# Einfaches löschen aller Dateien auf der System-Festplatte
sudo rm -rf /

Anstatt sudo kann auf deinem System auch doas installiert sein oder evtl. nutzt du auch su root um die Befehle als root auszuführen. Als normaler User kann mensch die Systemdateien nicht löschen oder überschreiben.

Damit wird nur dem System bekannt gegeben, dass der Platz auf dem die Datei(en) bis jetzt waren nun überschrieben werden können. Das heisst die Informationen von der Datei sind noch auf der Festplatte vorhanden aber nicht mehr sichtbar. Mit forensischen Mitteln um die Dateien wieder herzustellen. Je nach Dateisystem ist das Lesen und Wiederherstellen der gelöschten Datei eine nicht all zu grosse Sache.

Eleganter geht dies über den mv Befehl aber auch da werden die Daten nicht wirklich gelöscht und ist mit Vorsicht zu geniessen.

# Alle Dateien erzwingen nach dem "Nichts" vom System zu verschieben
sudo mv -f / /dev/null

Wenn da die gelöschte, eigentlich eine ins Nichts verschobene, Datei zugreifen möchte, zeigt es auf eben diesem Nichts. Die Daten sind auf der Festplatte immer noch vorhanden bis diese vom System überschrieben werden.

Festplatte finden

Bevor wir eine Festplatte komplett löschen oder besser gesagt bereinigen, ist es ratsam die Richtige zu finden und auszuwählen. Verschaffen wir uns erst mal eine Übersicht was wir an gemountete Laufwerke auf unserem System haben.

Bis jetzt haben wir es nur von der Dateihierarchie angegangen und nicht anhand der physischen Datenträgern. Die physischen Einhängepunkte vom Dateisystem zu finden, geht gut mit dem Befehl df und mit der Option -h lassen wir es uns auch noch Menschen lesbar anzeigen.

# Listet menschlich lesbar das Filesytem und deren Belegung auf
$ df -h

sr0     11:0    1  1024M  0 rom
Dateisystem    Größe Benutzt Verf. Verw% Eingehängt auf
dev             3.9G       0  3.9G    0% /dev
run             3.9G    1.6M  3.9G    1% /run
/dev/sda2       225G    156G   58G   74% /
tmpfs           3.9G    5.5M  3.9G    1% /dev/shm
tmpfs           3.9G     58M  3.8G    2% /tmp
/dev/sda1       300M    312K  300M    1% /boot/efi
tmpfs           785M    132K  785M    1% /run/user/1000
NAME   MAJ:MIN RM   SIZE RO TYPE MOUNTPOINTS

Wir sehen nun was wo gemountet und wie viel belegt ist. Gut soweit einen Überblick haben wir mal. Doch die physischen Datenträger hätten wir gerne auch noch klarer gesehen, dazu nutzen wir lsblk -a um alle aufzulisten.

# Listet alle Blöcke der Laufwerke auf
$ lsblk -a

sda      8:0    0 238.5G  0 disk
├─sda1   8:1    0   300M  0 part /boot/efi
├─sda2   8:2    0 229.4G  0 part /
└─sda3   8:3    0   8.8G  0 part [SWAP]
sr0     11:0    1  1024M  0 rom

In dieser weiteren Auflistung sehen wir welche physischen Festplatte mit welchen Mountpoint übereinstimmt wenn wir die vorhergehenden auch noch dazu ziehen. So können wir sicher sein, dass wir nicht was unwiderruflich löschen und überschreiben was wir noch benötigen. Gerade bei solchen heiklen Aktionen ist ein mehrfaches überprüfen wichtig.

Überschreiben

Mit Nichts überschreiben und mit zufälligen Bits nochmals überschreiben anstatt einfach die Dateien zum überschreiben freigeben, das ist der Weg wie Festplatten sauber gemacht werden.

Da wir vorhin nachgesehen haben welche Festplatte wir gerne löschen würden, sehen wir, dass die Disk sda wir auswählen müssen. Da in einem Linux System alles eine Datei ist finden wir die unter Devices und der vollständigen Pfad lautet /dev/sda. Diese wollen wir nun mit Nullen und dann zufällig überschreiben mittels dd.

# Nicht einfach löschen sondern die ganze Festplatte überschreiben
sudo dd if=/dev/null on=/dev/sda
sudo dd if=/dev/urandom on=/dev/sda

Wenn du SSD oder USB-Sticks so bereinigen möchtest, dann ist die letzte Zeile nicht nötig und eher schädlich für den Datenträger, nutze den ersten Befehl einfach zwei mal.

Das könne wir nun mehrfach wiederholen um sicher zu gehen das evtl. forensische Mittel da nicht noch was zurückführen können. Anschliessend ist eine neue Formation auf das gewünschte Dateisystem mittels mkfs noch nötig um die Festplatte wieder einsatzbereit zu haben.

# z.B. die Festplatte mittels FAT32 formatieren, damit diese von allen gelesen werden kann
sudo mkfs -t vfat /dev/sda

Alternativen

Es gibt noch folgende Alternativen aber diese müssten unter Umständen noch nachträglich auf dein Linux System installiert werden. Meines Wissens sind diese selten bei Distributionen üblicherweise vorinstalliert.

Der Befehl wipe macht genau das was wir vorhin mittels dd taten aber nicht zwingend über die Ganze Festplatte, es ist auch möglich einzelne Dateien damit sicher zu löschen.

sudo wipe -rfQ 5 /

Wir forcieren -f das reine wischen, so zu sagen vom Wurzelverzeichnis /, rekursiv -r auf und überschreiben anstelle der Datei mit Nullen (0) fünf mal -Q 5.

Eine weiter Möglichkeit bietet shred doch diese bietet von sich aus keine Möglichkeit Ordner rekursiv zu löschen, dazu muss mensch es mittels find kombinieren. Ganz Laufwerke gehen hingegen wieder relativ leicht.

sudo shred -z /dev/sda

Update: Das selbe hier aber das ganze Laufwerk wird fünf mal mit Nullen (0) überschreiben -n 5. shred schreibt ohne weiteren Angaben drei mal Zufallswerte über das Ziel und die Option -z bewirkt, dass am Schluss alles nochmals mit Nullen (0) überschrieben wird. – Danke @[email protected] für deinen Hinweis.

Fazit

Beachte bitte das das mehrfache überschreiben von SSD so wie USB-Sticks Datenträgern deren Lebenszeit verringern kann, deswegen rate ich da eher zu zweimaligem überschreiben mit Nullen / Nichts mittels dd. Dies zwei mal, damit die Blöcke im Hintergrund zur Fehlerkorrektur ebenfalls mit Nullen gefüllt werden. Anderseits besteht die Gefahr, dass durch deren Optimierung die Nullen nicht wirklich geschrieben werden, da ist wohl eher hdparm nützlich aber das ist für einen weiteren Artikel bestimmt.

Eine andere Möglichkeit dies alles zu umgehen wäre eine zeitgemässe Verschlüsselung der Datenträger anzuwenden. Diese aufzusetzen ist einen weiteren Artikel für sich aber so kann mensch sehr wohl diese relative aufwendige Löschung von Dateien sparen.

Wie immer lohnt es sich einen Blick auf de Man-Pages mittels man <BEFEHL> zu werfen um die einzelne Befehle genauer kennen zu lernen. Für Kommentare so wie evtl. Ergänzungen und Korrekturen gerne über Mastodon an mich wenden unter @[email protected].