Programma per vedere il tempo di accesso dei settori

Installazione, configurazione e uso di programmi e strumenti.
Razer
Prode Principiante
Messaggi: 5
Iscrizione: giovedì 11 febbraio 2021, 11:55

Programma per vedere il tempo di accesso dei settori

Messaggio da Razer »

Ho da poco fatto il passaggio del sistema da windows a ubuntu e per ora mi trovo molto bene. L'unica cosa che sento la mancanza è un software che usavo per vedere il tempo di accesso dei settori dei dischi. Ho provato a cercare qualcosa del genere per ubuntu ma non sono riuscito a trovare niente di simile.
Il software che usavo su windows si chiama Diskgenius:
https://www.diskgenius.com/manual/img/c ... ors-03.png

Lo trovavo molto indicativo per lo stato di salute di un disco nel caso i settori hanno un tempo di accesso elevato ma non sono ancora danneggiati.
Qualche suggerimento? mi andrebbe bene anche qualcosa da riga di comando se proprio non esiste niente a livello grafico...
Roberto Pontecorvi
Rampante Reduce
Rampante Reduce
Messaggi: 6634
Iscrizione: mercoledì 20 maggio 2009, 22:48
Distribuzione: 18.4 mate - 22.4 mate
Sesso: Maschile
Località: Versilia

Re: Programma per vedere il tempo di accesso dei settori

Messaggio da Roberto Pontecorvi »

Non so se ti va bene, prova l'utility -> Dischi -> tasto alto a destra con le tre righe -> Benchmark disco - oppure, sempre nello stesso menù, -> Dati e test SMART.
Avatar utente
Clover
Scoppiettante Seguace
Scoppiettante Seguace
Messaggi: 298
Iscrizione: giovedì 30 agosto 2012, 14:04
Desktop: KDE
Distribuzione: Kubuntu x86_64

Re: Programma per vedere il tempo di accesso dei settori

Messaggio da Clover »

Uhmm, mi pare di capire che più del vedere il tempo di accesso sui settori tu vuoi poter rilevare quelli danneggiati e isolarli...

Dunque, la prima cosa da sapere è che il filesystem EXT4 effettua questa cosa continuamente, ovvero se vede che fa fatica a scrivere dei dati in certi settori o che deve continuamente effettuare operazioni di recupero provvederà da solo ad isolarli in modo da non usarli più in futuro, inoltre se inizi a ricevere notifiche dal kernel di problemi di memoria al disco è meglio che corri subito a sostituire il disco o ancora meglio quando è lo SMART a segnalarlo.

Detto questo, se vuoi forzarlo, questi sono i comandi:

Ricerca di settori danneggiati sola lettura

Codice: Seleziona tutto

sudo badblocks -sv /dev/[device]
Ricerca di settori danneggiati lettura-scrittura (va fatto con le partizioni non montate)

Codice: Seleziona tutto

sudo badblocks -nsv /dev/[device]
Ricerca, recupero ed isolamento settori danneggiati (va fatto con le partizioni non montate)

Codice: Seleziona tutto

sudo fsck -vcck /dev/[device-partition]
oppure

Codice: Seleziona tutto

sudo badblocks -nsv /dev/[device-partition] > bad-blocks && sudo fsck -t [ext-version] -l bad-blocks /dev/[device-partition]
Razer
Prode Principiante
Messaggi: 5
Iscrizione: giovedì 11 febbraio 2021, 11:55

Re: Programma per vedere il tempo di accesso dei settori

Messaggio da Razer »

Il benchmark del programma dischi è ottimo per fare un veloce test generico al disco ma volevo farlo a tutti i settori in modo approfondito
Clover ha scritto:
giovedì 11 febbraio 2021, 17:41
Uhmm, mi pare di capire che più del vedere il tempo di accesso sui settori tu vuoi poter rilevare quelli danneggiati e isolarli...
No io cerco proprio il tempo di accesso dei settori in modo da capire in che condizioni è il disco anche se risulta che non ha settori danneggiati: ad esempio se un disco mi da 300 settori con un tempo di accesso superiore ai 500ms significa che in alcune aree inizia ad avere una lettura più difficoltosa e che la memorizzazione non è più tanto affidabile anche se lo stato SMART non segna ancora errori
Roberto Pontecorvi
Rampante Reduce
Rampante Reduce
Messaggi: 6634
Iscrizione: mercoledì 20 maggio 2009, 22:48
Distribuzione: 18.4 mate - 22.4 mate
Sesso: Maschile
Località: Versilia

Re: Programma per vedere il tempo di accesso dei settori

Messaggio da Roberto Pontecorvi »

