Newsgroup: it.comp.aiuto
Titolo: FAT 32: questa sconosciuta

Salve a tutti! Da un pochino mi sono fissato a voler seguire i percorsi
dei file e delle direcotry nella FAT. Mi hanno suggerito di guardare in
alcuni siti e ho imparato un po' di cosette, tipo dove stanno le FAT e
come funzionano. C' è però un problema fondamentale che non riesco a
risolvere: come si leggono gli indirizzi nella FAT32? In questo file
system non esiste la root directory, ma c'è un campo nel device boot
sector che dice dov' è il primo cluster in cui è contenuta la root...è
il secondo. A questo punto vado al cluster 2 aspettandomi di trovare,
oltre a caratteri inintelleggibili, anche qualcosina tipo 'c:\...' e
invece niente!! Qualcuno sa dirmi cosa sbaglio, non dovrei aspettarmi
qualche nome di file?
C'è qualcheduno che spieghi queste cose in rete?

'c:\...' e invece niente!!
Subito dopo il boot record c'e' la FAT la quale non e' altro che una
sequenza di puntatori ai vari settori. Quello che cerchi tu (i nomi
dei file, etc...) non e' nella FAT ma nella Root Directory.
Per trovare dove inizia la Root devi :
- leggere il Boot record
- guardare quanti settori sono riservati all'inizio del disco (nel mio
disco che e' poco piu' di 6 GB sono 32)
- sempre dal boot record leggere quanti settori sono stati allocati
per la FAT (nel mio caso 12355)
- Con queste due cifre calcolare il primo settore della Root :
  12355 + 12355 + 32 = 24742 (FAT1 + FAT2 + riservati)
Nel primo settore della root troverai i nomi dei file come t'aspetti e
ogni file avra' vicino le sue informazioni tra cui qual'e' il primo
cluster che contiene il file. A questo punto, grazie ai puntatori
della FAT, puoi passare dal primo cluster del file ai successivi e
puoi cosi' leggere tutto il file.
La FAT e' una sequenza di blocchi di 4 byte che dicono se il cluster
e' parte di una catena (file) e qual'e' il cluster successivo. I
valori contenuti nei quattro byte possono essere (se non sbaglio) :
0 - Il cluster e' libero
0FFFFFFF - Il cluster e' l'ultimo cluster del file
???????? - Il cluster e' un Bad block (non ricordo qual'e' il valore
che viene memorizzato)
qualsiasi altro numero - il successivo cluster da leggere quando
carichi il file.
Esempio :
Leggendo la root trovi che il file XYZ inizia al cluster 10, vai nella
FAT a leggere le info del cluster 10 (quindi l'11 blocco di 4 byte) e
li' trovi 123. Significa che il primo cluster del file e' il 10 (lo
dice la Root) e il secondo e' il 123 (lo dice la FAT). Vai avanti
cosi' fino a quando non trovi 0 (fine file).
P.s. se vuoi leggere quali sono i file contenuti in una directory e
navigare nelle varie directory ci sono metodi piu' semplici e meno
legati alla tipo di FAT adottata. Ad esempio, in C, hai le funzioni
findfirst() e findnext().

 findfirst() e findnext().
No no, è solo per conoscere un po' più da vicino il file system, niente
di
pratico...
ti ringrazio per le informazioni, e se hai ancora un po' di pazienza te
ne
vorrei strappare un' altra: leggendo su PCguide ho scoperto che esistono
due boot sector(s): uno relativo a tutto il disco( Master Boot Sector),
con una partition table e i parametri del disco per il BIOS e il
programma
di boot del BIOS, l' altro relativo alla partizione attiva (Device Boot
Sector) che contiene il programma di boot del sistema operativo e altre
cose come la FAT....
Stando a quello che ho letto il MBS dovrebbe essere all' inizio del
disco,
ma io all' inizio del disco non ho il DBS, ossia quello che da giorni
sto
cercando di decifrare, quello che dopo ha la FAT e così via?
Dove sta er busillis?
Grazie