come da titolo sarei in cerca di consigli su come stimare lo stato di salute di un disco e di come poter analizzare a fondo (o almeno il più possibile) lo stato effettivo di salute.

da cosa è nato cosa?

ho preso un hdd da 4TB per il nas e il venditore mi ha detto "hey, ne ho un secondo, uguale, ma che ha errori nello smart, lo vuoi? te lo regalo". io allorchè ho detto "butta dentro che me lo testo.

è arrivato e aveva (da gnome-disks) 11 settori danneggiati. dopo una "veloce" (4h e rotti) passata con badblocks, i settori danneggiati erano diventati 0. leggendo meglio lo smart ho scoperto essere i settori che fanno parte del gruppo C5: Current Pending Sector Count, ovvero quei settori che sono in attesa di essere rimappati per capire qualcosa sul loro effettivo stato di salute.

l'iter che ci ho fatto dietro è stato tortuoso e ha visto in gioco sia linux (badblocks, smartmontools e gnome-disks) che windows (hdd regenerator e hd tune pro, anche se quest'ultimo non mi pare per nulla affidabile).

hdd regenerator ha "riparato" 8 settori, sempre secondo me facenti parte del gruppo in C5.

alla fine delle varie operazioni lo start si è resettato, bello e fresco come na rosa (unico parametro in aumento è il tasso di letture errate, ma c'è da dire che sta aumentando il valore RAW ma non si sta modificando il valore normalizzato, il che non è male) e tutti i programmi dicono che il disco gode di ottima salute.

ora, visto che io sono scettico anche delle mie idee, mi ci sono rimesso dietro, quasi da capo  e facendo un veloce test con hd tune pro, in cui leggevo e basta i settori, ne è saltato fuori un altro come "conteggio settori correnti pendenti" (il solito C5).

arrivati a questo punto la mia diagnosi è che effettivamente vi sia un danno sulla superficie del disco, ma c'è un modo con cui io possa diagnosticare questo in automatico?

il tutto nasce dal fatto che con l'associazione devo testare decine di hd e non ho modo di tornarci a dietro a vedere che abbia fatto e se abbia fatto bene o male. so che badblocks segna i settori danneggiati, ma è lo stesso anche quando sono danneggiati per problemi software (ovvero quando la categoria C5 è riempita per un errore di scrittura e non per un errore fisico)?

ah il disco in questione era montato su un nas e sto cercando, con una scansione di badblocks, di arrivare a ritrovare dei settori morti: in teoria all'ultima scansione ne aveva trovati 4, non so se ora sia in grado di ritrovarli. in caso negativo farò un ulteriore passaggio per verificare che ritornino gli stessi e identici.



il tutto lo vorrò poi integrare qua: https://github.com/94-psy/Dejavu-Formatting-Tool
ora badblocks è già implementato, ma molti test sono necessari ancora e questo che sto facendo è uno dei tanti :pipp:


ogni suggerimento è ben accetto, soprattutto se rimanesse in ambito linux, che mi semplifica la vita :asd:
cerca su google: (sqrt(cos(x))*cos(200 x)+sqrt(abs(x))-0.7)*(4-x*x)^0.01, sqrt(9-x^2), -sqrt(9-x^2) from -4.5 to 4.5

disegnati questo:
x^2+(y-x^(2/3))^2=1

I miei appunti risalgono al 01/04/2012 e non ho più molta pratica.

smartmontools
heirloom-mailx
gsmartcontrol

Per sapere quanti cicli ha il nostro har disk digitiamo

sudo smartctl -a /dev/sda | grep Load_Cycle

Per avere delle informazioni più dettagliate, digitate

sudo smartctl -a /dev/sda


Se vuoi fare più scansioni e poi fare un paragone in automatico, la via più semplice è preparare uno script bash.
1: conservi tutti gli output
2: fai il grep delle righe ingriminate
3: confronti i risultati per capire se i settori danneggiati sono sempre gli stessi.

heirloom-mailx

è l'unico tool che non ho ancora testato. smartmontools lo uso assai e ho imparato a leggerlo grazie a @Toshio  :asd:

comunque ci sono dei risvolti: ho fatto riandare il tutto a balina come un coglione, altre 30h per un mezzo test (e nemmeno quello in realtà). badblocks a questo giro non ha trovato settori danneggiati, mi ha detto che è tutto ok e l'unico parametro smart che sta salendo in raw ma non peggiorando è "errori in lettura". tutto il resto è buono così.

inoltre ho visto che al precedente giro badblocks aveva trovato 4 settori danneggiati in lettura e basta :pipp:


io mi sto confondendo sempre di più :pipp:


appena hd tune finisce di fare le prove, testo heirloom-mailx che sono curioso di capire che faccia :)
cerca su google: (sqrt(cos(x))*cos(200 x)+sqrt(abs(x))-0.7)*(4-x*x)^0.01, sqrt(9-x^2), -sqrt(9-x^2) from -4.5 to 4.5

