Lost Clusters

Lost Clusters este cea mai frecventă eroare de sistem de fișiere, în care grupurile din FAT sunt marcate ca fiind utilizate, deși nu sunt. Adică există un lanț de clustere în tabelul FAT, dar nici unul dintre directoarele de pe disc nu conține nici un descriptor de fișiere care să indice începutul acestui lanț.







Această situație poate apărea atunci când programul "se blochează" sau când alimentarea eșuează în timpul operației de scriere a fișierului (de aceea sistemul oferă pentru verificarea unității de la FAT după oprirea incorectă a calculatorului). Sistemul înregistrează informații în zona de date (în grupuri de fișiere) și în elementele FAT, dar nu are timp să introducă descriptorul de fișier corespunzător în director. Acest lucru se datorează faptului că intrarea directorului pentru fișier este ultima parte a operației de scriere a fișierului, deoarece directorul conține dimensiunea fișierului, iar Windows nu-l poate cunoaște decât după ce termină scrierea fișierului.

Utilitarul utilitar care este inclus în Windows scanează FAT, caută clusterele pierdute și creează un descriptor de fișiere în directorul rădăcină indicând începutul lanțului. În plus față de utilitatea încorporată, există un număr mare de utilități de la producătorii externi pentru a rezolva problemele cu discurile.

Structură ierarhică (asemănătoare copacilor)

Vom vedea cum este structurată structura arborescentă a directoarelor, exact modul în care directorul stochează legăturile către directoarele de nivel următor (directoarele copilului) și modul în care orice director de fișiere stochează un link către directorul părinte. Ambele tipuri de referințe sunt descriptori.

Am menționat deja organizarea directoarelor pentru copii, un astfel de director are un descriptor în directorul părinte (ca fișier obișnuit). Din descriptorul de fișiere al descriptorului de director diferă numai prin atributul setat D (cel de-al patrulea bit din octetul atributului - DIRECTORY).

Acum, să vedem cum directorul fiu "știe" despre directorul părinte. În orice director, cu excepția directorului rădăcină, primele două descriptori au un scop special. Primul descriptor conține șirul "." În câmpul de nume. Acest descriptor indică directorul care îl conține, adică directorul are o referință la sine. Al doilea descriptor special are numele "..". Acest descriptor indică un director de nivel superior (părinte).

Astfel, în structura arborescentă a directoarelor sistemului de fișiere FAT, există referințe atât în ​​direcția înainte cât și înapoi. Aceste linkuri pot fi folosite pentru a verifica integritatea structurii directorului de sistem de fișiere.







Nume lungi

Primele versiuni ale sistemului de fișiere FAT au permis să stocheze doar nume de fișiere scurte în standardul "eight-point-three" (8.3). Acest lucru se datorează faptului că descriptorul fișierului pentru numele fișierului este alocat 8 octeți, iar pentru extensie 3 octeți. De la Windows 95, numele de fișiere lungi au fost acceptate. Într-un sistem de fișiere îmbunătățit, unui fișier sau director i se poate atribui un nume de până la 255 de caractere. În nume de fișiere lungi, puteți utiliza spații, precum și +; = [], care nu poate fi folosit în numele standard al fișierelor. Să vedem cum sunt aranjate numele lungi din sistemul de fișiere FAT.

Problema folosirii numelor lungi de fișiere a fost rezolvată după cum urmează: pentru fiecare fișier și subdirector are două nume: un scurt, „prietenos“ pentru toate programele de aplicație, și o lungă - pentru aplicațiile Windows și acele programe care oferă posibilitatea de a lucra cu nume lungi. Pentru a stoca nume scurte în formatul 8.3, se utilizează înregistrările obișnuite de 32 de octeți. Numele scurte pe care Windows le creează din nume lungi, tăind șase caractere mai vechi și adăugând la sfârșitul acestui nume de bază "

1 „Dacă există un nume care constă din aceleași șase caractere, acest număr este crescut cu unu. Extensia fișierului este menținută la fel. În cazul în care numele pe care caracterul nu este permisă în versiunile anterioare ale sistemului de operare, acesta se înlocuiește cu“ „semnul de subliniere (_). Alfabetul chirilic este convertit la majuscule (cu majuscule).

Să arătăm cât de mult sunt convertite numele pe cele scurte.

Lost Clusters
Lost Clusters
Lost Clusters

Nume lungi nume scurte

Aceste nume scurte vor fi stocate în descriptorii de fișiere plasate în directoare. Astfel, toate versiunile sistemelor de operare pot accesa fișierul sub un nume lung folosind numele său scurt.

Există încă o problemă: cum să stocați 255 de caractere din numele fișierului în 32 de octeți ai descriptorului de fișiere, deoarece fiecare caracter al numelui fișierului este un octet? Nu puteți modifica structura intrării directorului, deoarece versiunile anterioare ale sistemelor de operare nu vor putea să o utilizeze. Dezvoltatorii sistemului de fișiere au rezolvat această problemă după cum urmează: au fost adăugate intrări de agende suplimentare pentru stocarea numelor lungi de fișiere. Pentru versiunile anterioare ale sistemelor de operare nu „va Notă“ aceste intrări suplimentare de director, sistemul se aplică atributele corespunzătoare care nu pot fi utilizate pentru fișier obișnuit (valoare octet 0Fh atribute: read-only, ascuns de sistem, și eticheta de volum). Deoarece valorile atributelor sunt inconsistente (nu este protejat la scriere, ascunse și eticheta de volum de sistem), se ocupă cu astfel de atribute, sistemul ignoră și, prin urmare, nume de fișiere lungi rămân „intacte“.

Pentru un anumit fișier sau director imediat înainte de numai mânerul numelui său în formatul 8.3 este un grup de una sau mai multe intrări (descriptori cu „greșit“ atribute), reprezentând un nume lung (până la 255 de caractere). Fiecare astfel de înregistrare conține o parte a numelui lung de fișier de cel mult 13 caractere, iar sistemul de operare alcătuiesc numele complet lung al tuturor înregistrărilor.







Articole similare

Trimiteți-le prietenilor: