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

Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt. Bitte hier nur auf die ursprüngliche Frage antworten, für neue Fragen einen neuen Beitrag erstellen.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.