ma volevo farlo a tutti i settori in modo approfondito
idati della seconda opzione non ti sono sufficienti? Fai attenzione al paragone con windows, c'è di mezzo la differente forma di formattazione (ntfs - exat4) e come vengono gestiti i file dal sistema operativo. Da uno sguardo, molto veloce, mi pare che i dati che cerchi siano nel programma -> Dischi.
significa che in alcune aree inizia ad avere una lettura più difficoltosa
secondo come è impostato il bios del hdd (tempo di accesso ai settori), se questo succede automaticamente i dati vengono spostati nei settori disponibili del hdd.
Avatar utente
Clover
Scoppiettante Seguace
Scoppiettante Seguace
Messaggi: 298
Iscrizione: giovedì 30 agosto 2012, 14:04
Desktop: KDE
Distribuzione: Kubuntu x86_64

Re: Programma per vedere il tempo di accesso dei settori

Messaggio da Clover »

Razer ha scritto:
giovedì 11 febbraio 2021, 21:30
Clover ha scritto:
giovedì 11 febbraio 2021, 17:41
Uhmm, mi pare di capire che più del vedere il tempo di accesso sui settori tu vuoi poter rilevare quelli danneggiati e isolarli...
No io cerco proprio il tempo di accesso dei settori in modo da capire in che condizioni è il disco anche se risulta che non ha settori danneggiati: ad esempio se un disco mi da 300 settori con un tempo di accesso superiore ai 500ms significa che in alcune aree inizia ad avere una lettura più difficoltosa e che la memorizzazione non è più tanto affidabile anche se lo stato SMART non segna ancora errori
I settori non penso sia possibile, dovrebbe essere implementato proprio a livello del kernel cosa che non mi risulta sia presente, o meglio, si potrebbe fare con hdparm ma non mi risulta sia possibile specificare il settore da testare, lo fa in generale.

A livello di blocchi invece è possibile ottenere la velocità di lettura usando il comando dd ma ho forti dubbi sull'affidabilità del risultato per l'ambito in cui vuoi usarlo tu, perché entrano in gioco molti altri fattori come la cache del disco e altro.

Cmq il comando è questo:

Codice: Seleziona tutto

sudo dd if=/dev/sda bs=512 skip=0 count=1
bs: bisogna indicare quanti byte ci sono in ogni settore, solitamente 512
skip: indica quanti blocchi devono essere saltati prima di leggere il blocco desiderato
count: indica quanti blocchi deve mostrare

Volendo fare per i primi 100 settori in un ciclo direttamente da terminale (non uno script)

Codice: Seleziona tutto

sudo su
block=0

until [ $block -gt 100 ]
do
  printf "Block " ; printf $block ; printf " > "
  dd if=/dev/sda bs=512 skip=${block} count=1 2>&1 | awk '/bytes/{print $(NF-1), $NF}'
  ((block=block+1))
done
Edit:

Cmq come ti ha scritto "Roberto Pontecorvi" qui sopra, ext4 è fondamentalmente diverso da NTFS e presumibilmente, secondo me, tu stai ancora ragionando come utente Windows... cosa normale dato che scrivi di essere appena passato ad Ubuntu.
Devi quindi abituarti a ragionare in modo differente perché linux è fondamentalmente diverso da windows; in questo specifico caso devi disimparare di fare tu delle verifiche preventive sul disco perché non serve, linux ha già di suo meccanismi di diagnostica interni e farà di tutto per avvisarti in anticipo di un problema hardware e per quanto l'imprevisto possa sempre esserci, non c'è test che ti possa venirti in mente di creare che lo possa prevenire, altrimenti non si chiamerebbe imprevisto (ovvero non prevedibile) e l'unico vero paracadute è il backup su uno o più differenti supporti di archiviazione. ;)

Se ancora però ti crea difficoltà prova a ragionare così: linux è presente su sistemi ad alto rischio (windows di fatto non è considerato affidabile per queste cose), come la stazione spaziale internazionale, dove ci sono si doppi-tripli sistemi di tutto ma i rifornimenti arrivano ogni tot mesi e un fail combinato di più sistemi vitali significa morte certa... quindi se gli astronauti si fidano di linux perché tu non potresti? il codice che c'è sui sistemi linux della ISS sono gli stessi che hai sulla ubuntu che hai installato sul tuo PC! Se non riesci a fidarti di linux, allora puoi fidarti delle persone che lavorano alla NASA, all'ESA, JAXA,...

Se hai il dubbio di aver perso degli avvisi importanti da parte del sistema, basta che provi a chiederli al sistema, per esempio per vedere se da quando hai acceso il PC questa mattina ha generato errori hardware:

Codice: Seleziona tutto

cat /var/log/syslog | grep -i "hardware error"
Se non ti mostra nulla vuol dire che non sono state rilevate anomali, se invece ti compaiono righe come queste:

