Prinzip:
Zum einen können von einer Festplatte keine einzelnen Bytes, sondern nur Datenblocklöcke(=Sektor) mit minimaler Länge (i.R 512 Bytes) gelesen und geschrieben werden.
Zum anderen wird der Speicher auf einem Datenträger nicht direkt genutzt, sondern über eine Art Verwaltungstabelle - da wird markiert, welcher Block aka Sector frei ist und welcher belegt ist und wo Daten nun genau auf der Platte zu finden sind (also eine Zuordnungsliste mit "Datenname: Position und Länge auf dem Datenträger"
(stark vereinfachte Darstellung)
Code:
+-+-+-+
|H|D|D|
+-+-+-+
+------------------------+
| Sectorbelegungstabelle:|
+---------+--------------+------------+
| Sector: | belegt: |
| 1 | ja |
| 2 | ja |
| 3 | ja |
| ... | |
| 20 | ja |
| 21 | ja |
| 22 | ja |
| ... | |
| 200 | ja |
| 201 | nein |
| 202 | ja |
| 203 | nein |
| ... | |
| 5600 | nein |
+---------+---------------------------+
| Verzeichnisstabelle: |
+--------------------+-------+--------+
| Name: |Sector:| Laenge:|
| | | |
| hello.txt |20 | 1 |
| Windows\kernel.exe|21 | 100 |
| boot.ini |121 | 1 |
| ... | | |
+--------------------+-------+--------+
| Eigentliche Daten: |
+-------------------------------------+
| sectorNr: Bytes |
| 20 hello world!!! |
| 21 MZ9040000MS... |
| 121 WindowsOperationsy...|
| |
+-------------------------------------+
Die Verwaltungstabelle wird öfters auch [ame="http://de.wikipedia.org/wiki/Dateisystem"]Dateisystem[/ame] genannt
Sie ist auch der Grund, warum eine Festplatte nach dem Formatieren plötzlich paar Hundert MB weniger Speicher hat, als vorher - obwohl noch keine Daten drauf sind
"normales" aka unsicheres Löschen entfernt nur den Namen aus der Verzeichnisstabelle und markiert die Speicherblöcke aka Sectoren als frei:
"del hello.txt"
Code:
+-+-+-+
|H|D|D|
+-+-+-+
+------------------------+
| Sectorbelegungstabelle:|
+---------+--------------+------------+
| Sector: | belegt: |
| 1 | ja |
| 2 | ja |
| 3 | ja |
| ... | |
| 20 | nein |
| 21 | ja |
| 22 | ja |
| ... | |
| 200 | ja |
| 201 | nein |
| 202 | ja |
| 203 | nein |
| ... | |
| 5600 | nein |
+---------+---------------------------+
| Verzeichnisstabelle: |
+--------------------+-------+--------+
| Name: |Sector:| Laenge:|
| | | |
| ......... |.. | ... |
| Windows\kernel.exe|21 | 100 |
| boot.ini |121 | 1 |
| ... | | |
+--------------------+-------+--------+
| Eigentliche Daten: |
+-------------------------------------+
| sectorNr: Bytes |
| 20 hello world!!! |
| 21 MZ9040000MS... |
| 121 WindowsOperationsy...|
| |
+-------------------------------------+
Wie man aber sieht, bleibt der Inhalt der "hello.txt" an Sector 20 erstmal bestehen und wird erst dann überschrieben, wenn man neue Daten speichert.
Dasselbe passiert auch bei "Schnellformatierung" - es wird nur eine neue Verzeichnisstabelle erstellt und Sectorbelegungstabelle "genullt" - die eigentlichen Daten sind erstmal trotzdem drauf.
Daher kann man trotz der "Löschung"/"Formatierung" immer noch an den Inhalt kommen (und deshalb gibt es auch massig "Recovery"/"Undelete" usw. Programme
).
Beim sicheren Löschen sollte nicht nur der Eintrag aus Verzeichnisstabelle entfernt und die Sektoren als frei markiert werden, sondern auch der Inhalt tatsächlich überschreiben. Wird von Betriebsystemen normalerweise nicht gemacht, da es zu lange dauert (siehe Rechnung oben).
D.h im Falle des Falles wird man die Daten nicht in Minutenschnelle von der Platte entfernen können, da die Platte schlichtweg physikalisch dazu nicht in der Lage wäre. Das Sicherste wäre hier immer noch wie immer eine Verschlüsselung, da dann die Daten auf der Platte erstmal als "Zufallsbytes" vorliegen und nur mit einem richtigen Passwort wieder eine "sinnvolle Gestalt" annehmen können.