Come posso testare una scheda di memoria per prestazioni e settori danneggiati?


10

Ho appena acquistato una nuova scheda CF per la mia DSLR. L'ho provato usando Xbench (Mac OS X) e funziona come previsto. Tuttavia, mi piacerebbe fare una "scansione di superficie" (termine del piatto mobile) per verificare la presenza di "settori danneggiati" (termine del piatto mobile). Potrei bash scriptare un processo usando dd, ma ho la sensazione che ci sia un modo migliore là fuori. Il mio obiettivo è sapere definitivamente che una scheda di memoria (CF, SD, ecc.) È sicura da usare su un servizio fotografico e che non deve essere restituita prima della scadenza della finestra della politica del fornitore di 30 giorni.

Voglio sicuramente le soluzioni Mac fornite qui. Vorrei anche ricevere alcuni suggerimenti su Linux. Lanciamo anche un osso agli utenti di Windows solo in modo che questa domanda possa soddisfare le esigenze di tutti.


Capisco che la memoria a stato solido è diversa dai piatti rotanti. Non ho bisogno di una lezione in questo. Quello di cui ho bisogno è un modo per verificare i dispositivi che possiedo. Il processo è semplice: riempire il dispositivo con contenuti noti. Leggi dal dispositivo e verifica il contenuto. Se si verificano errori di lettura o scrittura, errore evidente. Se il contenuto letto è diverso da quello che hai scritto, questo è il fallimento meno evidente. La data deve essere casuale e devono essere utilizzati più cicli. Quello di cui ho bisogno è uno strumento che lo fa. Ne ho scritto uno, ma è un trucco.
Bruno Bronosky,

Risposte:


8

Poiché il controller può spostare i blocchi dove vuole (vedi livellamento dell'usura), l'unica possibilità per un intero test di lettura / scrittura è di riempire il disco e quindi confrontarlo. Più volte, ovviamente, con schemi diversi.

E ancora non catturerai regioni difettose, poiché sono nascoste anche dal controller fintanto che ha pezzi di ricambio.


6

La memoria flash non funziona allo stesso modo dei dischi con piatti. Il concetto di "settore danneggiato" non esiste realmente con la memoria flash. In questi giorni, con memoria flash e SSD, il controller integrato si occupa di identificare e contrassegnare blocchi di memoria inutilizzabili, spostare dinamicamente i dati per mitigare le limitazioni di scrittura dei blocchi, ecc. Queste funzionalità sono molto più diffuse negli SSD, ma alcuni anche esistono schede flash di qualità (come SanDisk).

La maggior parte degli strumenti di controllo del file system fa ipotesi specifiche sulla struttura fisica del dispositivo di archiviazione (ovvero basato su piatto, con cilindri fisici, settori, cluster, ecc.) Oppure lavora a un livello astratto ed effettua riparazioni "virtualmente" usando file o directory tabelle. Avresti bisogno di uno strumento appositamente progettato per contrassegnare i blocchi danneggiati su un dispositivo di memoria flash, poiché qualsiasi altra cosa o causerà più problemi (supponendo che possa risolvere i problemi allo stesso modo che avrebbe con un dispositivo basato su piatto) o rendere virtuale correzioni che non tengono conto delle funzionalità dinamiche a livello di hardware di Flash. Anche se potessi contrassegnare un particolare "settore" o "cluster" come "cattivo", non farebbe necessariamente alcun bene, dal momento che quei concetti fisici non esistono realmente nella memoria flash. Se il dispositivo flash è più avanzato e sposta dinamicamente i dati in giro per bypassare automaticamente i blocchi danneggiati e mitigare le limitazioni di scrittura, la posizione fisica dei dati potrebbe risiedere in un blocco danneggiato un momento e in un blocco buono un momento dopo. (Si noti che l'idea di un blocco "cattivo" nella memoria flash è molto più confusa di quanto non lo sia con i dischi del piatto ... un blocco di memoria flash tende a morire lentamente, piuttosto che all'improvviso, e può "sfarfallare" tra un leggibile / non leggibile un un po 'prima che diventi del tutto inutilizzabile.)

In generale, quando si tratta di flash, lasciare che il dispositivo si gestisca da una prospettiva di blocco errata. Diversi produttori strutturano e archiviano i dati in modi diversi e ciascuno può avere livelli e quantità di comportamento dinamico diversi che spostano i dati per evitare alcune delle limitazioni della memoria flash. Cercare di gestirlo da soli potrebbe causare più problemi di quanti ne risolva e potrebbe rendere inutili i dischi flash a lungo termine.

Se si desidera evitare cattive schede flash, consiglio vivamente di utilizzare marchi affidabili. Ho provato una varietà di schede flash in passato, tuttavia SanDisk è l'unica marca che ho usato che, almeno fino ad oggi, non ha mai fallito. Ho diverse schede SDHC da 4, 8 e 16 gig che uso abbastanza pesantemente, che estraggo regolarmente dalla mia fotocamera e inserisco nel mio laptop o computer, e funzionano ancora perfettamente. (Alcuni hanno diversi anni.)


1
Blocchi errati possono esistere con qualsiasi dispositivo a blocchi: se scrivo alcuni dati su un blocco particolare, ma non riesco a rileggerli, è un blocco errato. Il controller può nascondere questo problema per le scritture, scrivendo i dati altrove, ma non per le letture.
Vaddadi Kartick,

3

In Linux, il comando che desideri è badblocks. Sembra che ci sia una porta di questo su Mac OS X come parte di questa porta ext2-for-os-x - installa tutto e ignora tutto tranne il /usr/local/sbin/badblockscomando.

Detto questo, questo aiuterà i test, ma non penso che sarà conclusivo, perché prima come dice Leonidas, non hai davvero accesso grezzo alla memoria flash, quindi è difficile fare una scansione completa, e anche perché nuovi errori potrebbero apparire dopo il test, forse anche innescati da esso.


1

Leggendo il tuo commento sotto la domanda, credo che F3 faccia esattamente quello che vuoi. Si compila su Linux / Mac OS X ed è disponibile anche tramite Homebrew.


-1

Ho trovato questo su google, non sto usando schede SD per l'archiviazione di fotocamere, ma invece ho ottenuto il mio sandisk SDHC 32 concerti di classe 10 completamente danneggiato dopo meno di 2 anni di utilizzo sul mio Samsung Galaxy S2.

Sto usando i badblock per vedere dove iniziano i primi badblock e quindi creerò partizioni intorno a quell'area, se possibile. questa è la mia attuale, pessima soluzione: /


potresti approfondire la tua risposta? Sulla base di una rapida ricerca, suppongo che "badblocks" sia un programma Linux? Fa ciò che l'OP ha richiesto?
MikeW
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.