Codice: Seleziona tutto

Feb 13 07:09:58 Lacia kernel: [  316.349226] mce: [Hardware Error]: Machine check events logged
Feb 13 07:09:58 Lacia kernel: [  316.349230] [Hardware Error]: Corrected error, no action required.
Feb 13 07:09:58 Lacia kernel: [  316.349234] [Hardware Error]: CPU:0 (17:71:0) MC25_STATUS[-|CE|MiscV|-|-|-|-|CECC|-|-|-]: 0x98004000003e0000
Feb 13 07:09:58 Lacia kernel: [  316.349238] [Hardware Error]: IPID: 0x000100ff03830400
Feb 13 07:09:58 Lacia kernel: [  316.349239] [Hardware Error]: Platform Security Processor Ext. Error Code: 62
Feb 13 07:09:58 Lacia kernel: [  316.349240] [Hardware Error]: cache level: RESV, tx: INSN
Basta che apri una discussione sul forum e vediamo se riusciamo ad aiutarti, in questo esempio, l'errore che mi compare almeno 2-3 volte a settimana anche con una notifica sullo schermo indica un problema ad una funziona del processore, funzione che io ho di mia iniziativa disattivato e limitato il più possibile quindi il messaggio che ricevo è corretto e vuol dire che il sistema sta lavorando correttamente.
Razer
Prode Principiante
Messaggi: 5
Iscrizione: giovedì 11 febbraio 2021, 11:55

Re: Programma per vedere il tempo di accesso dei settori

Messaggio da Razer »

Vi ringrazio per le risposte, soprattutto quella di Clover che con i comandi che mi hai descritto è stata la chiave che mi ha dato un'idea di una possibile soluzione. Credo di essere riuscito a fare una base di script che mi da i millisecondi di lettura dei settori. Non sono per niente esperto di script e per fare questo di 10 righe sono stato delle ore facendo ricerche per trovare i comandi corretti, comunque alla fine sembra che funzioni:

Codice: Seleziona tutto

#!/bin/bash
for block in $(seq 0 100);
   do
        start_time="$(date -u +%s%N)"
        dd if=/dev/sdb bs=512 skip=${block} count=1 >/dev/null
        end_time="$(date -u +%s%N)"
        elapsed="$(($end_time-$start_time))"
        millisecondi="$(($elapsed/1000000))"
        echo "Settore $block letto in $millisecondi millisecondi"
   done
   
fa il test ai primi 100 settori e visualizza messaggi che non servono quindi ho ancora tantissimo da studiare per renderlo utilizzabile e completarlo.
Non so quanto precisa possa essere la misurazione ma anche se ha un margine di errore di 10 millisecondi non è grave.

Per precisare non ho dubbi sull'affidabilità di linux o della Nasa ma il test che faccio ai dischi è a livello RAW indipendentemente dal file system utilizzato, anzi, sono preferibilmente dischi cancellati senza partizioni. Prima faccio una verifica dei parametri SMART, e se risulta tutto regolare e con 0 settori riallocati allora procedo con il test dei settori. Se tutti i settori hanno un tempo di accesso inferiore ai 50 millisecondi allora il disco viene etichettato per "daily use" altrimenti viene etichettato per "backup occasionale" o nelle peggiori ipotesi cestinato anche se dallo stato SMART e dal sistema risulta tutto ok.

Aggiornerò il post appena riesco a rendere utilizzabile lo script e a fare qualche test
Avatar utente
Clover
Scoppiettante Seguace
Scoppiettante Seguace
Messaggi: 298
Iscrizione: giovedì 30 agosto 2012, 14:04
Desktop: KDE
Distribuzione: Kubuntu x86_64

Re: Programma per vedere il tempo di accesso dei settori

Messaggio da Clover »

Razer ha scritto:
domenica 14 febbraio 2021, 22:20
Vi ringrazio per le risposte, soprattutto quella di Clover che con i comandi che mi hai descritto è stata la chiave che mi ha dato un'idea di una possibile soluzione.
Felice di essere stato di aiuto e buona programmazione per lo script. :ciao:
Razer
Prode Principiante
Messaggi: 5
Iscrizione: giovedì 11 febbraio 2021, 11:55

Re: Programma per vedere il tempo di accesso dei settori

Messaggio da Razer »

Allora con lo script il test funziona ma per controllare un intero disco ci mette 3 giorni rispetto ad 1 ora e mezza che ci impiega il software su windows. Evidentemente questo tipo di test richiede un algoritmo dedicato e ben ottimizzato per arrivare ad un tempo di esecuzione accettabile, quindi al momento devo scartare questa soluzione.
Scrivi risposta

Ritorna a “Applicazioni”

Chi c’è in linea

Visualizzano questa sezione: unlocked e 10 ospiti