Ziel: microSD-Karte formatiert...
- für beste Schreibleistung
- nur zur Verwendung mit eingebettetem Linux
- für bessere Zuverlässigkeit (es können zufällige Stromausfälle auftreten)
- mit einer Clustergröße von 64 kB
Ich verwende eine 8 GB große microSD-Karte zur Datenspeicherung in einem eingebetteten Linux/ARM-Gerät. Die SD-Karte ist nicht herausnehmbar. Ich verwende ext3 anstelle des vorinstallierten FAT32, da es mit zufälligen Stromausfällen beim Schreiben besser klarzukommen scheint. Allerdings ist mir immer wieder aufgefallen, dass meine Schreibleistung mit dem vorinstallierten FAT32 von Kingston immer am besten ist. Wenn ich die Karte mit FAT32 neu formatiere, leidet die Leistung trotzdem. Beim Durchsuchen von Wikipedia bin ich auf den folgenden Kommentar gestoßen, der besagt, dass einige Karten für bestimmte Clustergrößen optimiert sind. In meinem Fall ist die Kingston für eine Clustergröße von 64 kB vorformatiert.
Das Neuformatieren einer SD-Karte mit einem anderen oder sogar mit demselben Dateisystem kann die Karte langsamer machen oder ihre Lebensdauer verkürzen. Einige Karten verwenden Wear Leveling, bei dem häufig geänderte Blöcke zu unterschiedlichen Zeiten unterschiedlichen Speicherbereichen zugeordnet werden, und einige Wear Leveling-Algorithmen sind für die typischen Zugriffsmuster der Dateizuordnungstabelle auf einem FAT16- oder FAT32-Gerät ausgelegt.[60] Darüber hinaus kann das vorformatierte Dateisystem eine Clustergröße verwenden, die dem Löschbereich des physischen Speichers auf der Karte entspricht; eine Neuformatierung kann die Clustergröße ändern und Schreibvorgänge weniger effizient machen.
Antwort1
Die meisten SD-Karten (und auch USB-Laufwerke) sind für die Verwendung mit FAT32 optimiert. Die Verwendung mit einem anderen FS führt zu Leistungseinbußen.
Mehr Infos unterLWN.
Antwort2
Beachten Sie dasFormatierungstool der SD Card Associationerledigt folgendes für Sie.
Ich habe noch nicht die vollständige Antwort für alle Geräte. Hier ist jedoch die Antwort für 8-GiB-Karten mit FAT32.
Partitionieren Sie die Karte so, dass die FAT32-Partition bei Sektor 8.192 beginnt, also 4 MiB vom Anfang der Festplatte entfernt. Formatieren Sie als Nächstes die FAT32-Partition mit 32-KiB-Clustern und legen Sie die Anzahl der „reservierten Sektoren“ so fest, dass der Datenbereich, Cluster 2, der FAT32-Partition bei logischem Sektor 8.192 beginnt (oder 8 MiB vom Anfang der Festplatte (4 MiB vom Anfang der Partition).
Use 32kiB clusters
| 4MiB | 4MiB | remainder of disk |
| ------- | --------------------------------- | ------------------ |
| MBR | First Partition Header + FAT tables | First Partition Data |
Zusammenfassung der Begründung: Die SD Card Association hat diese 4-MiB-Grenzen als optimierte Zonen empfohlen und empfiehlt FAT32 als Dateisystem für Karten dieser Größe. Der Controllerchip in der Karte ist für kleine Lese-/Schreibvorgänge in diesem zweiten 4-MiB-Bereich optimiert.
Es steckt noch viel mehr dahinter, aber das ist die schnelle und einfache Antwort. Die obige Methode funktioniert nur für Festplatten < 16 GiB für 32-KiB-Cluster und < 32 GiB für 64-KiB-Cluster. Ich vermute, dass bei größeren Festplatten der Datenbereich auf logische 8 MiB erweitert wird, aber ich habe keine Festplatte, die größer als 8 GiB ist und die ich verwenden könnte.