Post by Ralf SchneiderPost by Marcel MuellerKäse. Da ist nur ein Bootloader drin. Der Rest der Firmware steht in
denselben Flash-Chips, wie die Daten. Zusammen mit etlichen anderen
Konfigurationsdaten, versteht sich.
Ach so. Das wird nie irgendwo gesagt. Danke.
Der Bootloader scheint dann aber gut versteckt zu sein, denn neue SSD
lösche ich immer mit dd if=/dev/urandom of=/dev/die_ssd.
Das ist SSD-Aging! Man sollte so etwas nicht tun.
Post by Ralf SchneiderDamit sollten doch alle Chips gelöscht sein.
Nein.
SSDs habe kein 1:1 Mapping von LBAs zu physikalische Flash-Blocken. Ganz
im Gegenteil, jeder Schreibvorgang desselben logischen Blocks erfolgt
notwendigerweise in einen _anderen_ Flash-Block, das sich Flash-Blöcke
nicht in Place überschreiben lassen. Man muss sie zuvor löschen, und das
geht nur in vergleichsweise großen Blöcken von einigen MB am Stück. Die
SSD schreibt die Information daher einfach immer irgendwo hin, wo gerade
Platz ist, und merkt sich an anderer Stelle, welcher logische Block
gerade wo steht.
Hinzu kommt, das jede SSD mehr SSD-Speicher hat, als sie nach außen
bereit stellt, sog. Overprovisioning. Das geht auch gar nicht anders,
denn wegen der großen Löschblocks, könnte man die letzten logischen
Blöcke sonst gar nicht schreiben. Es müssen zuvor ja immer erst ein paar
MB gelöscht werden. Und dazu müssen die noch benötigten Daten an eine
andere Stelle geschrieben werden. In der Praxis hat man natürlich mehr
als nur einen überzähligen Erase-Block in petto. Genauere ist ein
Betriebsgeheimnis.
Bei modernen SSDs ist es noch komplizierter, da diese die Daten in
unterschiedlichen Aufzeichnungsdichten schreiben. Meist werden die
zuletzt geschriebenen Daten immer erst mal im SLC-Modus geschrieben (1
Bit pro physikalische Flash-Speicherzelle) und dann später werden die
Daten noch ein zweites mal im QLC-Modus (4 Bit pro physikalische
Flash-Speicherzelle) geschrieben. Dabei brauchen sie natürlich nur ein
viertel der Speicherzellen. Das macht man, damit die Benchmarkergebnisse
besser aussehen. Für die End-User Performance in einem normalen Desktop
ohne spezielle Anwendungsfälle ist die Wirkung sehr gering.
Damit dürfte auch klar sein, dass wenn man von außen die Nenndatenmenge
auf die SSD schreibt, gar nicht unbedingt alle Daten in den Flash Chips
überschrieben werden. Das kann im sicherheitskritischen Umfeld ein
Problem werden, wenn gebrauchte Datenträger weiter gegeben werden, weil
diese Informationen durch auslöten der Flash-Chips u.U. teilweise
rekonstruiert werden könnten. Deswegen gibt es dafür ein Spezielles
ATA-Kommando Secure Erase, bei dem die SSD garantiert alle Daten löscht
(sofern die Firmware dabei keinen Mist baut).
Post by Ralf SchneiderDie SSD funktioniert aber
nach Partitionieren und Formatieren weiter. Woran liegt das ?
Die Firmware und auch die Verwaltungsinformationen liegen in von außen
nicht zugänglichen Speicherbereichen der Flash-Chips.
Marcel