Progetti Open Source e notizie del mondo Linux

HowTo, Notizie, Tutti

Badblocks riparare disco con blocchi danneggiati

badblocks

Badblocks è una potente utility da linea di comando che analizza il disco (o anche memorie flash, come penne USB) alla ricerca di blocchi danneggiati.

 

badblocks

 

Badblocks è contenuto all’interno del pacchetto “e2fsprogs“, quindi se non lo abbiamo gia instalato, installiamolo con il seguente comando (comando relativo ad ArchLinux e derivate)

sudo pacman -S e2fsprogs

al termine dell’installazione, possiamo iniziare ad usare l’utility badblocks.

 

[Opzionale] Vi consiglio di studiarvi un po il suo manuale, per comprendere al meglio come utilizzare questo software.

Per farlo potete usare il comando

man badblocks

 

A questo punto non ci resta che analizzare il nostro disco o penna usb, per farlo, innanzi tutto dovete vedere quale è il dispositivo da analizzare, per farlo potete usare il comando

sudo fdisk -l

che vi restituirà un output simile

Dispositivo     Start      Fine   Settori   Size Tipo
/dev/sda1        2048    923647    921600   450M Windows recovery environment
/dev/sda2      923648   1128447    204800   100M EFI System
/dev/sda3     1128448   1161215     32768    16M Microsoft reserved
/dev/sda4     1161216 348456453 347295238 165,6G Microsoft basic data
/dev/sda5   348456960 350085119   1628160   795M Windows recovery environment
/dev/sda6   350085120 380805119  30720000  14,7G Linux filesystem
/dev/sda7   380805120 957240666 576435547 274,9G Linux filesystem
/dev/sda8   957241344 976771071  19529728   9,3G Linux filesystem

Disk /dev/sdb: 2 GiB, 2147484160 bytes, 4194305 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes

Nel mio caso /dev/sda (i vari /dev/sda1, …. , /dev/sda8 sono le varie partizoni del disco, ma non ci interessa saperlo) è il disco principale del notebook, mentre /dev/sdb è una penna usb collegata al computer.

 

a questo punto possiamo iniziare la scansione utilizzando 2 differenti metodi:

  • Metodo non distruttivo (non cancella i file)
  • Metodo distruttivo (cancella i file, in quanto per migliorare l’accuratezza, esegue 4 differenti scrittura su ogni blocco del dispositivo

vediamo come usarli

 

AVVERTENZA: Questo processo mette sotto pesante stress il vostro dispositivo, quindi se già è mezzo rotto, questo processo potrebbe dargli la botta finale.

 

NOTA: per poter usare badblocks è necessario che il dispositivo su cui volete lavorare non sia montato, quindi se volete scansionare il vostro HDD principale, vi servirà una distribuzione live.

per smontare un dispositivo potete usare il comando

sudo umount /dev/sdX

dove al posto di /dev/sdX dovete mettere il dispositivo che volete smontaare (potete vederlo dall’output di fdisk)

 

Metodo non distruttivo

Anche se con questo metodo non correte il rischio di perdere dati è consigliabile fare lo stesso un backup, sopratutto se avete dati importanti.

 

Apriamo un terminale e digitiamo il seguente comando

sudo badblocks -n -s -v -o errori.log /dev/sdX

dove al posto di /dev/sdX dovete mettere il vostro dispositivo come avete visto dall’output di fdisk, ad esempio /dev/sda oppure /dev/sdb, ecc…)

Come potete vedere dal manuale di backblocks, le varie opzioni servono a:

-n indica la modalità non distruttiva (non può essere usata assieme all’opzione -w)

-s vi mostra la percentuale di avanzamento

-v è la modalità verbosa che vi fornisce maggiori dettagli (numero errori in lettura/scrittura/corruzione

-o serve per scrivere l’output in un file (in questo caso errori.log)

se volete usare altre opzioni potete guardare il manuale e scegliere le opzioni che preferite

 

Il processo impiegherà molto tempo, e ovviamente più il dispositivo è capiente, maggiore sarà il tempo necessario alla scansione

 

Metodo distruttivo

Attenzione questo metodo cancellerà tutti i file presenti all’interno del dispositivo, assicuratevi quindi di fare un backup.

 

il comando è simile all’altro e si differenzia solo per un’opzione

sudo badblocks -w -s -v -o errori.log /dev/sdX

Le opzioni sono simili al precedente comando, di nuovo c’è solo:

-w serve ad indicare che vogliamo usare la modalità distruttiva (non può essere usata assieme a -n)

 

Al termine della scansione, indipendentemente dal metodo che avete usato vi ritroverete all’interno del file “errori.log” tutta la lista di eventuali blocchi danneggiati.

 

A questo punto potete formattare il dispositivo facendo si che i settori danneggiati vengano ignorati, così che non vengono utilizzati e non correte il rischio che eventuali file che vadano a scrivere sopra questi blocchi, si corrompano rendendo inutilizzabile il file.

 

per farlo potete usare il comando

mkfs.TIPO_FILE-SYSTEM -l errori.log /dev/sdX

dove al posto di TIPO_FILE-SYSTEM dovete inserire il file system che volete venga usato

Invece con l’opzione -l dite ad mkfs di ignorare i blocchi indicati all’interno del file errori.log

Come al solito al posto di /dev/sdX dovete inserire il dispositivo che volete formattare

 

per formattare in Fat32

sudo mkfs -t vfat -I -l errori.log /dev/sdb

Avrete un output del genere

mkfs.fat 3.0.28 (2015-05-16)
1023248 bad blocks

e noterete anche che le dimensioni del dispositivo saranno ridotte (ad esempio la chiavetta che ho testato, è passata da avere 2GB ad averne 1.1)

 

Ti è piaciuto l'articolo su badblocks?

View Results

Loading ... Loading ...