Forum: Mikrocontroller und Digitale Elektronik Problem SD Karte Sektor 0


von Andreas K. (ergoproxy)


Angehängte Dateien:

Lesenswert?

Hallo ich hab mir heute eine neue SD-HC 4GB Karte von SanDisk gekauft 
und dann auch gleich mal in den Cardreader geschoben:

1. Windows erkannte die Karte mit richtiger Größe und als unformatiert.
   Auch im Hex editor war eigendlich gähnende Leere. Deshalb hab ich die 
Karte mit der Standartformatierungssoftware von Windows mit Fat32 
erfolgreich formatiert.

2.  Nun ist die Karte les- und schreibbar. D.h. ich hab n Video von 
800mb drauf und dann mal geschaut ob ich es öffnen kann ( ps 40 sec 
übertragungszeit ^^ ). Ergebniss alles ok.

Nun das Problem:

Sektor 0 ist nicht da wo er sein sollte. Ich hab ihn nach etwas suchen 
unter Sektor 8198 gefunden. Dieser sieht aus wie der Sektor 0 aussehen 
sollte. Sektor 0 ( der Physikalische ) entält nur eine kleine Reihe von 
Daten am Ende.

Ich hab als Anhang Beide Sektoren als Screenshot des Hexviewers. tut mir 
leid wegen der Größe aber kleiner war unlesbar oder aber ich hätte es 
total Zerschneiden müssen und dann ist die übersicht auch weg.

Es wäre Super wenn mir jemand erklären könnte warum sich Sektor 0 so 
weit ab vom physikalischen Sektor 0 befindet und wie man herausbekommt 
(ohne wie ich die Karte abzusuchen) wo er sich befindet.

Vielen Dank für jede Hilfe. Gruß ErgoProxy

von Andreas K. (ergoproxy)


Lesenswert?

Hat hier wirklich niemand eine Idee ? Ich bin langsam am verzweifeln. 
Keins meiner Datenblätter sagt das dieser Sektor dort liegen sollte. 
Außerdem hab ich nochmal den "Sektor 0" in Sektor 8192 gefunden.

von Hmm... (Gast)


Lesenswert?

Was erwartest du denn in Sektor 0? Einen MBR? Es kann sein das der unter 
Windows unterschlagen wird.

von Andreas K. (ergoproxy)


Lesenswert?

Ja eigendlich erwarte ich schon unter Sektor 0 den MBR. In allen 
Tutorials und was ich über SD Karten gelesen hab sollte der da sein. Und 
was hat Windows für einen Einfluss auf einen HexEditor ? Ich kann mir 
grade nur nicht vorstellen das die Karte die ich da sehe verändert sein 
soll. Wie bekomm ich den eine 1:1 Darstellung einer Karte vom Ersten bis 
zum letzten Sektor ? Wenn ich das irgendwann in einem AVR auslesen will, 
dann würde ich doch gerne wissen wie der MBR dieser Karte aussieht.
Natürlich soll später mehr als eine Karte funktionieren, aber dennoch 
müsste doch jede in Sektor 0 einen MBR haben oder versteh ich den Aufbau 
da irgendwie falsch ?

Vielen Dank für deine Hilfe und ich hoffe irgendjemand kann mir noch die 
Unklarheiten erklären.

von Benedikt K. (benedikt)


Lesenswert?

Andreas K. wrote:
> Ja eigendlich erwarte ich schon unter Sektor 0 den MBR. In allen
> Tutorials und was ich über SD Karten gelesen hab sollte der da sein. Und
> was hat Windows für einen Einfluss auf einen HexEditor ?

Er meinte wohl nicht beim Anzeigen, sondern eher beim Formatieren. Wenn 
ich deine Angaben mit den Wikipedia Infos vergleiche, dann sehe ich 
einen MBR, inkl. Partitionstabelle, nur ohne Boot-Loader, der bei einer 
SD Karte auch wenig Sinn macht.
http://de.wikipedia.org/wiki/Master_Boot_Record

von Knut B. (Firma: TravelRec.) (travelrec) Benutzerseite


Lesenswert?

Was willst Du denn? An Adresse 454 und 455 steht der Startsektor für 
Deine Partition 0020, wenn Du´s umdrehst (Little Endian) erhältst Du 
2000, was exakt 8192 entspricht.

http://de.wikipedia.org/wiki/Master_Boot_Record

von Andre Z. (Gast)


Lesenswert?

Genau! am Physikalischen Sektor 0 ist der MBR (erkennbar am 55 AA am 
Ende) mit Partitionstabelle.
http://de.wikipedia.org/wiki/Partitionstabelle bzw. 
http://de.wikipedia.org/wiki/Bootsektor
Dort steht, bei welchem physikalischen Sektor Deine (einzige) Partition 
beginnt. Dort steht dann der Bootsektor der Partition, so wie man ihn 
erwartet...

