next up previous contents index
Next: Le partizioni Up: Uso dei dischi e Previous: I nastri

La formattazione

La formattazione è il processo con cui si segnano sul mezzo magnetico le tracce e i settori. Prima che venga formattato, il disco ha una superficie in cui i segnali magnetici si sovrappongono creando un vero caos. Quando viene formattato si porta un certo ordine nel caos essenzialmente tracciando delle linee dove vanno le tracce e dove vengono suddivise in settori. I dettagli reali non sono proprio questi, ma è irrilevante; quello che è importante è che un disco non può essere usato se non è stato formattato.

La terminologia a questo proposito è piuttosto confusa: nell'MS-DOS, la parola formattazione viene usata anche per il processo di creazione di un filesystem (che verrà discusso più avanti); qui i due processi sono spesso combinati, specialmente per i floppy. Quando sarà necessaria una distinzione, la formattazione reale viene chiamata formattazione a basso livello, mentre la creazione del filesystem si chiama formattazione ad alto livello. Nei circoli UNIX, i due processi vengono chiamati formattazione e creazione di un filesystem, quindi in questo libro verranno usati questi termini.

Per i dischi IDE ed alcuni dischi SCSI la formattazione viene fatta in realtà in fabbrica, e non c'è bisogno di ripeterla, quindi la maggior parte delle persone non avranno bisogno di preoccuparsene. In effetti, formattare un hard disk può provocarne un malfunzionamento, perché può essere necessario formattarlo in maniera particolare per far rimpiazzare automaticamente i settori danneggiati.

I dischi che devono o possono essere formattati spesso richiedono comunque un programma speciale, dato che l'interfaccia alla logica di formattazione all'interno del disco è diversa da caso a caso. Il programma di formattazione spesso è sul BIOS del controller, oppure viene fornito come programma MS-DOS, e in nessuno dei due casi si può usare facilmente da Linux.

Durante la formattazione si possono incontrare dei punti danneggiati sul disco, che vengono chiamati blocchi danneggiati o settori danneggiati. Qualche volta vengono gestiti dallo stesso drive, ma anche in questi casi, se se ne sviluppano altri, bisogna fare qualcosa per evitare di usare quelle parti del disco. La logica per farlo è inglobata nel filesystem; come aggiungere le informazioni nel filesystem viene descritto qui sotto. Alternativamente si può creare una piccola partizione che ricopra solo la parte danneggiata del disco: può essere una buona idea se si è danneggiata una parte piuttosto grande, dato che i filesystem possono avere dei problemi con aree danneggiate molto grandi.

I floppy vengono formattati con fdformat . Il file di device del floppy da usare viene dato come parametro; ad esempio, il comando seguente formatterebbe un dischetto ad alta densità, da 3.5 pollici nel primo drive del floppy:

$ fdformat /dev/fd0H1440
Double-sided, 80 tracks, 18 sec/track. Total capacity 1440 kB.
Formatting ... done
Verifying ... done
$
Notate che se volete usare un dispositivo che venga rilevato automaticamente (ad esempio /dev/fd0 , dovete per prima cosa impostarne i parametri con setfdprm . Per avere lo stesso effetto del comando qui sopra, bisognerebbe fare così:
$ setfdprm /dev/fd0 1440/1440
$ fdformat /dev/fd0
Double-sided, 80 tracks, 18 sec/track. Total capacity 1440 kB.
Formatting ... done
Verifying ... done
$
Di solito è più conveniente scegliere il file di device corretto che corrisponda al tipo di floppy. Notate che non è saggio formattare i floppy con una capacità maggiore di quella per cui sono stati progettati.

fdformat  convaliderà anche il floppy, cioè controllerà che non ci siano blocchi danneggiati. Proverà a leggere e scrivere su un blocco danneggiato diverse volte (lo si può sentire, dato che il rumore del drive cambia moltissimo). Se il floppy è solo leggermente danneggiato (a causa dello sporco sulla testina del drive alcuni errori sono segnali falsi), fdformat  non si lamenterà, ma un errore reale farà abortire il processo di convalida. Il kernel stamperà dei messaggi di log per ogni errore di I/O che trova, messaggi che andranno in console o, se si usa syslog , nel file /usr/adm/messages . fdformat  non dice dove si trova l'errore (di solito non ci interessa, i floppy sono abbastanza a buon mercato da poterne buttare uno automaticamente, se è danneggiato).

$ fdformat /dev/fd0H1440
Double-sided, 80 tracks, 18 sec/track. Total capacity 1440 kB.
Formatting ... done
Verifying ... read: Unknown error
$

Per cercare soltanto i blocchi danneggiati su un disco o su una partizione si usa il comando badblocks  (anche per i floppy). Non formatta il disco, quindi lo si può usare anche su filesystem esistenti. L'esempio qui sotto controlla un floppy da 3.5 pollici con due blocchi danneggiati.

$ badblocks /dev/fd0H1440 1440
718
719
$
badblocks  rende in output i numeri dei blocchi che trova danneggiati. La maggior parte dei filesystem riesce ad evitarli; mantengono un elenco dei blocchi danneggiati, che viene inizializzato quando viene creato il filesystem, e può essere modificato in seguito. La prima ricerca dei blocchi danneggiati può essere fatta con il comando mkfs  (che inizializza il filesystem), ma i controlli successivi vanno fatti con badblocks , ed i nuovi blocchi dovrebbero essere aggiunti con fsck . Descriveremo mkfs  e fsck  più avanti.

Molti dischi moderni individuano automaticamente i blocchi danneggiati, e tentano di recuperarli usando al loro posto un blocco speciale, integro, riservato per questo scopo, che è invisibile al sistema operativo. Questa caratteristica dovrebbe essere documentata nel manuale del disco, se siete curiosi di sapere se ce l'avete. Anche dischi di questo tipo possono rovinarsi, se il numero di blocchi danneggiati diventa troppo grande, anche se è probabile che a quel punto il disco sarebbe troppo rovinato per essere utile.


next up previous contents index
Next: Le partizioni Up: Uso dei dischi e Previous: I nastri
root
1998-11-08