disegnati questo:
x^2+(y-x^(2/3))^2=1

Tieni presente che se trovi sempre errori diversi con lo stesso test sullo stesso campione, c'è una probabilità del 99,99% che sia meccanicamente andato.

per ora sto ottenendo sempre lo stesso errore. o meglio, lo stavo ottenendo. sto cercando di forzare la mano per riottenerlo ma non sta accadendo.

avevo errori di lettura del settore, che si traduce che in un generico 60% dei casi può essere il software che sminchia a scrivere e che il disco sia ok.

però la restante percentuale mi dice che ho problemi alla superficie del disco.

il fatto che gli errori di lettura, da quando ho il disco, siano in costante aumento può essere un campanello d'allarme ma anche no se non correlato ad altri fattori.

ora, il buon senso mi dice che se avessi un settore fisicamente danneggiato, io, con tutti i test, dovrei sempre risalire a quel settore o, o almeno ad una parte di essi (lavorando a basso livello e scansionando tutti i settori, mi aspetto questo, soprattutto se il conteggio dei settori che sono stati riallocati è pari a 0, ovvero nessun settore a scrittura pendente è stato identificato come danneggiato e quindi riallocato) e invece ottengo sempre risposte differenti sia in numero di settori danneggiati sia in posizione.

col procedere dei test il numero di settori con scrittura pendente è calato e non è più comparso, tanto che allo stato attuale, dopo diversi cicli sono ancora a 0. non so se andare a domani la situazione cambi, ma certo è che anche un altro giro con badblocks, completo questa volta, vorrei farlo
cerca su google: (sqrt(cos(x))*cos(200 x)+sqrt(abs(x))-0.7)*(4-x*x)^0.01, sqrt(9-x^2), -sqrt(9-x^2) from -4.5 to 4.5

disegnati questo:
x^2+(y-x^(2/3))^2=1

Si. Alla fine dovrai essere certo della ripetibilità dei test ed in seguito valutare quanto sia affidabile il disco. Se non riesci ad avere una ripetibilità, cade automaticamente l'affidabilità del disco.

esatto, infatti sto iniziando a sospettare che il problema, più che a livello di disco, sia a livello di scheda. ora, per poter dormire meglio, ho messo il disco nel nas, non l'ho montato nel volume e ho iniziato una sessione di badblocks. è molto più lento del fisso, ma può metterci anche una settimana che mi frega poco (in 11h ha fatto quasi un 20% del primo passaggio di scrittura).

durante questa sessione, il disco sta svolgendo anche un test smart. quello corto, dalla durata stimata di 2 minuti, dopo 9h era ancora al 90% e l'ho interrotto. quello esteso sta finendo.

durante questa sessione un settore è tornato a scrittura pendente, ma badblocks non ha rilevato errori in scrittura. appena finirà questo giro potrà capire se vi siano errori in lettura e se venissero resettati.

mi sto davvero facendo la fantasia che dopo 4 anni di uso in un nas, questo disco abbia la scheda morta :pipp:
cerca su google: (sqrt(cos(x))*cos(200 x)+sqrt(abs(x))-0.7)*(4-x*x)^0.01, sqrt(9-x^2), -sqrt(9-x^2) from -4.5 to 4.5

disegnati questo:
x^2+(y-x^(2/3))^2=1

Non ho esperienze positive con i Nas preconfezionati.

non so se fosse in un nas preconfezionato. so che è un WD red per nas da 4TB. però continua a dare questi problemini. ora devo attendere ore per vedere come va. tra qualche giorno torno a metterlo nel pc.

comunque temo che anche andando a cambiare scheda, il problema possa ripresentarsi (se fosse un problema di firmware? visto che solitamente il chip del bios è da spostare)

mi sa che lo metterò nel fisso e lo userò così :asd:
cerca su google: (sqrt(cos(x))*cos(200 x)+sqrt(abs(x))-0.7)*(4-x*x)^0.01, sqrt(9-x^2), -sqrt(9-x^2) from -4.5 to 4.5

disegnati questo:
x^2+(y-x^(2/3))^2=1

Bene... ti potrebbe servire modificare il timeout dell'hard disk, così non ci perdi molto tempo quando sarà giunta la sua ora :asd:
Per un disco sda, il file è questo /sys/block/sda/device/timeout
e memorizza il timeout in secondi.

Risultati sempre diversi, settori danneggiati ma non sempre gli stessi, nessun riallocamento, errori in lettura in aumento. Sunto corretto?
Comunque sì ho la tua stessa impressione potrebbe non essere fisicamente danneggiato il disco. Se si stesse sminchiando ad ogni passata dovrebbero aumentare i settori danneggiati, i riallocamenti, e neanche costantemente  ( in maniera lineare) ma accellerando.


