Partitionen - MMC, SD

OP #393570
Lesenswert?
• ▲
▼
Hi,

ich bin gerade dabei meine FAT32 libary umzugestalten (mehrere dateien
gleichzeitig, verschiedene partitionen, verschiedene medien).

Bin gerade dabei PARTITIONEN zu implementieren.

Laut Wikipedia ist ein MBR nicht immer auf einem Wechselspeicher
vorhanden weil er eigentlich nicht benötigt wird. Ist dies der Fall,
soll im ersten Sector direkt der VBR stehen.

Bei meiner MMC karte steht im ersten Sector definitiv kein VBR, dieser
liegt bei sector 32. Der MBR sieht ziemlich komisch aus, bis zum 1.
eintrag in der partitionstabelle sind nur nullen. Habe versucht den
wert für den anfang der partition aus der partitionstabelle zu
entnehmen. ich komme allerdings auf 63 und nicht auf 36.

Habe die Karte mehrmals formatiert, doch am MBR ändert sich nichts.

Woher soll ich jetzt die informationen nehmen wo die 1. partition
anfängt. wäre kein mbr vorhanden wärs ja kein problem, dann steht im 1.
sektor der vbr. Aber mit so einem "defekten MBR" ist ja dann raten
angesagt oder sehe ich das falsch?

Hoffe auf hilfe ;-)

MFG Jörn
OP #393571
Lesenswert?
• ▲
▼
Mein MBR:

00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 01
01 00 06 0F E0 D3 20 00 00 00 E0 A7 07 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 55 AA
#393572
Lesenswert?
• ▲
▼
Ist bei mir auch so ;)
00000000   00 00 00 00  00 00 00 00  00 00 00 00  00 00 00 00  00 00 00
00  00 00 00 00  00 00 00 00  ............................
...
00 00 00 00  00 00 00 03  ............................
000001C0   02 00 06 07  E0 C9 61 00  00 00 9F C9  03 00 00 00  00 00 00
00  00 00 00 00  00 00 00 00  ......a.....................
000001DC   00 00 00 00  00 00 00 00  00 00 00 00  00 00 00 00  00 00 00
00  00 00 00 00  00 00 00 00  ............................
000001F8   00 00 00 00  00 00 55 AA  00 00 00 00  00 00 00 00  00 00 00
00  00 00 00 00  00 00 00 00  ......U.....................

Mal ein auszug aus meinem aktuellen Projekt:
1
  //now check if this is a valid MBR:
2
  if (!((buffer[0x01FE] == 0x55) && (buffer[0x01FF] == 0xAA))){
3
    softuart_puts_progmem("FAT : error, invalid MBR");
4
    return 0;
5
  }
6

7
  //read out VBR address of first partition
8
  unsigned long fat16_vbr_start = 0;
9
  for (i=0x01C9; i>=0x01C6; i--){
10
    fat16_vbr_start = (fat16_vbr_start<<8) | buffer[i];
11
  }
12
  softuart_puts_progmem("FAT : VBR at sect ");
13
  softuart_put_uint16(fat16_vbr_start);
14
  softuart_putnewline();

Der VBR Anfang steht also in dem Stückchen drin ;)

Bye, Simon
Gast #393574
Lesenswert?
• ▲
▼
55AA überprüfen
Nimm einfach erstmal an du hast eine MBR also keine Superfloppy und
mache eine konsistenzprüfung der Daten der Partitionstabelle
 Sind Partitionen vorhanden? nur eine aktive Partition? etc.
Wenn nicht nimm an es wäre eine Superfloppy und versuche es als Dos
Bootsektor zu interpretieren.

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