nicio eroare, doar o buşeală în structura NTFS
LOL
.
Trecând peste afirmația de comă, discurile se testează scriind date pseudorandom verificând apoi hash-ul datelor citite. Tu doar torni apă într-o oală spartă.
dar probabil din cauză că făceam treaba asta sub Ubuntu
Sau probabil că nu. Ți se dezintegrează datele în fața ochilor și tot nu poți să vezi că ceva e stricat. Incredibil.
Deși disecatul firului în patru devine interesant ca un meci de tenis, nemaifiind mult până să ajungem la spinul electronului atomului de pe suprafața magnetică, pare să fie lipsit de relevanță și utilitate pentru problema de față. Propun să abandonăm această divagație.
Fă un split, am postat două posturi consecutive (pe care forumul le-a lipit) să poți muta acest post în noul thread.
Poate nu am fost clar. Daca-i asa, scuzele mele, intentiile erau bune.
Problema nu e că nu ai fost clar, ci că ai făcut o afirmație falsă. Da, intențiile erau bune, toți știm asta, nimeni nu a chestionat asta.
Niciun sistem de fișiere în afară de FAT nu are un file allocation table, denumire improprie pentru că de fapt este un cluster allocation table.
FAT-ul nu spune unde sunt fișierele pe disc, asta e specificat în directory entries, care sunt împrăștiate prin tot discul. FAT-ul nu face decât să implementeze o listă simplu înlănțuită de clustere, e o structură de date ce mapează un cluster la alt cluster.
NTFS nu are FAT. În NTFS fișierele se țin într-un tabel care se numește master file table și care e ținut pe disc într-un fișier numit $mft. Prima intrare din MFT e chiar $mft-ul, NTFS e homoiconic. Datele întră în coloana $DATA, dacă nu încap se folosește o schemă îndirectă în care se alocă dinamic extents iar în $DATA se implementează o mapare de la extents la clustere (de fapt un extent, numit în NTFS run, conține mai multe clustere și maparea e de la ceea ce NTFS numește VCL la LCN-uri, dar asta nu contează în exemplul dat).
MFT-ul e o structură de date ce mapează un object-id sau un filename la niște bytes.
În Unix totul e diferit. Metadata și datele asociate unui fișier sunt descrise de un inode. Fișierele nu au nume, numele sunt în directory entries care de fapt fac o mapare între nume și un inode number. Evident, un fișier poate avea oricâte nume. Unele sisteme de fișiere primitive au inode tables, dar există un astfel de tabel pentru fiecare cylinder group. Un astfel de tabel este o structură de date ce mapează un numar la un LBA. Sistemele de fișiere mai avansate nu au astfel de tabele ci țin totul în arbori cu noduri ce pot fi oriunde pe disc.
Strucura de date numită file allocation table din FAT nu o să o mai găsești nicăieri.