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

Мне нужно, чтобы проверить на уровне чтения/написания кода для некоторых встроенных аппаратных средств. Как я могу пожертвовать несколькими SD-карты и разбить несколько секторов для контролируемого исследования?

Единственное, что я могу думать, это для перезаписи одного сектора несколько миллионов раз. Интересно, если Линукс badblocks скрипт может быть создан, чтобы выполнить свою разрушительную теста на одном секторе несколько раз в течение нескольких часов.

Комментарии к вопросу (15)

Альтернативный подход, который может быть полезны.

Если ваш код работает под Linux, то может быть, вы можете проверить его на "неисправности" и логическое устройство. команду dmsetup могут создать приборы, которые возвращают ошибки ввода-вывода. Просто построить устройство с помощью "ошибка" и целевой/илихолодные. Из [человек 8 команду dmsetup`]1:

ошибка ошибки ввода-вывода, которые идут к этой области. Полезно для тестирования или для создания устройств с отверстиями в них.

капризный создает аналогичное сопоставление для цели "линейными", но экспонаты неблагонадежного поведения периодически. Используется для имитации отсутствии приборов при тестировании.

Примечание: целевое использование хлопьевидным - это документально здесь. Простой пример здесь.

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

Комментарии (4)

Этот парень взломал микроконтроллер внутри SD-карты используется, чтобы пометить плохие блоки: https://www.bunniestudios.com/blog/?p=3554

Вы сможете сделать то же самое и произвольно пометить блоки как неисправный.

сегодня в хаос компьютере Конгресс (30C3), xobs и я раскрыл обнаружив, что некоторые SD-карты содержат уязвимости, которые позволяют произвольное выполнение кода на карте памяти сама. На темной стороны, выполнение кода на карту памяти позволяет класс миом (человек-в-середине атаки), где карта, кажется, ведет себя одна По пути, но на самом деле он делает что-то еще. На светлой стороне, это также дает возможность для энтузиастов, чтобы получить доступ к очень дешевый и вездесущий источник микроконтроллеров.

.

эти алгоритмы слишком сложны и слишком конкретных устройств должен быть запущен В приложении или на уровне ОС, а так получается, что каждая вспышка диск корабли памяти с достаточно мощным микроконтроллером для выполнения набор алгоритмов абстракция диска. Даже уменьшительное памяти microSD карта содержит не один, а как минимум две микросхемы — контроллера, и в По крайней мере один флэш-чип (высокой плотности карты будут укладывать несколькими вспышками умереть).

.

встроенный микроконтроллер обычно является сильно измененной 8051 или процессор ARM. В современных реализациях, микроконтроллер подойдет 100 уровней производительности МГц, а также несколько аппаратных ускорители на кристалле. Удивительно, стоимость добавления этих контроллеров В устройство, вероятно, порядка $0.15-$0.30, особенно для компаний, которые могут ФАБ как флэш-память и контроллеры В рамках одной бизнес-единицы. Это наверное дешевле, чтобы добавить эти микроконтроллеры более тщательно проверить и дать характеристику каждой вспышки микросхема памяти, которая объясняет, почему управляемых устройств флеш-памяти может быть дешевле на чуток, чем сырые микросхемы флэш-памяти, несмотря на включение По микроконтроллера.

.

суть заключается в том, что загрузка прошивки и механизм обновления практически обязательная, особенно для сторонних контроллеров. Конечные пользователи редко подвержены этому процессу, так как все это происходит на заводе, но это не делает механизм менее реальной. В своих исследованиях рынки электроники в Китае, я видел, как владельцы магазинов горящих прошивки на карты, которые “расширяют” возможности карты — в другой слова, они загрузить прошивку, которая передает мощность карты гораздо больше, чем фактическая доступная для хранения. Тот факт, что это возможность в точке продажи это означает, что, скорее всего, обновление механизм не защищен.

В нашем разговоре на 30C3, мы сообщаем наши результаты изучения конкретного бренд микроконтроллера, а именно: Appotech и его AX211 и AX215 предложения. Мы открываем простой “стучать” последовательность передаваемых по производитель-зарезервированные команды (а именно, CMD63 последующим ‘а’,’п’,’р’,’О’), что падение контроллера в прошивку загрузка режим. На данный момент, карта будет принимать следующие 512 байт и работать Это как код.

Комментарии (4)

Это, как правило, выиграл't работа потому что самые последние карты SD (или внутренней памяти) использование статического и динамического выравнивания износа, что означает, что интеллектуальный контроллер интерпретирует инструкции пишут и сопоставляет его с одним из наименее используемых флэш-секторов.

Единственное, что вы можете сделать, это попробовать связаться с поставщиками и попросить их спецификации; там могут быть некоторые (поставщиком) способа извлечения состоянии их носить-выравнивать алгоритм. Это потенциально позволяет запрашивать состояние/использование базовых вспышки. Или вы может быть не повезло и это не может существовать.

Если ваша цель-действительно уничтожить вспышка, все, что вы могли сделать, это запустить массовое чтение и запись циклами и непрерывно проверяем, что данные, которые Вы читаете туда все-таки последовательны. Е. Г. создайте два больших файлов, хранить их контрольные суммы и читать/писать их для того, чтобы проверить их контрольную сумму. Чем больше вспышка, тем дольше этот процесс займет.

Комментарии (12)

Можно увеличить транзистор носить при увеличении рабочей температуры. Использование циклов запись-стирание на обогрев чип (70-120&ампер;усилитель; nbsp;°С); он будет быстрее изнашиваться.

Комментарии (3)

Предисловие: эта опция требует дополнительного программирования и аппаратных изменений, но это позволит контролируемых читает, скорее всего, прозрачным для хозяина.

SD-карта имеет несколько опции ввода/вывода, но им можно управлять по SPI. Если вы возьмете SD-карты и изменить ее так, чтобы вы могли прикрепить булавками к микроконтроллеру (например Ардуино) вы может Arduino для имитации SD карты и быть прозрачной для устройства чтения SD-карт. Кода на микроконтроллере может намеренно возвращать неверные данные при необходимости. Кроме того, вы могли бы поставить SD карту на микроконтроллере так читает и сумел бы пройти через микроконтроллер SD-карту, чтобы позволить гигабайт тестирования.

Комментарии (6)

Я бы пошел на eBay/AliExpress и купить самые дешевые SD-карты я могу найти из Китая, та что-то "слишком хорошо, чтобы быть правдой и". Они часто приходят с неисправными секторами или в программном обеспечении гораздо больше, чем они есть на самом деле. В любом случае, вы должны в конечном итоге с неисправной SD-карты, чтобы использовать для тестирования.

Комментарии (2)

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

Я в конечном итоге получения идентичны бренд/размер SD-карты и записывая свои собственные исходные данные dump и restore утилита для копирования данных с плохо карту к хорошим. Каждый раз, когда программа попала в плохие сектора, то было бы повторить несколько раз, прежде чем писать все нули для этого сектора и, вместо того чтобы сдаться и остановиться, пропустить ошибку и перейти к следующему сектору. Попыток было сделано, так как я также заметил, что в некоторых секторах по-прежнему около 40% скорость чтения успех. После того, как данные на новую SD-карту, средства восстановления, которые не работали раньше безупречно с минимальными потерями данных/коррупции. В целом, были восстановлены около 98% всех файлов. Ряд пунктов, которые были ранее удалены были также восстановлены, потому что никогда ничего не удаляется, просто помечается как таковой и потихоньку затираются. То, что началось как немного скучные упражнения для восстановления данных стал одним из моих более запоминающиеся и интересные личные проекты разработки программного обеспечения. В случае, если вам интересно, мать была в восторге.

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

Также можно поспрашивать на каком-восстановление данных местах в вашем районе. Поскольку они специализируются в области восстановления данных с различных отсутствии или неисправных устройств, они должны иметь некоторую полезную информацию/советы и, возможно, даже некоторые предварительно лопнул SD-карт на руки (например, для учебных целей), которые вы можете получить от них.

Комментарии (6)

Этот ответ является экспансией на комментарий @Руслан

  1. Заполните ваш SD карты до около 99,9%
  2. Непрерывно переписать содержимое оставшиеся 0,1% (писать -удалять-писать Б-удалить - напишите ...)
  3. Тест (периодически) если вы уже сломали карту

Возможные альтернативы:

Не уверен, что это работает для ваших целей, но, возможно, это будет на самом деле достаточно, чтобы физически повредить вашей карты, который может быть намного быстрее.

Комментарии (9)

Некоторые старые, малой емкости карты памяти SD (16Мб-иш) использовать микросхемы флэш-памяти в ЦОП/пакеты типа корпус. Цех способен переработать СМТ (если вы делаете встроенный работает, возможно, что навык в номере, в противном случае проверьте для небольших компаний, занимающихся уровне совета директоров телефон/ноутбук ремонт) может отделить и присоединить этот чип, так что оно может быть прочитано и написано сырой (включая ЕСС-коды) с помощью программирующего устройства.

Еще следует помнить, что вы будете в основном испытания:

  • Как ваше устройство будет обрабатывать возможные отклонения сроков/икота внесены исправления внутренней ошибки

и в худшем случае

  • как ваше устройство обрабатывает смертельно не SD-карты.

Если вы просто хотите проверить, как он ведет себя с неустойчивым поведением, по какой причине с SD-карты, это, вероятно, лучше всего представить электрический шум в линии интерфейса (например, поставив Фет автобус переключиться между ними, и в случайные моменты времени мгновенно переключая его с источником бессмысленных сигналов (правого электрическая уровнях).

Комментарии (1)

Можно попробовать ввести нестабильное электропитание или высокое напряжение сигнализации.

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

Комментарии (0)

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

Комментарии (0)

Возможно, это не то направление вы хотели, но я нашел удаление SD-карте, в то время как мое радио или ноутбук читал это гарантирует разбился SD-карты примерно 1/5 или 1/10 раза. Похоже, карты Дон'т делать хорошо, имея власть удалены во время чтения, и, вероятно, пишет. После прочтения Роберт Кэлхун'с комментариями ниже, это заставляет меня думать, это может повредить жир. Хотя я не'т знаю, почему просто читаю причин аварии - там не должно быть никакого письма происходит?

Комментарии (3)

Мастер запись в FAT32 зона загрузки является, вероятно, наиболее уязвимы для злоупотреблений, поскольку на логическом уровне он всегда должен быть в одном месте. (Возможно, это обрабатывается софт-переназначение плохих секторов, но я несколько сомневаюсь, что это реализовано на все оборудование.) Так что вы можете запустить sfdisk в цикле и посмотреть, если вы можете разрушить ее таким образом.

Но я прошу вас сделать все возможное, чтобы улучшить надежность оборудования, вместо того, чтобы пытаться справиться с плохим оборудования в программном обеспечении. Проблема заключается в том, что SD-карты не во всех видах странных путей. Они становятся нечитаемыми, они становятся unwriteable, дают вам неверные данные, они тайм-аут во время операций и т. д. Пытаясь предсказать все способы карта может не очень сложно.

Здесь's один из моих любимых неудачи, на "больших данных режим":

SD-карты являются товаром потребительских товаров, которые находятся под огромным ценовое давление. Части быстро меняются и схемы трудно найти. Поддельный продукт не слыхивали. Дешевые для хранения их трудно победить, но в то время как твердотельные накопители делают надежность является приоритетом, приоритетом для SD-карт по скорости, емкости и стоимости (возможно, не в том порядке).

Ваша первая линия обороны является использование пайке Эммс часть с реальным даташит от известного производителя, а не съемной SD-карте. Да, они стоят дороже за ГБ, но часть будет в производстве в течение длительного периода времени, и, по крайней мере, вы знаете, что вы получаете. Паяльная часть также позволяет избежать целого ряда возможных проблем (карты вытащили при записи, плохого электрического контакта и т. д.). со съемной картой.

Если ваш продукт нуждается в съемном носителе, или это's просто слишком поздно что-то менять, то считайте, либо тратить дополнительные деньги на "Промышленный" и класс карты, или рассматривать их как одноразовые предметы. То, что мы делаем (под Linux) является проверку карта на загрузке и переформатировать его, если любые ошибки, как переформатирование приемлемо в данном случае использовать. Затем мы проверку это снова. Если он по-прежнему сообщает об ошибках после переформатирования, мы РМА и замены оборудования новый вариант, который использует память eMMC.

Удачи!

Комментарии (1)

Если ваша SD-карту в формате FAT32, можно Хекс-редактирование 2 жиры, и пометить сектор как плохо с правильным шестнадцатеричный код. Это только трюк, если вы хотите, чтобы проверить логику программного обеспечения должен найти плохие сектора на данном конкретном месте ; он выиграл'т повредить ваши SD-карту либо переформатировать будет вернуть его в нормальное состояние.

Комментарии (3)

Я интересно, если Линукс badblocks скрипт может быть создан, чтобы выполнить свою разрушительную теста на одном секторе несколько раз в течение нескольких часов.

На одном секторе—нет, потому что выравнивание износа код внутри SD-карты будет переназначить логические блоки все на месте.

Но вы можете легко запустить badblocks -W в цикле, пока она не вызывает некоторые плохие блоки, чтобы появиться. Что-то вроде этого должно работать:

while badblocks -w /dev/xx; do :; done

если предположить, что badblocks возвращает 0, если плохие блоки были обнаружены и ≠ 0 в противном случае (человек страница не'т сказать и я не'т проверил исходный код.)

Комментарии (0)

Обычно с карт памяти SD/долларов США они реализуют выравнивания износа, так что это может быть довольно трудно. В зависимости от типа (один слой клеток, многослойные, ТСХ, 3Д-памяти NAND и т. д.) цикл записи требуется, чтобы разбить его достаточно, чтобы исчерпать пул сектор может быть в несколько ТБ.

Я на самом деле тест этот с 4 ГБ, 64 ГБ и 256 ГБ памяти про дуэт, SSD-накопитель и флэшку на 64 ГБ к---ы--- через 4 Микрон 16ГБ чипов длилось около 3,84 Тбайт, до этого не с одной программной ошибке в жировой зоне. На 256 ГБ, используя длилась немного меньше, но оценить без непосредственного чип-это, наверное, писал, может быть, 5 ТБ, прежде чем он, наконец, выдал с MBR коррупции, но там'т ясно, если контролер вызвал его как добротно работал в режиме, но с USB3 порт USB2 было больше глюков во время считывания, а также ран очень жарко. 4 ГБ дуэту удалось в ридер при копировании данных, снова смогут'т быть уверены, а означает, может быть, 6 лет использования и камера также показывает, что "Восстановление и" сообщения. Кстати изменения напряжения питания во время записи сделать это не намного быстрее. Мой 128ГБ microSD строя после примерно 2 лет использования с похожими симптомами, также имели избыточную утечку энергии и термических данных пока читал и писал нормально.

Удалены неуместные замечания о рентгеновских экспериментов.

Комментарии (1)