Citazione di: TonyWhite il 04 Gennaio 2021, 15:50:59
Bene... ti potrebbe servire modificare il timeout dell'hard disk, così non ci perdi molto tempo quando sarà giunta la sua ora :asd:
Per un disco sda, il file è questo /sys/block/sda/device/timeout
e memorizza il timeout in secondi.



ora è su nas, non so cosa sia possibile fare :asd:


Citazione di: Toshio il 04 Gennaio 2021, 18:12:00
Risultati sempre diversi, settori danneggiati ma non sempre gli stessi, nessun riallocamento, errori in lettura in aumento. Sunto corretto?
Comunque sì ho la tua stessa impressione potrebbe non essere fisicamente danneggiato il disco. Se si stesse sminchiando ad ogni passata dovrebbero aumentare i settori danneggiati, i riallocamenti, e neanche costantemente  ( in maniera lineare) ma accellerando.

esatto. sostanzialmente quello.

solo che avrei trovato schede potenzialmente compatibili, ma cambiandole si risolve?

insomma, 30€ potrei anche spenderli, per un disco che mi hanno regalato
cerca su google: (sqrt(cos(x))*cos(200 x)+sqrt(abs(x))-0.7)*(4-x*x)^0.01, sqrt(9-x^2), -sqrt(9-x^2) from -4.5 to 4.5

disegnati questo:
x^2+(y-x^(2/3))^2=1


anche il nas ora conta un settore (badblocks ha quasi finito il primo passaggio in lettura e ancora 0 errori) a scrittura pendente, ma la salute la da come OK :asd:

comunque in circa 24h ha fatto un passaggio, ci vorrà fino a 4 giorni per fare tutti e 4 i passaggi :asd:
cerca su google: (sqrt(cos(x))*cos(200 x)+sqrt(abs(x))-0.7)*(4-x*x)^0.01, sqrt(9-x^2), -sqrt(9-x^2) from -4.5 to 4.5

disegnati questo:
x^2+(y-x^(2/3))^2=1

Si rovinerà per surriscaldamento prima di finire tutto? Seguiamo la vicenda del nostro eroe hard :lki:

nel fisso, che era in un bay senza ventilazione era a 40-41°C, nel nas ho due ventole è a 31°C :asd:
cerca su google: (sqrt(cos(x))*cos(200 x)+sqrt(abs(x))-0.7)*(4-x*x)^0.01, sqrt(9-x^2), -sqrt(9-x^2) from -4.5 to 4.5

disegnati questo:
x^2+(y-x^(2/3))^2=1


#18 05 Gennaio 2021, 16:37:23 Ultima modifica: 05 Gennaio 2021, 19:29:51 di Toshio
Citazione di: 94-psy il 04 Gennaio 2021, 20:41:31
...
solo che avrei trovato schede potenzialmente compatibili, ma cambiandole si risolve?

insomma, 30€ potrei anche spenderli, per un disco che mi hanno regalato
...
WD red ma che modello è? E' un modello nuovo? E quanto costerebbe nuovo? Non facile determinare se ne valga la pena. Quanto è stato usato, ore di utilizzo? Da confrontare con l'MTBF https://en.wikipedia.org/wiki/Mean_time_between_failures non saranno molti 30 ma tante volte anche su pc interi molto vecchi non vale la pena spenderli, purtroppo, figuriamoci su un singolo componente. Potrebbe pure essere che la prossima settimana così all'improvviso cominciano ad accumularsi una caterva di errrori e sono 30 euri nel cesso. 

Edit: Magari anche un link alle schede compatibili.

Citazione di: Toshio il 05 Gennaio 2021, 16:37:23
Citazione di: 94-psy il 04 Gennaio 2021, 20:41:31
...
solo che avrei trovato schede potenzialmente compatibili, ma cambiandole si risolve?

insomma, 30€ potrei anche spenderli, per un disco che mi hanno regalato
...
WD red ma che modello è? E' un modello nuovo? E quanto costerebbe nuovo? Non facile determinare se ne valga la pena. Quanto è stato usato, ore di utilizzo? Da confrontare con l'MTBF https://en.wikipedia.org/wiki/Mean_time_between_failures non saranno molti 30 ma tante volte anche su pc interi molto vecchi non vale la pena spenderli, purtroppo, figuriamoci su un singolo componente. Potrebbe pure essere che la prossima settimana così all'improvviso cominciano ad accumularsi una caterva di errrori e sono 30 euri nel cesso. 

Edit: Magari anche un link alle schede compatibili.




direi modello vecchio: WD40EFRX-68WT0N0

comunque l'errore è già rientrato nuovamente :pipp:
cerca su google: (sqrt(cos(x))*cos(200 x)+sqrt(abs(x))-0.7)*(4-x*x)^0.01, sqrt(9-x^2), -sqrt(9-x^2) from -4.5 to 4.5

disegnati questo:
x^2+(y-x^(2/3))^2=1