Как определить, когда SD-карта нуждается в замене?

39

Есть ли способ оценить срок службы SD-карты? Если нет, есть ли утилита, которую я могу использовать, которая контролирует ее целостность и надежность, чтобы я знал, когда использовать новую SD-карту?

ramblinjan
источник
5
Меня также смущают аргументы в пользу «закрытых» голосов как неконструктивные. Это потому, что разные SD-карты будут иметь разные ответы?
Рамблинян
Просто очень трудно ответить авторитетно, пока кто-то на самом деле не проведет несколько экспериментов, чтобы выяснить это.
finnw
2
Что делает этот вопрос плохим, так это то, что ответы будут
угадываться
11
Это сделало бы эти ответы плохими ответами. То, что на него нельзя ответить точно сейчас , не означает, что на него нельзя ответить точно.
Рамблинян
10
@finnw - вопрос, на который трудно ответить, это не плохой вопрос, это хороший вопрос! Это вопрос, который люди будут продолжать задавать, поэтому он идеально подходит для сайта, предназначенного в качестве ссылки для ответов на вопросы, на которые люди хотят получить ответы. Плохие ответы с другой стороны могут быть отклонены. Не позволяя людям пытаться ответить, побеждает цель сайта обмена стека.
Марк Бут

Ответы:

10

Существует несколько инструментов, которые проверяют целостность файловой системы, и повторяющиеся ошибки указывают на то, что SD-карта подходит к концу.

fsck является широко используемым приложением Linux, и вы можете использовать его для проверки раздела следующим образом:

fsck /dev/sdx

Где xномер раздела.

Что касается оценки срока службы, Руководство по продукту Sandisk гласит:

SD-карты SanDisk имеют спецификацию выносливости для каждого сектора из 100 000 типичных операций записи (чтение логического сектора не ограничено).

Однако я не знаю, сколько операций чтения / записи в среднем использует типичная ОС.

Jivings
источник
Я думаю, что «типичный» был бы неописуемым. Это будет полностью зависеть от установленного программного обеспечения. Может быть возможно вычислить чтение / запись чистой установки, но это будет изменяться с каждым небольшим обновлением, делая статистику довольно бессмысленной. Я думаю, что инструменты, которые вы перечислили, в сочетании с осознанием того, что для записи карты понадобится много времени, должны быть достаточными базовыми данными для продолжения.
ian.shaun.thomas
@tencent Я думаю, это лучшее, что мы можем сделать.
Jivings
8

SD-карты осуществляют мониторинг сами, так что вам не нужно . Современные SD-карты коммерческого уровня будут использовать сложные алгоритмы выравнивания износа, которые обнаруживают и изолируют поврежденные блоки по мере их появления, поэтому в любой момент времени плохие блоки не подвергаются воздействию файловой системы.

Все продолжается до тех пор, пока на SD-карте не закончатся резервные запасные блоки, и в этот момент большинство карт постоянно блокируются в режиме только для чтения. Это сделано для того, чтобы дать пользователю возможность считывать данные и перемещать их на другой носитель. Вот как вы знаете, что вам нужно получить новый.

Поскольку на карте обычно заканчиваются свободные блоки, когда вы пишете на нее, включение журналирования значительно помогает восстановить ваши данные.

Дмитрий Григорьев
источник
Очень приятно знать! В таком случае df -h
здоровье
1
@DanFroberg Нет, видимый пользователю размер останется постоянным. Это пул зарезервированных блоков, который заканчивается, и этот пул не виден при обычном доступе к SD-карте.
Дмитрий Григорьев
3

Для промышленных SD-карт под маркой ATP они предоставляют программное обеспечение SD Lifetime Monitoring Tool для Linux / Windows. Но если вы используете этот инструмент, вы должны запустить его из хост-операционной системы. Это означает, что вы не можете использовать это программное обеспечение внутри SD-карты, чтобы проверить себя. Потому что, если вы запустите это программное обеспечение, SD-карта не может быть доступна.

Справочная информация - Google: спецификация SD-карты промышленного класса ATP (версия 3.8)

введите описание изображения здесь

crackerboy
источник
2

Вы можете сканировать все блоки ваших разделов с

time badblocks -sv /dev/mmcblk0p2 -o mmcblk0p2.log

mmcblk0p2 относится к разделу и должен быть заменен сканируемым разделом. Вы можете перечислить свои разделы с помощью lsblkили fdisk -l.

Плохие блоки будут записаны в файл журнала.

Размонтирование файловой системы не требуется.

Вы также можете выполнять неразрушающие тесты записи ( -nопция), если считаете это необходимым.

Если вам не нужно сохранять данные, вы также можете выполнить более быстрый (разрушительный) тест записи ( -wопция).

Фрэнк Брейтлинг
источник