Forum: Mikrocontroller und Digitale Elektronik SD Card beschreiben


von name (Gast)


Lesenswert?

Hallo

ich habe ein Gerät welches die SD Karte nach FAT16 (Typ 0x06) 
beschreibt. Windows formatiert aber die SD Karte nach FAT16 with lba 
(Typ 0x0E).
Mich würde interessieren ob beim beschreiben der SD Karte ein 
unterschied ist. Auf was wäre da zu achten bzw. nach welchem Schema 
werden die zwei FAT16 Typen beschrieben.

Irgendwie finde ich nicht wirklich den Unterschied. Hat jemand Tipps wo 
man sich einlesen kann wie FAT16(0x06) und wie FAT16(0x0E) beschrieben 
wird.

Danke

LG

von Norbert T. (atos)


Lesenswert?

FATs von SDcard.org sind nicht gleich FATs von Microsoft, es gibt da 
kleinere Unterschiede, deswegen sollte man SD-Karten grundsätzlich nicht 
mit MS Win sondern mit dem SDcardFormatter-Tool von der Website der 
SDcard.org formattieren. Einlesen wird schwer - die Unterschiede in den 
Dateisystemen sind zwar in den Specs der SDcard.org, jedoch nur für 
Mitglieder zugänglich.

Beitrag "Low Level SD Card Access"
In diesem Thread habe ich Mal in einem Beitrag eine Seite aus den nicht 
öffentlich zugänglichen Specs für FAT32 verlinkt, da kann man die 
Unterschiede zwischen MS uns SDcard.org sehen.

: Bearbeitet durch User
von Luther B. (luther-blissett)


Lesenswert?

Partitiontyp 0xE wurde eingeführt (mit Windows 95 glaube ich), weil die 
alten 0x6 Partitionen nur innerhalb der ersten 8GB der Platte beginnen 
konnten. Der Unterschied zu 0x6 sind ein paar andere Werte im BIOS 
Parameter Block (am Anfang des FS), weil Drive-Geometrien anders 
abgelegt werden (mit LBA) und damit alte DOS-Version nicht über diese 
Werte stolpern, wurde der Typ geändert damit sie diese Partitionen 
ignorieren. Das ist vermutlich inzwischen eher von historischem 
Interesse bzw. nur von Belang, wenn du deine SD Karte (irgendwie) in 
einen DOS 6.22 Rechner stecken willst.

: Bearbeitet durch User
von Christoph db1uq K. (christoph_kessler)


Lesenswert?

Hier ist die Tabelle der Dateitypen, die Linux fdisk kennt:
1
 fdisk l   Die bekannten Dateisystemtypen anzeigen:
2
 
3
 0  Leer            24  NEC DOS         81  Minix / altes L bf  Solaris        
