Programowanie > OS-Dev

Wykrywanie typu FAT

(1/1)

mangado:
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:
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:
I cześć pieśni!
Temat wyczerpany!
Dźwiękuje!

Nawigacja

[0] Indeks wiadomości

Idź do wersji pełnej