FAT16 - Kleines Verständinisproblem

Gast #2025320
Lesenswert?
• ▲
▼
Hallo alle zusammen,

ich will von einer SD-Karte auslesen wieviel Speicher noch frei ist.
Das stelle ich mir so vor:

In die Fat-Tabelle springen alle Einträge durchgehne und dabei zählen
wie oft 0x0000 drin steht. Dann noch meinen gezählten Wert mit der Größe 
eines Clusters multiplizieren und fertig.

Jetzt mein Problem:
Wieviele FAT-Einträge gibt es den? Jeder Eintrag hat 2 Bytes -> Es gibt 
65535 Cluster.
Wenn es 65535 Cluster gibt dann muss es auch 65535 Einträge geben.

Und wenn man 65535 Einträge zu je 2 Bytes -> dann ist die SD-Karte voll 
????

Als voll nur mit der FAT. Irgendwas stimmt da nicht.


Würde mich freuen jemand ein wenig Licht ins Dunkel bringen Könnte.
Gast #2025346
Lesenswert?
• ▲
▼
Ich schrieb:
> Wenn es 65535 Cluster gibt dann muss es auch 65535 Einträge geben.
> Und wenn man 65535 Einträge zu je 2 Bytes -> dann ist die SD-Karte voll

wenn es 65535  Einträge zu je 2 Bytes dann sind das 131070byte, wenn 
jetzt des Cluster 512byte hat dann sind es nur 256 cluster.
Gast #2025507
Lesenswert?
• ▲
▼
Achtung jetzt kommt die Musterlösung
Ich ernennt mich hiermit zum FATMaster.

Es ist so FAT16:

-In der Tabelle sind immer 65535 Einträge. Diese beziehen sich auf die
 Cluster
-Daraus folgt das es bei FAT16 immer 65535 Cluster gibt.

Folgende Daten hab ich vom 1GB Karte ausgelesen:

512 Bytes pro Sektor
32  Sektoren per Cluster

-> 16KB pro Cluster

16KB pro Cluster *65535 FAT Einträge ->Ergibt genau die Größe der Karte 
(1GB).

Bei Kleinen Karten z.B 512 MB ändert sich nur die Cluster Größe
auf 8KB

Weil 8KB pro Cluster*65535 Fat Einträge ist 512MB die Größe der Karte

So jetzt hab ichs verstanden und im Netz verewigt.

Schönen Feieraben
Gast #2026217
Lesenswert?
• ▲
▼
@Rufus Τ. Firefly

Es gibt 100% immer 65535 Cluster genauso wie es immer 65535 Einträge 
gibt.

Ob in den CLustern und in den Einträgen was drinnen steht hängt von
den Daten ab die gespeichert sind.

Natürlich belegt eine 1kb datei keine 65535 Cluster und benötigt auch 
keine
65535 Einträge.

Bei einer 1GB Karte hat man eine Clustergröße von 16kb. Eine
Datei mit 1KB wird somit auf der Karte einen Eintrag erzeugen und 
letztendlich 16KB in anspruchnehmen. 15 KB im Cluster sind frei.
Gast #2026261
Lesenswert?
• ▲
▼
@Rufus Τ. Firefly
Hat doch recht.

> -Daraus folgt das es bei FAT16 immer 65535 Cluster gibt

Die Aussage stimmt doch nicht.

Die Anzahl der Cluster und somit der FAT-Einträge errechnet sich so

Gesamtsektoranzahl des Mediums/Anzahl Sektoren pro Cluster =
AnzahlderCluster
Gast #2026330
Lesenswert?
• ▲
▼
Dann nimm doch mal ein Medium mit 700 MB. Da bleibt die Clustergröße bei 
16 kB, es sind aber weniger Cluster.

Man kann größere Cluster nehmen als vorgesehen. Bei deinem Beispiel 32 
kB oder 64 kB. dann brauchst du nur 32767 oder 16737 Cluster. Dann wird 
auch die FAT kleiner
Persönliche Seite #2026361
Lesenswert?
• ▲
▼
DirkB schrieb:
> Man kann größere Cluster nehmen als vorgesehen. Bei deinem Beispiel 32
> kB oder 64 kB.

64 kiB-Cluster sind eine Ausnahme, die werden nicht mehr von allen 
Systemen mit FAT16-Unterstützung akzeptiert. Das offizielle Größenlimit 
liegt bei 32 kiB und damit 2 GiB Partitionsgröße.

Die "inoffiziellen" 64 kiB-Cluster hat Microsoft mit alten Versionen von 
Windows NT eingeführt. Bei der Installation wurde eine 4 GiB große 
FAT16-Partition angelegt, deren Dateisystem im Laufe der Installation zu 
NTFS konvertiert wurde. Die von CD gestarteten Installationsroutinen 
waren damals nicht in der Lage, selbst mit NTFS umzugehen, daher dieser 
etwas merkwürdige Zwischenschritt.


Für die Diskussion hier entscheidend: Die Größe eines Clusters ist immer 
eine Zweierpotenz von Sektoren, d.h. 1, 2, 4, 8, 16, 32 oder 64 Sektoren 
à 512 Byte, also 512, 1024, 2048, 4096, 8192, 16384 oder 32768 Bytes.

Die Anzahl der letzlich verwendeten Cluster wird üblicherweise so 
festgelegt, daß die jeweils kleinste Clustergröße verwendet wird, bei 
der die möglichen ca. 65000 Cluster für die Partitionsgröße ausreichen.
Gast #2165404
Lesenswert?
• ▲
▼
Ich schrieb:
> Jetzt mein Problem:
> Wieviele FAT-Einträge gibt es den? Jeder Eintrag hat 2 Bytes -> Es gibt
> 65535 Cluster.
> Wenn es 65535 Cluster gibt dann muss es auch 65535 Einträge geben.
Das ist die maximale Anzahl an Cluster die das FAT-Dateisystem verwalten 
kann...
>
> Und wenn man 65535 Einträge zu je 2 Bytes -> dann ist die SD-Karte voll
> ????
Wie groß die FAT-Tabelle tatsächlich ist steht im Bootsector (Bei einer 
1.44MB Fat12 Floppy sind es 9 Sectoren bzw ~4,5KB)
>
>
>
Einfach Fat einlesen, "0000" Einträge zählen, mit Sectoren/Cluster und 
Bytes/Sector multiplizieren -> freier Speicher

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren