Область основной загрузочной записи FAT32, вероятно, наиболее подвержена злоупотреблениям, поскольку на логическом уровне она всегда должна находиться в одном и том же месте. (Возможно, это решается мягким переназначением плохих секторов, но я несколько скептически отношусь к тому, что это реализовано на всех аппаратных средствах.) Таким образом, вы можете запустить sfdisk
в цикле и посмотреть, сможете ли вы разрушить его таким образом.
Но я попрошу вас сделать все возможное, чтобы повысить надежность оборудования, вместо того, чтобы пытаться работать с плохим оборудованием в программном обеспечении. Проблема в том, что SD-карты выходят из строя разными способами. Они становятся нечитаемыми, они перезаписываются, дают неверные данные, они истекают во время операций и т.д. Попытка предсказать все возможные ошибки карты очень трудна.
Вот один из моих любимых сбоев, "режим больших данных":
SD-карты - это потребительские товары широкого потребления. Части быстро меняются, и данные трудно найти. Поддельный товар не случайно. Что касается дешевого хранилища, то его сложно превзойти, но, хотя твердотельные накопители отдают приоритет надежности, для SD-карт приоритет - скорость, емкость и стоимость (вероятно, не в таком порядке).
Ваша первая линия защиты - использовать съемную деталь eMMC с реальной таблицей данных от известного производителя вместо съемной SD-карты. Да, они стоят больше за ГБ, но часть будет в производстве в течение более длительного периода времени, и, по крайней мере, вы знаете, что вы получаете. Пайка детали также позволяет избежать целого ряда потенциальных проблем (срыв карт во время записи, плохой электрический контакт и т.д.) Со съемной картой.
Если вашему продукту требуется съемное хранилище или уже слишком поздно что-либо менять, подумайте о том, чтобы потратить дополнительные деньги на карты "промышленного" класса или относиться к ним как к одноразовым предметам. То, что мы делаем (под linux), это fsck
карты при загрузке и переформатируем ее, если сообщается о каких-либо ошибках, так как переформатирование приемлемо в этом случае использования. Тогда мы fsck
его снова. Если после переформатирования он все еще сообщает об ошибках, мы отправляем его в RMA и заменяем аппаратное обеспечение более новым вариантом, использующим eMMC.
Удачи!