next up previous contents index
Next: Il controllo degli errori Up: I filesystem Previous: Montare e smontare

  
Il controllo dell'integrità di un filesystem con fsck

I filesystem sono creature complesse, e come tali tendono ad essere in qualche modo propense ad avere errori. Si possono controllare la correttezza e la validità di un filesystem usando il comando fsck , che può essere usato per riparare i piccoli errori che trova, e per avvisare l'utente se ci sono problemi irreparabili. Fortunatamente, al codice per implementare i filesystem viene fatto un debug piuttosto efficace, quindi in genere non ci sono problemi, e se ci sono sono causati da mancanza di corrente, guasti hardware o errori dell'operatore, ad esempio non fare correttamente lo shutdown del sistema.

La maggior parte dei filesystem fanno fsck  automaticamente all'avvio del sistema, in modo che gli errori vengono individuati (e, speriamo, corretti) prima che il filesystem venga usato. Usare un filesystem corrotto tende a peggiorare le cose: se le strutture di dati non sono integre, usare il filesystem probabilmente le peggiorerà, e verranno persi ancora più dati. Comunque, fsck  può metterci un po' di tempo per controllare un filesystem grande, e dato che non ci sono quasi mai errori se il sistema viene spento in modo corretto, si possono usare un paio di trucchi per evitare di fare il controllo in casi del genere: il primo è che se esiste il file /etc/fastboot  non vengono fatti controlli. Il secondo è che il filesystem ext2 ha un codice speciale nel superblocco che dice se il filesystem è stato smontato in maniera corretta; in questo modo e2fsck  (la versione di fsck  per filesystem ext2) può evitare di controllare i filesystem se è stato smontato correttamente (l'assunzione è che se il filesystem è stato smontato bene non ci sono problemi). La validità del trucco del file /etc/fastboot  dipende dallo script di avvio, ma il trucco dell'ext2 funziona tutte le volte che si usa e2fsck --per evitarlo deve essere esplicitamente indicata un'opzione (consultate la pagina man di e2fsck  per i dettagli).

Il controllo automatico funziona solo per i filesystem che vengono montati automaticamente all'avvio; usate fsck  a mano per gli altri, come ad esempio per i floppy.

Se fsck  trova dei problemi irrecuperabili dovete avere una conoscenza profonda di come funzionano in generale i filesystem, e del tipo del filesystem corrotto in particolare, oppure dovete avere dei buoni backup. La seconda possibilità è più facile (anche se spesso più noiosa), per la prima ci si può appoggiare ad un amico, o ai newsgroup e alle mailing list su Linux, o ad una qualche altra forma di aiuto, se non avete voi stessi le nozioni necessarie. Mi piacerebbe dirvi di più sull'argomento, ma mi trattiene la mia mancanza di esperienza e di educazione in questo campo. Vi dovrebbe essere utile il programma debugfs  di Theodore T'so.

fsck  deve essere usato solo sui filesystem non montati, mai su quelli montati (con l'eccezione della root a sola lettura durante l'avvio), perché accede al disco a basso livello, e quindi può modificare il filesystem senza che il sistema operativo se ne accorga. È veramente un problema, se si confonde il sistema operativo.


next up previous contents index
Next: Il controllo degli errori Up: I filesystem Previous: Montare e smontare
root
1998-11-08