Formattazione - Formattare un disco rigido Prima di capire che cos'è la formattazione, è essenziale conoscere il funzionamento di un disco rigido. Molte persone non distinguono la formattazione a basso livello (detta anche formattazione hardware) da quello ad alto livello (formattazione software). I dischi rigidi, per quanto piccoli possano essere, contengono milioni di bit, e necessitano quindi di un'organizzazione dei dati per poter localizzare le informazioni; questo è lo scopo della formattazione. La superficie di ogni cilindro, originariamente uniforme, al momento della formattazione viene divisa (con divisione si intende ovviamente la magnetizzazione delle particelle della superficie...) in piccole porzioni che potranno essere facilmente identificate. La formattazione a basso livello Lo scopo della formattazione a basso livello è di dividere la superficie dei dischi in elementi di base : tracce settori cilindri Ricordiamo che il disco rigido è costituito da più placche circolari che girano intorno ad un'asse coperte da una parte all'altra da un ossido magnetico che, essendo polarizzato, può immagazzinare dei dati. Le tracce sono delle zone concentriche scritte da una parte all'altra di una placca. Infine, queste tracce sono suddivise in quartieri detti settori. Le tracce si contano a migliaia e ciascuna prevede da 60 a 120 settori circa. Viene detto cilindro l'insieme dei dati posti su una stessa traccia di placche diverse (cioè verticalmente le une sulle altre) dato che questa forma nello spazio un "cilindro" di dati. La formattazione fisica consiste quindi nell'organizzare la superficie di ogni placca in entità dette tracce e settori, polarizzando delle zone di dischi mediante delle testine di scrittura. Le tracce sono numerate partendo da 0, poi le teste polarizzano concentricamente la superficie delle placche. Quando si passa alla traccia successiva, la testa lascia un "buco" (detto gap in inglese) e così via di seguito. Ogni traccia è essa stessa organizzata in settori (numerati cominciando da 1) separate fra loro dai gap. Ciascuno di questi settori comincia con un zona riservata alle informazioni di sistema detta prefisso e termina con una zona detta suffisso La formattazione a basso livello ha quindi come scopo di preparare la superficie del disco per accogliere dei dati (non dipende quindi dal sistema operativo e permette di "evidenziare i settori difettosi grazie a dei test effettuati dal fabbricante. Quando si acquista un disco rigido, esso ha già subito una formattazione a basso livello, NON E QUINDI NECESSARIO EFFETTUARE UNA FORMATTAZIONE A BASSO LIVELLO! Somma di controllo Effettivamente, durante la formattazione si effettuano dei test di controllo (algoritmi che permettono di testare la validità dei settori mediante delle somme di controllo) e ogni volta che un settore è considerato difettoso, la somma di controllo (non valida) è inserita nel prefisso, e non potrà più essere usata in seguito; si dice allora che è "evidenziato difettoso". Quando il disco legge dei dati, invia un valore dipendente dal contenuto del pacchetto inviato, inizialmente memorizzato insieme a questi. Il sistema calcola questo valore in funzione dei dati ricevuti, poi lo compara con quello memorizzato insieme ai dati. Se questi due valori sono diversi, i dati non sono validi e vi è probabilmente un problema di superficie del disco. Il controllo di ridondanza ciclica (CRC, in inglese cyclic redundancy check), è basato sullo stesso principio del controllo di integrità di un file. Le utility d'analisi come scandisk o chkdsk lavorano in un altro modo : essi inseriscono dei dati nei settori indicati a priori come validi, poi li rileggono e li paragonano. Se sono simili, l'utility passa al settore successivo, altrimenti evidenziano il settore difettoso. Formattazione a alto livello La formattazione software si effettua dopo la formattazione a basso livello, creando un sistema di file sul disco, che consente ad un sistema operativo(DOS, Windows 95, Linux, OS/2, Windows NT, ...) di utilizzare lo spazio sul disco per memorizzare e usare dei file. I sistemi operativi utilizzano dei sistemi di file diversi, così il tipo di formattazione software dipende dal sistema operativo installato. Se si formatta il disco con un solo sistema di file, questo limita ovviamente il numero e il tipo disistemi operativi installabili (in effetti potete installare solo dei sistemi operativi che utilizzano lo stesso sistema di file). Fortunatamente, vi è una soluzione a questo problema che consiste nel creare delle partizioni. Ciascuna partizione può effettivamente avere il proprio sistema di file, di conseguenza potete installare dei sistemi operativi diversi. Che cos'è una partizione? La partizione di un disco rigido si fa dopo la formattazione hardware di quest'ultimo e prima della formattazione software. Essa consiste nel creare delle zone sul disco i cui dati non saranno mescolati. Questo serve principalmente ad installare dei sistemi operativi diversi che non utilizzano lo stesso sistema di file. Vi saranno quindi almeno tanto partizioni quanti sono isistemi operativi che usano dei sistemi di file diversi. Nel caso di un sistema operativo unico, può bastare una sola partizione della dimensione del disco, a meno che si desideri crearne in più per fare ad esempio più lettori i cui dati sono separati. Vi sono tre tipi di partizioni: la partizione principale, la partizione estesa e ilettori logici. Un disco può contenere fino a quattro partizioni principali (di cui una sola attiva), o tre partizioni principali e una partizione estesa. Nella partizione estesa l'utente può creare dei lettori logici (cioè "simulare" più dischi rigidi di dimensione minore). Vediamo un esempio nel quale il disco contiene una partizione principale e una partizione estesa composta da tre lettori logici (vedremo in seguito le partizioni principali multiple) : Per i sistemi DOS (DOS, Windows 9x), solo la partizione principale è bootabile, ed è dunque la sola su cui si può avviare il sistema operativo. Viene detta partizione il processo che consiste nello scrivere i settori che costituiranno la tabella di partizione (che contiene le informazioni sulla partizione: dimensione in termini di numero di settori, posizione rispetto alla partizione principale, tipo di partizioni presenti, sistemi operativi installati...). Una volta creata la partizione, le si da un nome di volume che permetterà di identificarla facilmente. Master Boot Record Il settore di avvio (detto Master Boot Record o MBR in inglese) è il primo settore di un disco rigido (cilindro 0, testina 0 e settore 1), esso contiene latabella di partizione principale (in inglese partition table) e il codice, dettoboot loader, che, una volta caricato in memoria, permette di avviare (boot) il sistema. Questo programma, una volta in memoria, determinerà su quale partizione il sistema si avvierà, e comincerà il programma (detto bootstrap) che avvierà il sistema operativo presente su questa partizione. D'altra parte, è questo settore del disco che contiene tutte le informazioni relative al disco rigido (produttore, numero di serie, numero di byte per settore, numero di settori per cluster, numero di settori...). Questo settore del disco rigido è quindi quello più importante, esso serve al setup del BIOS per riconoscere il disco rigido. Quindi, senza questo il vostro disco rigido è inutilizzabile, cosa che lo rende uno dei bersagli preferiti dei virus. I sistemi di file (File System) In tutte queste sezioni si tratterà di differenziare il sistema di file FAT (File Allocation Table in inglese). Viene detto FAT il sistema di file usato dai sistemi operativi DOS (DOS e Windows 95 nonché Windows NT e OS/2 che lo supportano). Sistema operativo Sistema di file associato DOS FAT16 Windows XP NTFS Windows 98 FAT32 Windows 95 FAT16 - FAT32 (per la versione OSR2) Windows NT NTFS OS/2 HPFS Linux Linux Ext2, Linux Ext3 Il sistema di file FAT si caratterizza dall'utilizzo di una tabella di allocazione di file e di cluster (o blocchi). I cluster sono le più piccole unità d'immagazzinamento del sistema di file FAT. Un cluster rappresenta in verità un numero fisso di settori del disco. La FAT (File Allocation Table: tabella di allocazione di file) è il nucleo del sistema di file. Essa è localizzata nel settore 2 del cilindro 0 alla testina 1 (Essa è duplicata in un altro settore con delle misure di precauzione in caso di incidente). In questa tabella sono registrati i numeri dei cluster utilizzati, e dove sono posti i file nei cluster. Il sistema di file FAT supporta dei dischi o delle partizioni di una dimensione che arriva fino a 2GB, ma autorizza al massimo 65536 cluster. Così, qualunque sia la dimensione della partizione o del disco, esso deve avere settori sufficienti affinché tutto lo spazio del disco possa essere contenuto in questi 65536 cluster. Quindi, più la taglia del disco (o della partizione) è importante, più il numero di settori per cluster deve essere importante. Il sistema di file FAT utilizza una <gras>cartella root (rappresentata sui sistemi operativi che usano questo tipo di sistema di file con il segno C:\), che deve essere posto in un luogo specifico del disco rigido. Questa root directory immagazzina le informazioni in sottocartelle e file che lo contengono. Per un file, esso immagazzinerà quindi : il nome del file la dimensione del file la data e l'ora dell'ultima modifica del file gli attributi del file il numero del cluster dove il file comincia Utilizzare delle partizioni multiple Vi sono, come abbiamo visto precedentemente, tre tipi di partizioni: le partizioni principali, la partizione estesa e i lettori logici. Un disco può contenere fino a quattro partizioni principali (di cui una sola attiva), o tre partizioni principali e una partizione estesa. Nella partizione estesa l'utente può creare dei lettori logici (cioè fare in modo che si abbia l'impressione che vi siano più dischi rigidi di dimensione ridotta). partizione principale Una partizione principale deve essere formattata logicamente, poi contenere un sistema di file corrispondente al sistema operativo installato su questa. Se si hanno più partizioni principali sul disco, solamente una sarà attiva e visibile, e questa dipenderà dal sistema operativo su cui viene avviato il computer. Scegliendo il sistema operativo all'avvio, si determina la partizione visibile. La partizione attiva è la partizione su cui uno dei sistemi operativi è avviato all'avvio del computer. Le altre partizioni saranno allora nascoste, cosa che impedirà di accedere ai loro dati. Così, i dati di una partizione principale non sono accessibili che partendo dal sistema operativo installato su questa partizione. partizione estesa La partizione estesa è stata messa a punto per oltrepassare il limite delle quattro partizioni principali, avendo la possibilità di creare tanti lettori logici quanti se ne desiderano. In una partizione estesa si deve avere almeno un lettore logico, dato che non si può memorizzarvi direttamente i dati. Molti terminali sono formattati in una grande partizione che utilizza l'integralità dello spazio disponibile sul lettore. Questa non è comunque la soluzione più vantaggiosa in termini di performance e di capacità. La soluzione è creare più partizioni, cosa che consentirà : di installare più sistemi operativi sul disco di risparmiare dello spazio sul disco di aumentare la sicurezza dei vostri file di organizzare i vostri dati più facilmente Vediamo ora a cosa può assomigliare un sistema con più sistemi operativi : Che cos'è un File System? I dischi rigidi, per quanto piccoli possano essere, contengono milioni di bit, bisogna quindi organizzare i dati per poter localizzare le informazioni, questo è lo scopo del sistema di file. Un disco rigido è, ricordiamolo, costituito da più placche circolari che ruotano intorno ad un'asse. Le tracce (zone concentriche scritte da una parte all'altra di una placca) sono divise in quartieri detti settori (dimensione 512 byte). La formattazione logica di un disco consente di creare un sistema di file sul disco, che permetterà ad un sistema operativo (DOS,Windows 9x,UNIX, ...) di usare lo spazio del disco per memorizzare e utilizzare dei file. Il sistema di file è basato sulla gestione dei cluster (in italiano "unità di allocazione"), cioè la più piccola unità del disco che il sistema operativo è in grado di gestire. Un cluster è costituito da uno o più settori, così più la dimensione di un cluster è importante, meno entità dovrà gestire il sistema operativo... D'altra parte, dato che un sistema operativo gestisce solamente dei cluster interi, il che significa che un file occupa un numero intero di cluster, lo spreco è tanto più grande quanti settori vi sono per cluster. Si capisce quindi l'importanza della scelta del sistema di file. Sistema di file e sistema operativo In realtà la scelta del sistema di file si effettua in primo luogo secondo il sistema operativo utilizzato. Generalmente, più il sistema operativo è recente più il numero di sistemi di file supportati sarà importante. Così, su DOS e sulle prime versioni di Windows 95 la FAT16 è obbligatoria. A partire da Windows 95 OSR2 avete la scelta fra i sistemi di file FAT16 e FAT32. Se la dimensione della partizione è superiore a 2Gb, il sistema di file FAT è escluso, e dovrete quindi utilizzare il sistema FAT32 (o modificare la dimensione della partizione). Sotto questo limite, si raccomanda la FAT16 per partizioni di capacità inferiore a 500Mb, altrimenti è preferibile usare la FAT32. Nel caso di Windows NT (fino alla versione 4) avete la scelta fra il sistema FAT16 e NTFS, anche se questo non supporta la FAT32. Generalmente il sistema NTFS è consigliato dato che procura una sicurezza maggiore nonché delle performance migliori rispetto alla FAT. Microsoft raccomanda in effetti di utilizzare una piccola partizione (compresa fra 250 e 500Mb) di tipo FAT per il sistema operativo, per poter avviare partendo da un disco boot DOS in caso di problema, e di conservare i dati su una seconda partizione. Su Windows NT5 la gamma si allarga dato che accetta delle partizioni FAT16, FAT32 NTFS. Una volta di più, si consiglia il sistema di file più recente (NTFS 5), dato che offre numerose funzionalità supplementari rispetto ai sistemi FAT. Per le ragioni precedentemente citate, potete tuttavia optare per una partizione di tipo FAT. Sistema operativo Tipi di sistema di file supportati Dos FAT16 Windows 95 FAT16 Windows 95 OSR2 FAT16, FAT32 Windows 98 FAT16, FAT32 Windows NT4 FAT, NTFS (versione 4) Windows 2000/XP FAT, FAT16, FAT32, NTFS (versioni 4 et 5) Linux Ext2, Ext3, ReiserFS, Linux Swap(, FAT16, FAT32, NTFS) MacOS HFS (Hierarchical File System), MFS (Macintosh File System) OS/2 HPFS (High Performance File System) SGI IRIX XFS FreeBSD, OpenBSD UFS (Unix File System) Sun Solaris UFS (Unix File System) IBM AIX JFS (Journaled File System) La coabitazione di più sistemi di file Quando su uno stesso terminale abbiamo più sistemi operativi, il problema della scelta del sistema di file arriva al suo parossismo. In effetti, il sistema di file è strettamente legato al sistema operativo quindi, quando vi sono più sistemi operativi, bisogna scegliere per ognuno di essi il sistema operativo tenendo conto della possibilità di dover accedere a dei dati su uno partendo da un altro. Una prima soluzione consiste nell'utilizzare delle partizioni FAT per tutti i sistemi, facendo attenzione a usare delle partizioni di dimensione inferiore a 2Gb. La soluzione più appropriata sta nell'utilizzare per ciascuno dei sistemi una partizione del sistema di file più adatto, e di dedicare una partizione in FAT16 ai dati destinati ad essere condivisi dai diversi sistemi operativi. Il sistema di file FAT16 Il primo sistema di file utilizzato su un sistema operativo Microsoft è stato il sistema FAT, che utilizza una tabella di allocazione dei file (in inglese FAT,File Allocation Table. La tabella di allocazione dei file è in effetti un indice che elenca il contenuto del disco, per registrare la posizione dei file sullo stesso. Dato che i blocchi che costituiscono un file non sono sempre memorizzati in modo contiguo sul disco (quello che si definisce con frammentazione), la tabella di allocazione permette di conservare la struttura del file creando dei collegamenti con i blocchi che costituiscono il file. Il sistema FAT è un sistemaa 16 bit che permette di descrivere un file con un nome composto da 8 caratteri e un'estensione di 3. Questo sistema viene quindi detto FAT16. Per migliorare questo punto, la versione originale di Windows 95 (usando il sistema FAT16) è stata dotata di una versione migliorata della FAT, si tratta del sistema VFAT (Virtual FAT). La VFAT è un sistema a 32 bit che consente di registrare un file con un nome composto da 255 caratteri. I programmatori hanno tuttavia dovuto far attenzione alla compatibilità ascendente, in modo tale da poter accedere a questi file partendo da ambienti a 16 bit (DOS). La soluzione è quindi stata quella di attribuire un nome ad ogni sistema. E' la ragione per cui è possibile usare dei nomi lunghi su Windows 95, potendo comunque accedervi anche su DOS. Il sistema di file FAT è un sistema a 16 bit, il che significa che non può indirizzare i cluster su più di 16 bit. Il numero massimo di cluser individuabili con il sistema FAT è quindi di 216, cioè 65536 cluster. Ora, dato che un cluster è costituito da un numero fisso (4, 8, 16, 32, ...) di settori di 512 byte successivi, la dimensione massima di una partizione FAT si trova moltiplicando il numero di cluster per la dimensione di un cluster. Con dei cluster di dimensione di 32 Kb, la dimensione massima di una partizione FAT è quindi di 2Gb. D'altronde, un file può occupare solo un numero intero di cluster, cioè se un file occupa più cluster, l'ultimo sarà occupato in parte, e lo spazio libero restante sarà quindi perso. Di conseguenza, più la dimensione di un cluser è ridotta, minore sarà lo spreco di spazio. Si stima che un file sprechi in media la metà di un cluster, questo significa che su una partizione di 2 Gb circa 16 Kb sono persi per ogni file... La tabella di allocazione dei file La Tabella di Allocazione dei File è una lista di valori digitali che permette di descrivere il posizionamento dei cluster di una partizione, cioè lo stato di ogni cluster della partizione di cui essa fa parte. La tabella di allocazione è in effetti una tabella in cui ogni cella corrisponde ad un cluster. Ogni cella contiene una cifra che permette di sapere se il cluster che rappresenta sia usato da un file e, se ne è il caso, indica la posizione del prossimo cluster che il file occupa. Si ottiene quindi una stringa FAT, cioè una lista concatenata di referenze che mirano ai diversi cluster successivi, fino al cluster finale del file. Ogni elemento inserito nella FAT ha un lunghezza di 16 o 32 bit (a seconda che si tratti di un FAT16 o di un FAT32). I primi due elementi inseriti permettono di memorizzare delle informazioni sulla tabella stessa, mentre quelli successivi permettono di referenziare i cluster. Alcuni elementi possono contenere dei valori che indicano uno stato specifico del cluster. Così il valore 0000 indica che il cluster non è utilizzato, FFF7 permette di segnalare il cluster come difettoso per evitarne l'utilizzo, e i valori compresi tra FFF8 e FFFF specificano che il cluster contiene la fine di un file. Ogni partizione contiene in realtà due copie della tabella, memorizzati in modo contiguo sul disco, per poter recuperarla nel caso in cui la prima copia sia corrotta. Il sistema di file FAT32 Nonostante la VFAT sia "intelligente", essa non permette di rimediare ai limiti del FAT16. Così, un nuovo sistema di file (e non una migliore gestione della FAT come la VFAT) è apparsa con Windows 95 OSR2. Questo sistema di file, detto FAT32 usa dei valori a 32 bit per gli elementi inseriti nella FAT. In realtà solo 28 bit sono usati dato che 4 sono riservati. Con la comparsa del sistema di file FAT32, il numero massimo di cluster per partizione è passato da 65535 a 268 435 455 (228-1). Il FAT32 autorizza quindi delle partizioni di dimensione più elevata (fino a 8 terabyte). In realtà la dimensione teorica massima di una partizione FAT32 è di 8 Tb, tuttavia Microsoft la limita volontariamente a 32 Gb sui sistemi Windows 9x per promuovere NTFS (ref: http://support.microsoft.com/default.aspx?scid=kb;it;184006). Dato che una partizione FAT32 può contenere molti più cluser rispetto ad una FAT16, è possibile ridurre in modo significativo la dimensione dei cluster e di limitare nella stessa occasione lo spreco di spazio sul disco. Ad esempio, per una partizione di 2Gb, è possibile usare dei cluster di 4Kb con il sistema FAT32 (invece di 32Kb con FAT16), il che diminuisce lo spazio sprecato con un fattore 8. Dall'altro lato, la FAT32 non è compatibile con le versioni di Windows precedenti alla versione OEM Service Release 2. Un sistema che funzioni con una versione precedente non vedrà questo tipo di partizione. Altra osservazione, le utility di gestione del disco funzionanti a 16 bit come quelle delle vecchie versioni di Norton non funzioneranno più correttamente. In termini di prestazione, l'utilizzazione di un sistema FAT32 rispetto ad uno FAT16 apporta praticamente un leggero guadagno di efficienza pari al 5% . Sistema di file FAT16 o FAT32? Dato il numero di cluster limitato, la dimensione massima di una partizione dipende dalla dimensione di ogni cluster. Vediamo la dimensione massima di una partizione secondo la dimensione dei cluster e del sistema di file utilizzato: Dimensione di un cluster Sistema di file FAT16 Sistema di file FAT32 (teorico) 512 byte 32 Mb 64 Mb 1 Kb 64 Mb 128 Mb 2 Kb 128 Mb 256 Mb 4 Kb 256 Mb 8 Gb (1 Tb) 8 Kb 512 Mb 16 Gb (2 Tb) 16 Kb 1 Gb 32 Gb (4 Tb) 32 Kb 2 Gb 2 Tb (8 Tb) Quando si formatta un disco rigido, bisogna quindi determinare con precauzione il tipo di sistema di file da utilizzare, scegliendo quello che permette di avere uno spazio disponibile il più simile possibile alla dimensione voluta! Il sistema di file NTFS Il sistema di file NTFS (New Technology File System) utilizza un sistema basato su una struttura detta «tabella di file master», o MFT (Master File Table), che permette di contenere delle informazioni dettagliate sui file. Questo sistema permette quindi l'utilizzo di nomi lunghi ma, contrariamente al sistemaFAT32, è sensibile alle maiuscole, cioè è in grado di fare la differenza fra maiuscolo e minuscolo. Per quanto riguarda le prestazioni, l'accesso ai file su una partizione NTFS è più rapida rispetto ad una partizione di tipo FAT dato che utilizza un albero binario performante per localizzare i file. Il limite teorico della dimensione di una partizione è di 16 exabyte (17 miliardi di Tb), ma il limite fisico di un disco è di 2Tb. Ma è a livello della sicurezza che l'NTFS acquista importanza, dato che permette di definire degli attributi per ogni file. La versione 5 di questo sistema di file (in standard su Windows 2000 come NT 5) apporta ancora delle nuove funzionalità fra cui delle migliori prestazioni, delle quote di disco per volume definite per ogni utente. NTFS v.5 dovrebbe anche dare la possibilità di amministrazione a distanza... La tabella dei file master La Tabella di Allocazione dei File è una tabella di valori digitali in cui ogni casella permette di descrivere l'allocazione dei cluster di una partizione, cioè lo stato (l'occupazione o meno da un file) di ogni cluster della partizione di cui fa parte. Il sistema di file NTFS è basato su una struttura differente, detta tabella dei file master, che contiene delle registrazioni sui file e le cartelle della partizione. La prima registrazione, detta descrittiva, contiene delle informazioni sulla MFT (una sua copia è memorizzata nella seconda registrazione). La terza registrazione contiene il file di log, un file che contiene tutte le azioni effettuate nella partizione. Le registrazioni successive, costituenti quello che viene detto il nodo, referenziano ogni file e cartella della partizione sotto forma di oggetti provvisti di attributi. Questo significa che le informazioni relative ad ogni file sono memorizzate nel file, che è a sua volta registrato nella MFT. La MFT rappresenta quindi una struttura di immagazzinamento dei dati della partizione, e non una lista di cluster.