von Andreas K. (ergoproxy)


Lesenswert?

DANKE ^^ Ich hab meinen Fehler gefunden. Ich hab irgendwie das Aussehn 
des MBR mit dem ersten Teil des FAT32 Dateisystems verwechselt. Der 
wurde im FAT32 Artikel hier im Forum als Sektor 0 Bezeichnet und ich hab 
das irgendwie dann verwechselt. Vielen Dank nochmal. Ach eine Frage 
nochmal:

Welchen Sinn hat Little Endian ? Ich weiß das es da ist und Ich weiß 
auch wie man es liest aber hat das irgend nen Vorteil dem normalen Lesen 
gegenüber ? Also von Anfang zum Ende hin oder hat sich das nur 
durchgesetzt weil die mächtigeren Firmen dahinter standen ?

von Termite (Gast)


Lesenswert?

Moin

es gibt beides sowol littel als auch big endien, sowie noch lustige 
kobinationen von beiden. (bei 32 bit oder 64bit werten die das dann in 
16Bit/32bit worte zerlegen anstelle von 8 bit Worte)

teiweise ist das historisch. intel hatte  hatt sein format  motorola 
ein anderes. Vieleicht auch nur deswegen um etwas anders zu machen als 
die anderen. Kompatibilität, Patente, der konkurenz nachweisen, das sie 
kopiert, ... Aber einmal auf dem Pfad ist ohne bruch in der abwärtz 
kompatibilität fast kein umschwenken mehr möglich

normalerweise hat das einen nur dann zu interessieren, wenn man 
varialben im speicher abbild mit einem Hex editor anschaut, da ist ja 
default auf 8 bit Darstellung. oder diese versucht diese in eine Datei 
zu speichern. da muss man dann schon aufpassen, was macht meine cpu, und 
wie ist das in der datei abgelegt.

von Andreas K. (ergoproxy)


Angehängte Dateien:

Lesenswert?

So vielen Dank erst nochmal für die Hilfe. Ich bin jetzt schon fast 
durch mit dem Verständniss des MBR. Allerdings habe ich noch ein Problem 
und zwar in der Partitionstabelle:

Im Anhang ist ein Ausschnitt des MBR also die Partitionstabelle. 
Markiert sind dort der Reinfolge nach:


gelb = Bootable (00= Nein 80=Ja) Länge: 1 Byte.

hellgrün = CHS-Eintrag des ersten Partitionssektors (Wie Rechnet man 
damit oder ist das unnötig ? Ich käme auf 3 Header, 2 Sektoren und 2 
Zylinder) Länge: 3 Byte.

bräunlich = Partitionstyp (0B = FAT32) Länge: 1 Byte.

dunkelgrün = CHS-Eintrag des letzten Sektors (wieder die Frage brauch 
ich das ?) Länge: 3 Byte.

blau = Startsektor (-> 00 00 20 00 = 8192 ) Länge: 4 Byte.

rosa/pink = Anzahl der Sektoren der Partition ( Hier 00 79 54 00 was 
etwa 3,78 GB entspricht ) Länge : 4 Byte.

Nun grade die Frage wozu sind die CHS-Einträge und was kann man damit 
anfangen oder ignoriert man sie einfach ? Eigendlich ist es ja Unsinn 
bei einem Flashspeicher hier Daten zu haben. Aber warum sind dann da 
Einträge ?

Grüße ErgoProxy

von Peter R. (gelb)


Lesenswert?

@ Andreas K. (ergoproxy)

der Umgang mit Cylinder, Head und Sector ist hier 
http://home.teleport.com/~brainy/fat32.htm ganz gut beschrieben.

Grüße, Peter

von Johannes S. (johanness)


Lesenswert?

Die CHS-Einträge repräsentierten schon lange vor Einführung von LBA 
nicht mehr die Geometrie der Festplatten, da wurden dann einfach 16, 32, 
64, 128 oder 240 oder 255 Köpfe (was halt passte) eingeführt, den Stapel 
möcht ich sehen ;-)

Bis 8 GB kann man auf diese Weise sogar adressieren. Darüber hinaus 
kannst du das aber vollkommen ignorieren.

Deine Karte wird als 128 Köpfe, 988 Zylinder (die sind geraten), 63 
Sektoren adressiert. Wenn du je Zylinder 128*63 Sektoren und je Kopf 63 
Sektoren rechnest kommst du genau auf die angegebenen Werte.

von holger (Gast)


Lesenswert?

>Nun grade die Frage wozu sind die CHS-Einträge und was kann man damit
>anfangen oder ignoriert man sie einfach ?

Ignoriere sie.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.