ZITAt (Wettervik @ 2008-07-15, 22:23) Zurück zum eigentlichen Thema: Ich habe die Karte jetzt mal (in der Kamera steckend; ich habe keinen Kartenleser für CF-Karten) mit dem Mac formatiert bzw dieses versucht. Geht nicht, Fehlermeldung nichtssaged und mir jetzt nicht mehr erinnerlich. Spielt aber auch keine Rolle, da ich entdeckt habe, daß das Disk Utility bei der Karte eine Kapazität von 8GB annimmt. Und das bleibt auch so, wenn ich sie mit der Kamera neu formatiere. (Wohlgemerkt: Das Filesystem bzw der Partition-Entry ist schon richtig aufgebaut, weshalb auf Filesystem-Ebene auch 32GB als frei angegeben sind; die Disk-Utilities, die direkt auf der Plattengeometrie aufbauen, gehen aber von einer falschen maximalen Blocknummer aus.)[/quote]
Gehen wir die Sache doch mal systematisch an:
Du scheinst ja die Möglichkeit zu haben, das Medium sektorweise auszulesen. Bitte lies doch mal den ersten Sektor aus, in dem der Master Bootstrap Loader und die Partitionstabelle stehen und poste den Inhalt hier als Anhang oder als Hex-Dump.
Weiterhin sehr interessant wäre ein Dump des ersten Sektors der FAT32-Partition, wobei mich der Bootloader weniger interessiert als die FAT32-XBPB-Tabelle (FAT32 Extended BIOS Parameter Block) am Anfang.
Aus den darin verankerten Geometriedaten leitet das Betriebssystem nämlich unter Zuhilfenahme von Daten des Disk-Treibers ab, wie es das Medium mounten kann. Der Disk-Treiber bekommt seine Daten aus der direkten Kommunikation mit der Firmware der Karte (ggfs. auf dem Umweg über den USB-Tunnel), wobei die Daten in der Partitionstabelle diese Daten zum Teil übersteuern können.
Meine Vermutung geht im Moment dahin, daß im Konfigurationsblock der CF-Karte ein paar falsche Daten eingetragen sind. Sowas kommt - leider - regelmäßig vor. Das wäre dann Sache des Kartenherstellers, diese Werte zu korrigieren.
Es wäre auch denkbar, daß in der Partitionstabelle einfach ein falscher Partitionstyp steht. Sehr häufig steht da z.B. ein Partitionstyp 06h, der eigentlich nur für eine FAT16B-Partition, die komplett innerhalb der ersten 8 GB der Karte liegt, verwendet werden darf, denn nur dann ist ein Zugriff über CHS erlaubt. Aber ich habe schon oft genug gesehen, daß der Typ auch bei FAT16B-Partitionen verwendet wurde, die oberhalb der 8 GB-Grenze lagen. Das funktioniert mit manchen Betriebssystemen, aber unter Systemen, die sich an den ursprünglichen Standard halten, kracht es dann in manchen Situationen. Auch habe ich schon CF-Karten gesehen, bei denen dieser Partitionstyp auch für FAT32-Partitionen verwendet wurde.
Mit ähnlicher Wahrscheinlichkeit könnte dort auch der Partitionstyp 0Bh eingetragen sein, der zwar immerhin schon mal ein FAT32-Medium spezifiziert, aber ebenfalls eines, das komplett innerhalb der ersten 8 GB liegt. Für eine 32 GB-Karte, auf der sich nur eine Partition befindet, wäre 0Ch der richtige Partitionstyp, denn um die kompletten 32 GB adressieren zu können, braucht man zwingend den Zugriff über LBA.
Falls das bei Deiner Karte nicht der Fall sein sollte, patche diesen Partitionstyp da mal rein.
Viele Grüße,
Matthias