Salta la barra di navigazione [1] - Vai alla barra di navigazione [3] - Scrivimi una mail [4]

La manutenzione dei dischi

Sommario - Novità - Tutorial - Taccuino - Progetti - Risorse - Non solo elettronica

Innanzitutto è bene procurarsi una chiavetta con installato un sistema operativa adatto a lavorare con  sistemi che hanno subito danni (per esempio non partono, danno continuamente errori di I/O, si bloccano con segment fault inspiegabili...). Personalmente uso http://www.sysresccd.org, ma volendo anche Ubunti live va bene.

Aumentare lo spazio disponibile

In genere un sistema linux riserva parte del disco all'utente root (oppure ad un altro utente), spesso il 5%. Peccato che su una partizione grande sono una marea di spazio. Per sapere quanto spazio è stato riservato:

root@vv-15rse:/home/vv# tune2fs -l /dev/sdb1
[...]
Reserved block count: 78161
[...]

Per modificare tale valore, in percentuale:

root@vv-15rse:/home/vv# tune2fs -m 1 /dev/sdb1
tune2fs 1.42.5 (29-Jul-2012)
Setting reserved blocks percentage to 1% (78161 blocks)

Controllare gli errori

In genere i problemi nascono dopo uno spegnimento improvviso (poco male) o un guasto hardware. Al riavvio il test viene fatto automaticamente e gli errori recuperati (viene chiesta conferma)

E' possibile forzare il controllo dei dischi, anche se appare pulito. Il comando è eseguibile solo su dischi non montati, quindi va prima smontato:

root@vv-15rse:/home/vv# umount /dev/sda6
root@vv-15rse:/home/vv# e2fsck -f /dev/sda6

Per forzare il controllo sulla partizione root, che evidentemente non può essere smontata, occorre partire da un disco diverso (per esempio il già citato sysresccd) oppure digitare il seguente comando e quindi riavviare

root@vv-15rse:/home/vv# touch /forcefsck

Per verificare tutti i settori, sempre a disco smontato, occorre usare l'opzione -c una sola volta (controllo in sola lettura):

root@vv-15rse:/home/vv# e2fsck -c /dev/sdb1

Oppure due volte (controllo in lettura scrittura non distruttivo)

root@vv-15rse:/home/vv# e2fsck -c -c /dev/sdb1

Entrambe queste operazioni impiegano un tempo molto elevato per essere completate (ore, su dischi molto grandi e non particolarmente veloci)

Per vedere gli eventuali bad-block:

root@vv-15rse:/home/vv# dumpe2fs -b /dev/sdb1

Dischi SMART

(non voglio entrare nel merito della sua effettiva utilità...) Se il disco supporta tale tecnologia, sono disponibili alcuni comandi di autodiagnosi dei dischi:

Visualizzazione delle caratteristiche e di altre informazioni:

root@atomo3:~# smartctl -a /dev/sda

Ricerca di settori danneggiati

root@atomo3:~# smartctl -t long /dev/sda

root@atomo3:~# smartctl -t short /dev/sda

La diagnosi viene mostrata dal comando:

root@atomo3:~# smartctl -a /dev/sda

Occorre cercare in una delle tabelle simile alle seguenti. Il primo esempio è relativo ad un dico integro e sono mostrati gli output di una scansione breve, una scansione interrotta manualmente, una scansione estesa

SMART Self-test log structure revision number 1
Num Test_Description  Status                   Remaining LifeTime(hours) LBA_of_first_error
# 1 Short offline     Completed without error  00%       3756            -
# 2 Extended offline  Aborted by host          90%       3756            -
# 3 Extended offline  Completed without error  00%       2027            -

Il secondo esempio è relativo ad un disco con (almeno) un settore danneggiato:

SMART Self-test log structure revision number 1
Num Test_Description  Status                   Remaining LifeTime(hours) LBA_of_first_error
# 1 Extended offline Completed: read failure   70%       4210            846721144

Disattivare NCQ

Alcuni dischi hanno NCQ (Native Command Queuing) mal implementato. Questo causa errori di I/O di vario tipo anche se il disco è integro. Il mio server casalingo monta dischi WD Caviar Green da 1.5 TB che sembrano soffrire di questo problema. La soluzione è disattivare NCQ (non mi sembra di notare cali di prestazioni significativi)

Verificare se NCD è attivo/supportato:

root@atomo3:~# dmesg | grep -i ncq
[ 1.807400] ata1.00: 2930277168 sectors, multi 16: LBA48 NCQ (depth 31/32), AA

Se NCQ è attivo trovate una stringa simile alla precedente. Il punto significativo è 31/32: numeri diversi da 1/32 (o simili) identificano la profondità della "coda".

Per disattivare NCD è possibile modificare /etc/default/grub aggiungendo:

GRUB_CMDLINE_LINUX="libata.force=noncq"

Occorre aggiornare grub (update-grub2) e riavviare. Dopo dovrebbe apparire:

root@atomo3:~# dmesg | grep -i ncq
[ 1.807400] ata1.00: 2930277168 sectors, multi 16: LBA48 NCQ (not used)

Analisi delle prestazioni

Per sapere quanti byte vengono letti o scritti, in tempo reale;

root@atomo3:~# aptitude install sysstat

vv@atomo3:~$ iostat -d 5 -m
Linux 3.2.0-4-amd64 (atomo3) 05/07/2013 _x86_64_ (4 CPU)
Device: tps     MB_read/s MB_wrtn/s MB_read MB_wrtn
sda     78,00   0,00      37,62     0       188
sdb     479,60  30,00     0,00      150     0

Cancellare i file duplicati

Se lo stesso file è presente in una delle DIRx, questo viene cancellato. E file vengono cancellati nell'ordine inverso in cui le cartelle sono elencate.

vv@BU:~$ rdfind -deleteduplicates true -checksum sha1 DIR1 DIR2 DIR3

Tre opzioni utili:

Il (criptico) messaggio Rdutil.cc: Failed to apply function f on it indica che non avete i diritti di cancellare i file duplicati.

Per cancellare le cartelle vuote:

vv@BU:~$ while [ -n "$(find . -depth -type d -empty -print -exec rmdir {} +)" ]; do :; done

Per chi proprio vuole usare l'interfaccia grafica: fslint

 

Parole chiave: linux - bash - scandisk - recupero dati - file duplicati - SMART - NCQ


EN - Pagina principale - Sommario - Accessibilità - Note legali e privacy policy - Posta elettronica

XHTML 1.0 Strict - CSS 3