www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Erkennen ob Volume mit FAT formatiert


Autor: Mars (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo!

Wie kann ich erkennen, ob eine Partition ein FAT Dateisystem hat, oder 
ein anderes Dateisystem z.B. NTFS hat.
Laut FAT-Spezifikation von MS gibt es im BPB das Feld BS_FilSysType. In 
diesem soll FAT(12|16) stehen. Allerdings ist dieses Feld nur 
"informational only" und Windows wertet dieses Feld nicht aus(Überprüft 
durch Überschreiben mit XXX).
Also wie kann ich zuverlässig erkennen, ob ein FAT Dateisystem vorhanden 
ist.

Lg

Autor: Geist (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
in der partitionstabelle der platte gibt es einen partitionstyp.
den mußt du abfragen.

Autor: Karl-heinz Strunk (cletus)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Naja gut, der kann aber recht beliebig sein...

Autor: Uhu Uhuhu (uhu)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Das Formatierprogramm von Linux kennt sie alle und zeigt sie auch an.

Autor: Gast (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Der Partitionstyp von FAT und NTFS ist afaik der selbe.

Autor: Mars (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Bei mir handelt es sich konkret um einen USBStick ohne MBR. Somit gibt 
es auch keine Partitionstabelle in der ich den Typ finden kann.

Autor: holger (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
BPB_NumFATs -> Anzahl der FAT Tabellen

Bei FAT steht dort meist 2.
Bei NTFS 0 soviel ich weiss.

Autor: Mars (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Holger!

Danke für den Tipp. NTFS war nur ein Beispiel, es könnte ja auch ext2, 
ReiserFS, etc sein. Auch die Anzahl der FATs muss nicht unbedingt 2 
sein.
Aber ich vermute mir bleibt nichts anderes über, als alle Felder im BPB 
auf ihre Gültigkeit hin zu überprüfen.

Autor: holger (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>Auch die Anzahl der FATs muss nicht unbedingt 2 sein.

Sicher, 1 könnte auch gehen. 3 oder grösser habe ich noch
nie gesehen ;) 0 geht nicht.

BS_FilSysType ist schon ein ganz guter Anhaltspunkt
zur Bestimmung ob FAT oder nicht. Ich habe
noch nie gesehen das nicht FAT12 oder FAT16
oder FAT32 drinstand wenn mit FAT formatiert wurde.

Autor: Mars (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>BS_FilSysType ist schon ein ganz guter Anhaltspunkt
>zur Bestimmung ob FAT oder nicht. Ich habe
>noch nie gesehen das nicht FAT12 oder FAT16
>oder FAT32 drinstand wenn mit FAT formatiert wurde.

Ja da hast du sicher Recht. Allerdings bin ich bei soetwas immer etwas 
pedantisch.

Autor: Dieter B. (debe)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Mars,

bei XP: Rechtsklick auf Arbeitsplatz (auf dem Desktop), dann Verwalten 
und Datenträgerverwaltung anklicken. Da ist bei den Laufwerken das 
Dateisystem angegeben.

Gruß debe

Autor: hust (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
LOL, da hat wohl einer den Thread nicht gelesen ;-)

Autor: Peter (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
also FAT und NTFS habe nicht den gleichen Partitionstype.
.
Es gibt keine eindeutiges Merkmal. man kann nur den ersten Sektor 
analysieren ob die Daten für FAT einen Sinn ergebene. (Anzahl der 
Sektoren zur Platte passt usw.) Bei NTFS steht immer NTFS an einer 
STelle. Bei den Linux-FS gibt es glaube ich eine UID woran man sie 
unterscheiden kann.

 0  Empty           1e  Hidden W95 FAT1 80  Old Minix       be  Solaris 
boot
 1  FAT12           24  NEC DOS         81  Minix / old Lin bf  Solaris
 2  XENIX root      39  Plan 9          82  Linux swap / So c1 
DRDOS/sec (FAT-
 3  XENIX usr       3c  PartitionMagic  83  Linux           c4 
DRDOS/sec (FAT-
 4  FAT16 <32M      40  Venix 80286     84  OS/2 hidden C:  c6 
DRDOS/sec (FAT-
 5  Extended        41  PPC PReP Boot   85  Linux extended  c7  Syrinx
 6  FAT16           42  SFS             86  NTFS volume set da  Non-FS 
data
 7  HPFS/NTFS       4d  QNX4.x          87  NTFS volume set db  CP/M / 
CTOS / .
 8  AIX             4e  QNX4.x 2nd part 88  Linux plaintext de  Dell 
Utility
 9  AIX bootable    4f  QNX4.x 3rd part 8e  Linux LVM       df  BootIt
 a  OS/2 Boot Manag 50  OnTrack DM      93  Amoeba          e1  DOS 
access
 b  W95 FAT32       51  OnTrack DM6 Aux 94  Amoeba BBT      e3  DOS R/O
 c  W95 FAT32 (LBA) 52  CP/M            9f  BSD/OS          e4 
SpeedStor
 e  W95 FAT16 (LBA) 53  OnTrack DM6 Aux a0  IBM Thinkpad hi eb  BeOS fs
 f  W95 Ext'd (LBA) 54  OnTrackDM6      a5  FreeBSD         ee  EFI GPT
10  OPUS            55  EZ-Drive        a6  OpenBSD         ef  EFI 
(FAT-12/16/
11  Hidden FAT12    56  Golden Bow      a7  NeXTSTEP        f0 
Linux/PA-RISC b
12  Compaq diagnost 5c  Priam Edisk     a8  Darwin UFS      f1 
SpeedStor
14  Hidden FAT16 <3 61  SpeedStor       a9  NetBSD          f4 
SpeedStor
16  Hidden FAT16    63  GNU HURD or Sys ab  Darwin boot     f2  DOS 
secondary
17  Hidden HPFS/NTF 64  Novell Netware  b7  BSDI fs         fd  Linux 
raid auto
18  AST SmartSleep  65  Novell Netware  b8  BSDI swap       fe  LANstep
1b  Hidden W95 FAT3 70  DiskSecure Mult bb  Boot Wizard hid ff  BBT
1c  Hidden W95 FAT3 75  PC/IX

Autor: holger (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>also FAT und NTFS habe nicht den gleichen Partitionstype.

Wenn in Sektor 0 aber ein Bootsektor statt einer Partitionstabelle
steht nützt diese Erkenntnis auch nichts :(

Autor: Peter (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
eine Partitionstabelle gibt es auch mit Bootsektor, nur bei Disketten 
gibt es keine Partitionstabelle. (USB mal mit und mal ohne). Aber 
festplatte hatten bis jetzt immer eine. (auch wenn man es mit linux 
anderes machen kann)

Autor: Karl-heinz Strunk (cletus)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Peter wrote:
> eine Partitionstabelle gibt es auch mit Bootsektor, nur bei Disketten
> gibt es keine Partitionstabelle. (USB mal mit und mal ohne). Aber
> festplatte hatten bis jetzt immer eine. (auch wenn man es mit linux
> anderes machen kann)

Habe ich auch schon ab Werk ohne gesehen, gerade bei USB-Sticks.

Wenn es darum geht, per FAT auf ein Volume zuzugreifen, würde ich 
sowieso kurz prüfen, ob die Table korrekt ist und da sinnige Werte drin 
stehen.

Von daher...

Autor: holger (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>> eine Partitionstabelle gibt es auch mit Bootsektor, nur bei Disketten
>> gibt es keine Partitionstabelle. (USB mal mit und mal ohne). Aber
>> festplatte hatten bis jetzt immer eine. (auch wenn man es mit linux
>> anderes machen kann)

>Habe ich auch schon ab Werk ohne gesehen, gerade bei USB-Sticks.

Auch bei MMC/SD Karten findet man beides.

Autor: Uhu Uhuhu (uhu)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Du könntest mal im Windows DDK nachsehen, ob da der FAT Recognizer in 
Quellen vorhanden ist. Dann weißt du, wie Kleinweich das macht.

Autor: Mars (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Danke für eure Tipps.

Lg

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
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.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.