Utente:Microtauro/Sandbox4

Badblocks è un programma di utilità, destinato al controllo dei comuni hard disk in cerca di settori danneggiati.

Fa parte del progetto e2fsprogs e le sue funzioni possono essere richiamate anche tramite il comando e2fsck. È stato integrato nelle maggiori distribuzioni linux, ma è stato portato anche sui sistemi della famiglia *BSD.

Oltre che per i normali compiti di manutenzione del sistema, gli stessi svolti dallo scandisk di Microsoft Windows, questa utility può essere utilizzata anche per la formattazione del disco fisso, o più semplicemente per la distruzione sicura dei dati.

Il programma offre tre diverse modalità di scansione: lettura-scrittura distruttiva, lettura-scrittura non distruttiva, e sola lettura.

La sessione di "scandisk" può essere arrestata in modo sicuro, tenendo premuto CTRL e premendo C.

La lista nera di ogni partizione può essere visualizzata con il comando dumpe2fs -b (potrebbero essere richiesti, anche in questo caso, i privilegi di amministratore).

Il programma richiede i privilegi amministrativi: con molte distribuzioni linux è possibile ottenerli temporaneamente, anteponendo il comando sudo agli esempi sotto riportati. Inoltre, affinché la scansione abbia successo, è necessario prima smontare l'unità o la partizione singola da esaminare.

Formattazione

modifica

La scansione in modalità lettura-scrittura distruttiva (read-write destructive mode, o più semplicemente read-write mode) determina la distruzione di tutti i dati contenuti nell'intero disco fisso, o nella singola partizione presa in esame.

Una volta avviata, ogni settore verrà sovrascritto 4 volte, il che rende sconsigliabile questa pratica di "formattazione estrema" con le unità a stato solido. Ogni dato scritto verrà controllato in lettura, ed ogni errore rilevato sarà conteggiato.

Ovviamente, con i dischi fissi nuovi si può procedere direttamente a registrare sulla partizione le informazioni del filesystem, con l'uso del comando mkfs, come spiegato più avanti.

Nel caso volessimo formattare la partizione /dev/sdb6, la sintassi di badblocks sarà la seguente:

badblocks -wsv -o /root/badblocks.txt /dev/sdb6

AVVERTENZA: Non dimenticate il numero alla fine della riga, in questo caso 6, altrimenti la scansione comporterà la distruzione di tutti i dati contenuti nell'unità /dev/sdb, compresi il master boot record e le altre partizioni in cui è stato suddiviso lo spazio sul disco.

La lettera subito dopo il primo meno, in questo caso w, significa che la scansione dovrà avvenire nel modo distruttivo; le due successive significano rispettivamente show progress (mostra l'avanzamento) e verbose (visualizza i risultati).
Nella parte immediatamente successiva, -o sta per output, mentre con /root/badblocks.txt si chiede di generare un file badblocks.txt, con la lista dei cluster danneggiati individuati; infine è specificata la partizione da esaminare.

Per completare l'operazione di formattazione, definire il filesystem da utilizzare nella partizione, ad esempio ext4:

mkfs.ext4 -l /root/badblocks.txt /dev/sdb6

Per il filesystem ext2, il comando da impartire sarà:

mkfs.ext2 -l /root/badblocks.txt /dev/sdb6

Nel caso non siano stati trovati blocchi danneggiati, la parte -l /root/badblocks.txt non serve.

Lettura-scrittura non distruttiva

modifica

Questa modalità è adatta a lavori di manutenzione del sistema, e consta generalmente di quattro fasi, eseguite per ogni dato presente su disco:

  • Il dato viene memorizzato in RAM;
  • Il dato viene sovrascritto sul disco, con un valore casuale;
  • Il dato casuale viene verificato;
  • Il dato originale viene ripristinato.
badblocks -nvs -o /root/badblocks.txt /dev/sdb6

Se sono stati trovati dei settori danneggiati, è necessario memorizzarne l'ubicazione. Se il filesystem della partizione in oggetto è ext2/ext3 oppure ext4, il comando da usare sarà:

e2fsck -l /root/badsectors.txt /dev/sda6

Come già detto all'inizio, le sue funzioni possono essere richiamate anche tramite e2fsck, come nell'esempio seguente:

fsck -vcck /dev/sdb6

In questo caso, la richiesta di eseguire una lettura-scrittura non distruttiva è simboleggiata dalla doppia "c"; con la "k" si chiede di non cancellare la blacklist preesistente, ma solo di aggiornarla con le informazioni sui nuovi badblocks eventualmente scoperti; infine, la "v" subito dopo il meno significa che il computer visualizzerà l'output del processo di scansione del disco. Siccome con questo comando il computer aggiorna automaticamente la lista nera, il comando e2fsck -l /root/badsectors.txt /dev/sda6 già visto poco sopra non serve.

AVVERTENZA: Nonostante questo metodo di controllo sia ritenuto "non distruttivo", qualsiasi arresto irregolare della sessione di scansione, così come un eventuale blocco o crash del sistema, è in grado di causare corruzione dei dati. Se non si può fare a meno di abortire il procedimento, usare il comando CTRL+C per interrompere l'esecuzione della scansione, prima di chiudere la finestra. Specie se si sta eseguendo il controllo del disco rigido da una distribuzione linux avviata in modalità live, è inoltre sconsigliabile svolgere altre attività (ad esempio navigazione in Internet) mentre la scansione è in corso.

Sola lettura

modifica

In una scansione di sola lettura, il sistema eseguirà una ricognizione in sola lettura della partizione da scansionare, segnalando i settori illeggibili. Naturalmente ciascuno di essi verrà aggiunto alla lista nera preesistente, se non era stato segnalato in precedenza. Se qualche file è danneggiato, il computer chiederà all'operatore se cancellarlo o tentare di ripararlo, oppure ignorarlo cioé mantenerlo senza intervenire su di esso.
La sintassi in questo caso sarà:

fsck -vck /dev/sdb6