Autor Wątek: Wykrywanie typu FAT  (Przeczytany 4426 razy)

mangado

  • Nowy u
  • *
  • Wiadomości: 19
    • Zobacz profil
Wykrywanie typu FAT
« dnia: Grudzień 08, 2011, 12:12:03 »
Pane Nevar, ja w temacie artykułu 4.1 o FAT-ach.
Tam na końcu masz opis jak wykryć czy to FAT16 czy FAT32.
I tam padło takie zdanie "Jest to jednoznaczny i chyba najlepszy sposób określenia typu FAT dysku. Nie możliwe jest np. żeby dysk FAT16 miał więcej klastrów niż 65524".
Ale! FAT32 może mieć mniej niż 65524 klastrów! No chyba, że nie może....
Ale jak może to wtedy co?

Nevar

  • Administrator
  • Nowy u
  • *****
  • Wiadomości: 24
    • Zobacz profil
Odp: Wykrywanie typu FAT
« Odpowiedź #1 dnia: Grudzień 10, 2011, 01:25:08 »
Zgodnie ze specyfikacją to jest właśnie tak:
"The FAT type — one of FAT12, FAT16, or FAT32 — is determined by the count of clusters on the volume and nothing else."

Oczywiście można stworzyć dysk FAT32 o zbyt małej liczbie klastrów, ale wtedy z powodu braku zgodności każdy OS ma prawo olać taki dysk i uznać go za uszkodzony lub po prostu samemu go uszkodzić.
Dla testu utworzyłem taką partycję i w hex edytorze zmniejszyłem jej parametry tak żeby miała mało klastrów. Windows mimo wszystko operował na niej bez problemu. Tylko, że w tym przypadku on chyba bazował na wpisie PartitionType z sektora MBR. Można by się jeszcze bawić z utworzeniem systemu FAT32 na dyskietce.
Ja radzę brać przede wszystkim pod uwagę wpisy z MBRa. W specyfikacji FAT jest taki warunek rozpoznawania podany ponieważ nie obejmuje ona istnienia tablicy partycji i MBR. Tam gdzie jest jawnie podany typ to nie ma co się bawić w rozpoznawanie.

mangado

  • Nowy u
  • *
  • Wiadomości: 19
    • Zobacz profil
Odp: Wykrywanie typu FAT
« Odpowiedź #2 dnia: Grudzień 10, 2011, 15:57:13 »
I cześć pieśni!
Temat wyczerpany!
Dźwiękuje!