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
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
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
Oh, hab'S mir grad nochmal angeschaut, mein VBR liegt im sector 32. aus der partitionstabelle 20 00 00 00 = 32 Passt also doch ;-) Nun noch eine Frage, wie unterscheidet man zwischen VBR und MBR? anfang und ende sind laut wikipedia ja gleich.
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.
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.