4
 1  FAT12           27  Verst. NTFS Win 82  Linux Swap / So c1  DRDOS/sec (FAT-
5
 2  XENIX root      39  Plan 9          83  Linux           c4  DRDOS/sec (FAT-
6
 3  XENIX usr       3c  PartitionMagic  84  versteckte OS/2 c6  DRDOS/sec (FAT-
7
 4  FAT16 <32M      40  Venix 80286     85  Linux erweitert c7  Syrinx         
8
 5  Erweiterte      41  PPC PReP Boot   86  NTFS Datenträge da  Keine Dateisyst
9
 6  FAT16           42  SFS             87  NTFS Datenträge db  CP/M / CTOS / .
10
 7  HPFS/NTFS/exFAT 4d  QNX4.x          88  Linux Klartext  de  Dell Dienstprog
11
 8  AIX             4e  QNX4.x 2. Teil  8e  Linux LVM       df  BootIt
12
 9  AIX bootfähig   4f  QNX4.x 3. Teil  93  Amoeba          e1  DOS-Zugriff
13
 a  OS/2-Bootmanage 50  OnTrack DM      94  Amoeba BBT      e3  DOS R/O
14
 b  W95 FAT32       51  OnTrack DM6 Aux 9f  BSD/OS          e4  SpeedStor      
15
 c  W95 FAT32 (LBA) 52  CP/M            a0  IBM Thinkpad Ru ea  Rufus-Ausrichtu
16
 e  W95 FAT16 (LBA) 53  OnTrack DM6 Aux a5  FreeBSD         eb  BeOS Dateisyste
17
 f  W95 Erw. (LBA)  54  OnTrackDM6      a6  OpenBSD         ee  GPT            
18
10  OPUS            55  EZ-Drive        a7  NeXTSTEP        ef  EFI (FAT-12/16/
19
11  Verst. FAT12    56  Golden Bow      a8  Darwin UFS      f0  Linux/PA-RISC B
20
12  Compaq Diagnost 5c  Priam Edisk     a9  NetBSD          f1  SpeedStor      
21
14  Verst. FAT16 <3 61  SpeedStor       ab  Darwin Boot     f4  SpeedStor      
22
16  Verst. FAT16    63  GNU HURD oder S af  HFS / HFS+      f2  DOS sekundär   
23
17  Verst. HPFS/NTF 64  Novell Netware  b7  BSDi Dateisyste fb  VMware VMFS    
24
18  AST SmartSleep  65  Novell Netware  b8  BSDI Swap       fc  VMware VMKCORE 
25
1b  Verst. W95 FAT3 70  DiskSecure Mult bb  Boot-Assistent  fd  Linux RAID-Auto
26
1c  Verst. W95 FAT3 75  PC/IX           bc  Acronis FAT32 L fe  LANstep        
27
1e  Verst. W95 FAT1 80  Altes Minix     be  Solaris Boot    ff  BBT

von Franti (Gast)


Lesenswert?

Christoph db1uq K. schrieb:

> Hier ist die Tabelle der Dateitypen, die Linux fdisk kennt:

Die Mutter aller sinnlosen Beiträge. Was soll der TO mit dieser 
Information?

von drm (Gast)


Lesenswert?

>Was soll der TO mit dieser Information?
z.B. Linux Mint Image herunterladen,
auf USB Stick schreiben,
davon booten,
apt-get install gparted auf der konsole eingeben,
anschliessend mit gparted die SD Karte in das gewünschte Format bringen 
... ?

Windows ist nach WinXP leider nicht mehr so basterfreundlich wie es 
einmal war.
Einen Linux Rechner in der Hinterhand erspart oft viele Windows 
Frickellösungen.
Seit Raspi 4 gibt es keinen finanziellen Grund mehr gegen einen Linux 
Rechner.
Oder halt ein Bootmedium als Behelf.

von aGast (Gast)


Lesenswert?

Hat was mit der maximalen Dateigröße zu tun. Schau mal da unter FAT16
https://de.wikipedia.org/wiki/File_Allocation_Table#FAT16

von aGast (Gast)


Lesenswert?

aGast schrieb:
> maximalen Dateigröße

Sorry meinte Dateinamensgröße also mehr als 8.3

von name (Gast)


Lesenswert?

Danke für die Antworten.

Linux und Windows machen die FAT16(0x0E) Formatierung. Ich werde 
genauere Informationen brauchen. Angeblich macht FAT16(0x06) die 
Adressierung mit CHS und FAT16(0x0E) die Adressierung mit LBA.

Habt ihr vielleicht noch Links oder Informationen wo beim FAT noch die 
Unterschiede sind.

LG

von Jim M. (turboj)


Lesenswert?

name schrieb:
> Hat jemand Tipps wo
> man sich einlesen kann wie FAT16(0x06) und wie FAT16(0x0E) beschrieben
> wird.

Wurstegal auf SD-Karten, denn die kennen gar keine C/H/S Adressen von 
uralten Festplatten. Der einizge Unterschied ist der Wert der in dem 
Byte selbst steht. ;-)

Es gibt übrigens ein "offizelles" SD Formatter Tool auf sdcard.org, 
dessen Ausgabe wäre meine Referenz.  Das sollte man bevorzugt benutzen, 
denn damit werden die FATs korrekt auf physische Sektoren gemappt.

von c-hater (Gast)


Lesenswert?

name schrieb:

> Linux und Windows machen die FAT16(0x0E) Formatierung. Ich werde
> genauere Informationen brauchen. Angeblich macht FAT16(0x06) die
> Adressierung mit CHS und FAT16(0x0E) die Adressierung mit LBA.

Genau.

> Habt ihr vielleicht noch Links oder Informationen wo beim FAT noch die
> Unterschiede sind.

Das hat Luther B. bereits korrekt benannt. Die Unterschiede liegen nicht 
allein in der Partitionstabelle, sondern im BIOS parameter block (BPB, 
manchmal auch bezeichnet als disk parameter block->DPB) am Anfang des 
jeweiligen Partition.

Auch ohne die gnädige Hilfe der geldgierigen Wichser der SD-Organisation 
solltest du mit diesen Suchbegriffen alles Wissenswerte zu diesem Thema 
finden können. Heute ist nix davon mehr geheim.

Als Referenz für die BIOS-Struktur würde ich die RBIL ("Ralph Browns 
Interrupt List") empfehlen. Das ist für den ganzen historischen Kram 
DIE Referenz überhaupt, denn da ist auch sehr viel Wissen um den 
historischen Kontext und um proprietäre Varianten mit drin. Wenn man 
sich mit diesem Kram heute beschäftigen muss, dann ist das absolute 
Pflichtlektüre. Selbst dann, wenn man damals schon aktiv war. Dann hat 
man nämlich heute auch schon den größten Teil dieses ganzen Unfugs schon 
wieder vergessen...

von name (Gast)


Lesenswert?

Ich habe mir mit einem HEX Editor den MBR von der SD Card angeschaut. 
Kann es sein dass alles 0 ist außer der Partition Table und die letzten 
zwei Byte. Der einzige Unterschied zwischen FAT16 und FAT16(LBA) sind 
die 3 Byte im End CHS.

von my2ct (Gast)


Lesenswert?

name schrieb:
> Ich habe mir mit einem HEX Editor den MBR von der SD Card angeschaut.
> Kann es sein dass alles 0 ist außer der Partition Table und die letzten
> zwei Byte.

Wenn die SD Card nicht bootfähig ist, wird wohl kein Startprogramm für 
BIOS-basierte Computer drauf sein und statt dessen z.B. 0en.
https://de.wikipedia.org/wiki/Master_Boot_Record
Das wahr nicht sooh schwer.

von name (Gast)


Lesenswert?

Ich bin nicht auf den Wert von 2GB von der SD Card gekommen. Habt ihr 
einen Tipp wo der Fehler liegt?

Danke!


Vom HEX Editor bekomme ich für die Partitionstabelle:

00 04 04 00 06 2C EC CC FF 00 00 00 01 D7 3B 00

CHS Ende - CHS Anfang = 2C EC CC - 04 04 00 = 28 E8 CC

Entspricht BIN:

0010 1000 | 1110 1000 | 1100 1100

Header, Sector, Cylinder

0010 1000 | 10 1000 | 11 1100 1100

40 x 40 x 972 = 1 555 200

Header x Sector x Cylinder x 512 = 1 555 200 x 512 = 796 262 400

von dummschwaetzer (Gast)


Lesenswert?

nimm mal active@disk editor, der kann das besser als dein hex-editor

von name (Gast)


Lesenswert?

Ich habe jetzt den active@disk Editor genommen, und es kommt das Selbe 
raus.

Start head 4 (wird dezimal angezeigt)
Start sector (bits 0-5) 0x04
Start cylinder 0x00
Filesystem ID 0x06
End head 44 (ohne 0x also dezimal)
End sector(0-5) 0xEC
End cylinder 0xCC
Total sectors 3.921.665

Gerechnet:

2CECCC-40400 = 28ECCC

bin:

0010 1000 1110 1000 1100 1100 => 40 Head, 40 Sektor, 972 Cylinder

40*40*972 = 1 555 200

1 555 200*512 = 796 262 400

Ich komme nicht in die nähe von 2GB. Habt ihr einen Tipp wo der Fehler 
liegt?

Danke!

LG

von name (Gast)


Lesenswert?

Ich habe die SD Card in FAT16(lda) formatiert.

Es steht:

00 04 04 00 0E FE 3F F3 FF 00 00 00 01 D7 3B 00

Beim active@disk Editor werden mir auch Head, Sektor und Cylinder 
angezeigt.

Aber der FAT16 Type 0E ist doch nur in Sektoren unterteilt und nicht in 
Head  und Cylinder.

Laut Berechnung ist es:
FE 3F F3 - 04 04 00 = FA 3B F3

Ist also Dezimal:
16 399 347 Sektoren * 512 = 8 396 465 664

Da komme ich auch nicht in die Nähe von 2GB.

Habt ihr noch Tipps wo die Unterschiede zwischen FAT16 und FAT16 lba 
sind?

LG

von ### (Gast)


Lesenswert?

name schrieb:


>
> Habt ihr noch Tipps wo die Unterschiede zwischen FAT16 und FAT16 lba
> sind?
>
> LG

https://en.wikipedia.org/wiki/File_Allocation_Table

BigFAT,BIGDOS,FAT16B / FAT16X


... Partitions partially or fully located beyond the CHS barrier 
therefore had to be hidden from non-LBA-enabled operating systems by 
using the new partition type 0x0E in the partition table instead. FAT16 
partitions using this partition type are also named FAT16X.[35] The only 
difference, compared to previous FAT16 partitions, is the fact that some 
CHS-related geometry entries in the BPB record, namely the number of 
sectors per track and the number of heads, may contain no or misleading 
values and should not be used....


ggf. den reichlich vorhanden Fußnoten folgen.



das meiste aus der Zeit wurde erfolgreich verdrängt ;)

von Bla-formater (Gast)


Lesenswert?

name schrieb:
> Ich habe die SD Card in FAT16(lda) formatiert.

OK.

name schrieb:
> Habt ihr noch Tipps wo die Unterschiede zwischen FAT16 und FAT16 lba
> sind?

Nicht in Bla?

oder Blupp?

oder schon ganz Balla?

Don´t drink and write!

von Bla-formater (Gast)


Lesenswert?


von dummschwaetzer (Gast)


Lesenswert?

>Total sectors 3.921.665
passt doch, *512 (Bytes je Sektor) ...

von name (Gast)


Lesenswert?

00 04 04 00 06 2C EC CC FF 00 00 00 01 D7 3B 00

Bei 3.921.665*512= 2007892480 bin ich bei ca. 2GB.

Wie komme ich aber auf Total Sectors?

2C EC CC - 04 04 00 = 28 E8 CC

00101000 11101000 11001100

40*40*972*512 = 796 262 400


Und bei:

CC EC 2C - 00 04 04 = CC E8 28

11001100 11101000 00101000

204*40*808*512 = 3 375 759 360

Ich komme nicht in die Nähe von Total_Sector*512 = ca. 2GB

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.