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
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.
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.
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?
>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.
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
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.
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...
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.
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.
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
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
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
name schrieb:>> Habt ihr noch Tipps wo die Unterschiede zwischen FAT16 und FAT16 lba> sind?>> LGhttps://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 ;)
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!
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