Computer / Linux · 10 luglio 2009 1

Modificare l’intervallo dei controlli dei filesystem ext3

Chi usa Linux conoscerà senz’altro i filesystem ext2 ed ext3, sicuramente i più diffusi filesystem sul Pinguino: sono affidabili, stabili ed ultra-testati, una vera sicurezza per i dati dei nostri sistemi.

Ma c’è un piccolo problemino che dà, spesso, un po’ di noie: questi filesystem sono impostati di default per fare un controllo strutturale ogni circa 30 montaggi. Se ciò non disturba chi il PC lo usa poco o lo lascia per molto tempo acceso, la cosa diventa ittirante se invece siete tra quelli che, come me, avviate e riavviate il sistema anche un paio di volte al giorno. Va a finire che l’intervallo fra 2 controlli successivi diventa molto breve, ed un controllo di un filesystem bello corposo e ricco di file richiede anche diversi minuti, soprattutto se l’hardware non è potentissimo (caso dei portatili) oppure non recentissimo (caso di molti desktop).

Per ovviare a questo inconveniente si può intervenire manualmente variando i parametri di controllo in modo da allungare il tempo che intercorre fra 2 controlli. L’operazione va, però, eseguita quando il filesystem non è montato: la miglior cosa è scegliersi una distribuzione live leggera ed avviare il proprio sistema con quella. Potete scegliere fra diverse opzioni: Damn Small Linux, PartedLive, SystemRescueCD, Puppy Linux, ecc… Io personalmente ho usato quest’ultima da chiavetta USB: avviata in circa un paio di minuti, ho svolto l’operazione in brevissimo tempo ed in maniera perfetta e pulita.

Basta, avviato il sistema live scelto, aprire un terminale ed utilizzare il comando tune2fs appositamente creato per modificare diverse impostazioni del filesystem. L’opzione che ci interessa maggiormente è “-c numero_max_montaggi“, che imposta il numero massimo di montaggi oltre il quale effettuare il controllo dell’integrità dei dati. Se volete fare un controllo ogni tanto, un buon numero è 100. Quindi il comando che daremo da terminale sarà:

tune2fs -c 100 /dev/sdxy

dove la lettera “x” in /dev/sdxy identifica il disco rigido (es.: /dev/sda per il 1° disco) e la lettera “y” la partizione da modificare (es.: /dev/sda3 per la 3a partizione del 1° disco).
Un altro parametro interessante è “-i intervallo“, che specifica l’intervallo temporale massimo che può intercorrere fra 2 controlli successivi, indipendentemente dal numero di montaggi effettuati. Il parametro accetta un numero seguito da una lettera: “d” sta per days, ed indica i giorni (es.: 20d = 20 giorni),  “m” sta per months, ed indica i mesi (es.: 2m = 2 mesi), “w” sta per weeks, ed indica le settiman (es.: 4w = 4 settimane). Per cui, se vogliamo ad esempio che il controllo su un disco sia fatto dopo 100 montaggi o, comunque, dopo 2 mesi, basta dare:

tune2fs -c 100 -i 2m /dev/sdxy

Resta un piccolo problema: ad ogni intervallo prefissato, il controllo sarà eseguito contemporaneamente su tutti i filesystem presenti nel sistema: se questi sono molti oppure molto corposi, l’operazione complessivamente può rubare molto tempo. Esiste un modo per far sì che ciò non accada: si può modificare manualmente il numero di montaggi di una partizione affinché il contatore di un filesystem raggiunga il valore massimo preimpostato (nei nostri esempi precedenti 100) prima o dopo quello di un altro filesystem, così che il controllo risulti scaglionato. L’opzione è “-C numero_di_mount” (notate la C maiuscola). Ad esempio il nostro sistema potrebbe contenere 3 partizioni con filesystem di tipo ext2/ext3: root, /boot ed /home, oltre allo swap che però non viene preso in considerazione. Questa è una situazione classica che si può presentare con una certa facilità, ma possono esserci altre configurazioni: il succo non cambia, basta impostare un numero di montaggi iniziale diversificato per ogni filesystem. Riprendiamo il caso su esposto e proponiamo un esempio concreto:

tune2fs -c 100 -i 2m -C 10 /dev/sda1
tune2fs -c 100 -i 2m -C 20 /dev/sda2
tune2fs -c 100 -i 2m -C 30 /dev/sda3

Il risultato sarà che tutti e 3 i filesystem saranno controllati dopo 100 montaggi o, comunque, al massimo dopo 2 mesi ma con una differenza sostanziale rispetto a prima: il filesystem /dev/sda1 conterà già 10 montaggi per cui sarà controllato tra 90 montaggi; il filesystem /dev/sda2 ne conterà già 20 per cui sarà controllato prima, tra 80 montaggi; l’ultimo filesystem, invece, conterà ben 30 montaggi, per cui il controllo arriverà fra soli 70 montaggi. In questa manierà il controllo sarà scaglionato ed eseguito su ogni filesystem a distanza di 10 montaggi l’uno dall’altro.

IMPORTANTE:
con questi comandi si possono fare grossi danni ai propri filesystem, anche con perdite irrimediabili di dati. Usate le informazioni contenute in questo articolo a vostro rischio e pericolo!