Як я можу навмисно зламати / пошкодити сектор на SD-картці?


142

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

Єдине, про що я можу придумати - це переписати один сектор в кілька мільйонів разів. Цікаво, чи може бути створений скрипт з поганими блоками Linux для того, щоб виконувати руйнівний тест на одному секторі повторно протягом декількох годин.


20
Чи можете ви змінити низькорівневий драйвер SD, щоб зробити вигляд, що це поганий блок, або це не викликає сумніву?

3
@MarkYisri, я не думаю, що водій дуже доступний. Який би драйвер ми не використовували, це ультра-рудиментарний, щоб максимально розподілити пам’ять на решту програмного забезпечення. Крім того, якщо б це було можливо, це, ймовірно, виходило б за мої можливості.
Гейб Краузе

3
Чи можете ви створити емулятор SD-карти? Не найпростіший проект, зауважте.
user20574

11
З огляду на мету, ви можете придбати декілька вживаних SD карт за невеликі гроші, і ви можете легко отримати несправну або поставити заявку "шукаю ...", щоб спеціально шукати несправні карти. Або шукайте на eBay дефектні картки. Потім ви протестуєте карту, і ви дізнаєтесь положення дефектних областей.
FarO

28
Запитайте будь-якого професійного фотографа. У них, безумовно, буде купа скляних SD карт.
J ...

Відповіді:


168

Альтернативний підхід, який може бути корисним.

Якщо ваш код працює під Linux, можливо, ви можете протестувати його на "несправному" логічному пристрої. dmsetupможе створювати пристрої, які повертають помилки вводу / виводу. Просто побудуйте свій пристрій за допомогою errorта / або flakeyнацілювання. Від man 8 dmsetup:

error
Помилка будь-якого вводу-виводу, який переходить у цю область. Корисно для тестування або для створення пристроїв з отворами в них.

flakey
Створює подібне відображення до linearцілі, але періодично виявляє ненадійну поведінку. Корисно для моделювання несправних пристроїв під час тестування.

Примітка: flakeyвикористання цільових даних тут задокументоване . Основний приклад тут .

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


34
Я ціную це нестандартне мислення! Ми взаємодіємо на рівні блоку з SD через мікросхему Atmel 80 МГц і без реальної ОС.
Габе Краузе

1
@GabeKrause У цьому випадку корисність цієї відповіді залежить від того, наскільки API API блочного Linux може бути схожим на API вашого вбудованого драйвера пристрою.
Qsigma

1
dmsetupкоманда для налаштування errorпристрою, який завжди повертає помилки читання: stackoverflow.com/questions/1870696/…
Пітер Кордес

1
Я згоден, що це звучить як краще рішення. Спочатку ви можете копіювати будь-яке обладнання. А також ви можете імітувати різні режими помилок. Наприклад, у мене флеш-накопичувач на 16 Гб, який працює добре. Через деякий час, хоча певна область на ній починає повертати неправильні дані. Немає жодної помилки FS. Ви читаєте файл, але вміст відрізняється. Деякі сектори, очевидно, нестабільні. Але як поводитиметься якийсь конкретний пристрій, не можна знати заздалегідь.
акостадінов

76

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

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

Сьогодні на комп'ютерному конгресі Chaos (30C3) компанія xobs і я оприлюднили висновок про те, що деякі карти SD містять уразливості, що дозволяють виконувати довільне виконання коду - на самій картці пам'яті. З темного боку виконання коду на картці пам’яті дає можливість класу MITM (людина-посередині) атак, де карта, схоже, веде себе в один бік, але насправді вона робить щось інше. З іншого боку, це також дає можливість любителям апаратного забезпечення отримати доступ до дуже дешевого та всюдисущого джерела мікроконтролерів.

.

Ці алгоритми занадто складні і занадто специфічні для пристрою, щоб їх можна було запустити на рівні програми або ОС, і тому виявляється, що кожен диск флеш-пам’яті постачається з досить потужним мікроконтролером для запуску користувацького набору алгоритмів абстракції дисків. Навіть у зменшувальній картці microSD міститься не одна, а принаймні дві мікросхеми - контролер і хоча б один флеш-чіп (картки високої щільності складатимуть декілька флеш-відмирань).

.

Вбудований мікроконтролер, як правило, сильно модифікований процесор 8051 або ARM. У сучасних реалізаціях мікроконтролер наблизиться до 100 МГц, а також має декілька апаратних прискорювачів. Дивовижно, що вартість додавання цих контролерів до пристрою, ймовірно, складає близько $ 0,15 - $ 0,30, особливо для компаній, які можуть створювати флеш-пам’ять та контролери в межах одного бізнес-підрозділу. Додавати ці мікроконтролери, мабуть, дешевше, ніж ретельно перевіряти та характеризувати кожен мікросхеми флеш-пам’яті, що пояснює, чому керовані флеш-пристрої можуть бути дешевшими за біт, ніж необроблені флеш-мікросхеми, незважаючи на включення мікроконтролера.

.

Суть у тому, що механізм завантаження та оновлення прошивки практично обов'язковий, особливо для сторонніх контролерів. Кінцеві користувачі рідко піддаються цьому процесу, оскільки це все відбувається на заводі, але це не робить механізм менш реальним. Під час моїх досліджень на ринку електроніки в Китаї я бачив, як власники магазинів спалюють прошивку на картках, які «розширюють» ємність карти - іншими словами, вони завантажують прошивку, яка повідомляє, що ємність картки значно більша, ніж фактичне доступне сховище. Те, що це можливо на місці продажу, означає, що, швидше за все, механізм оновлення не захищений.

У нашій розмові на 30C3 ми повідомляємо про наші висновки, вивчаючи конкретний бренд мікроконтролерів, а саме Appotech та його пропозиції AX211 та AX215. Ми виявляємо просту послідовність "стуку", що передається через зарезервовані виробником команди (а саме CMD63, а потім "A", "P", "P", "O"), які переводять контролер у режим завантаження програмного забезпечення. У цей момент карта прийме наступні 512 байти і запустить її як код.


10
З усіх відповідей ця, мабуть, найближча до того, що насправді просила ОП.
Корт Аммон

11
Це було фантастичне прочитання!
Гейб Краузе

@Twisty скопіював деякі відповідні частини.
FarO

2
Вниз по кролячій норі у світ архітектури SD-карти я йду.
Техас Кале

38

Зазвичай це не спрацює, оскільки на останніх картах SD (або eMMC) використовується статичне та динамічне вирівнювання зносу, тобто інтелектуальний контролер інтерпретує вашу інструкцію запису та відображає її в одному з найменш використовуваних флеш-секторів.

Єдине, що ви можете зробити, це спробувати зв’язатися зі своїми постачальниками та запитати їхню таблицю даних; Можливо, існують деякі (конкретні для постачальника) способи відновити стан їх алгоритму вирівнювання зносу. Це потенційно дозволить вам запитувати стан / використання базового спалаху. Або вам може не пощастити, а цього може не існувати.

Якщо ваша мета справді знищити спалах, все, що ви могли зробити, це запустити масивні цикли читання і запису та постійно перевіряти, чи зберігаються дані, які ви читаєте, як і раніше. Наприклад, створити два великих файли, зберегти їх контрольні суми та прочитати / записати їх, щоб перевірити їх контрольну суму. Чим більший спалах, тим довше буде тривати цей процес.


2
Не буде це все ще спрацювати, якщо SD-карта повністю заповнена даними, так що вона не може багато чого перезавантажувати? Я не думаю, що у них багато запасних прихованих секторів.
Руслан

2
@Ruslan Пристрій не повинен знати, чи є сектор заповнений чимось. Потрібно лише знати зміст, які сектори доставити за запитом та які сектори написати на запит. І тоді може бути якийсь шар абстракції, який використовує іншу фізичну пам'ять для представлення тих секторів, які дотримуються якогось нерозкритого алгоритму ... - І "повний" означає лише "порог для досягнутих поточно заповнюваних блоків", звичайно.
Олександр Косубек

6
@Ruslan: Навіть якщо на всьому пристрої є дані про нього, рівень зносу все ще може бути ефективним: наприклад, якщо сектор A був написаний один раз, а сектор B був написаний 1000 разів, то коли з'явиться ще одна запис сектор B картка може обмінятися даними для двох секторів, так що сектор A містить дані сектора B (і, ймовірно, буде перезаписано набагато більше разів - але це нормально, тому що це свіже), а сектор B міститиме дані сектора А (який буде сподіваємось, не сильно зміниться). Очевидно, що пристрій також повинен зберігати відображення того, який сектор зберігається, де.
psmears

2
@GabeKrause так, це природа звіра. На найнижчому рівні у вас є ні nand, ні флеш-чіпи (в даний час все використовується nand), а перед чіпом nand є інтелектуальний контролер, який закінчує шину (наприклад, usb для usb-stick або mmc для sd-карти ), і ця мікросхема відповідає за вирівнювання / вирівнювання зносу і т. д., вона віддаляє спалах від вас. Якщо ви використовуєте nand на вбудованому Linux, це, наприклад, зробить ubifs для вас.
amo-ej1

2
SD-карти мають мікроконтролер, який реалізує "Flash Flash Layer" - запити блоків переводяться цим мікроконтролером на необроблені команди NAND. Деякі SD-карти мають приховані команди змінити / оновити мікропрограмне забезпечення MCU, і на ньому навіть зроблено деякі зворотні інженерні зусилля. Більшість пристроїв флеш-пам’яті, окрім сировинних NAND (які можуть з’являтися у деяких випадках, як і багато домашні маршрутизатори), ймовірно, «переналагоджені» - це означає, що ваша SD-карта 1 Гб, мабуть, має щось на зразок 1024 Мб + 128 МБ необробленого простору NAND, щоб покрити рівень зносу, коли вона повна а також для секторів, що не відповідають потребам поганих флеш-сторінок.
LawrenceC

32

Ви можете збільшити зношеність транзистора за рахунок підвищення робочої температури. Використовуйте цикли запису на нагрітому мікросхемі (70-120 ° C); він швидше зношується.


18
Надмірна температура зберігання також згубна, тому може бути практичніше деякий час «готувати» мікросхем при температурі 120 ° С (а то й більше), а потім перевіряти на наявність дефектів.
Дмитро Григор’єв

2
Незначна перенапруга на подачі на карту також може бути можливою, і аналогічно буде потрібно експериментувати.
Кріс Х

Зниження напруги також може спричинити різні види дефектів, як, наприклад, блокування контролера.
користувач20574

18

Передмова: Цей параметр вимагає додаткових модифікацій програмування та апаратного забезпечення, але він дозволить контролювати зчитування, швидше за все, прозорі для хоста.

SD-карта має кілька варіантів вводу-виводу, але її можна контролювати через SPI. Якби ви взяли SD-карту і змінили її, щоб ви могли прикріпити штирі до мікроконтролера (наприклад, Arduino), ви могли б Arduino імітувати SD-карту і бути прозорим для пристрою, що читає SD-карту. Ваш код на мікроконтролері може навмисно повернути погані дані при необхідності. Крім того, ви можете поставити SD-карту на мікроконтролер, щоб зчитування змогло перейти через мікроконтролер на SD-карту, щоб забезпечити гігабайти тестування.


3
Більшість швидкісних пристроїв (включаючи зчитувачі карт PC) просто відмовляться працювати з карткою, яка не підтримує чотирибітний SD.
Дмитро Григор’єв

1
ОП заявила, що це вбудована система, яка використовує карту, яка зробить більш імовірною підтримку SPI для sd-карт
Ерік Джонсон

3
Варіантом цієї, але більш важкої роботи, було б знайти SD-карту, на яку можна переробити мікропрограмне забезпечення .
Пітер Тейлор

2
Це супер цікаво! Наша вбудована система працює на вході / виводу через SPI. Я не впевнений, чи є у мене пропускна здатність змінити наше обладнання, щоб здійснити подібне доповнення, але я думаю, що це геніальне мислення.
Гейб Краузе

2
Ознайомлення з питаннями динамічного вирівнювання зносу змушує мене вважати, що стратегічно створити «погану» SD-карту з відомими поганими секторами набагато складніше (або неможливо), ніж я сподівався, ставлячи питання. Хоча зараз це виходить за рамки моїх можливостей, це, як видається, є найбільш контрольованим і технічно перспективним підходом, за яким може йти @Olafm. Налаштування проміжного обладнання для перехоплення та «пошкодження» даних у будь-якому заздалегідь визначеному секторі під час передачі даних здається хорошим підходом.
Gabe Krause

15

Я б пішов на ebay / aliexpress і придбав найдешевшу SD-карту, яку я можу знайти в Китаї, таку, що "занадто гарна, щоб бути правдою". Вони часто бувають з несправними секторами або в програмному забезпеченні набагато більше, ніж є насправді. Так чи інакше, вам слід отримати несправну SD-карту, яку використовувати для тестування.


Цікавий підхід, але як би ви записували до поганих областей, щоб перевірити вплив поганих блоків на збережений код?
fixer1234

@ fixer1234, у мене була одна з цих карт SD, яка сказала, що вона є 32 Гб, але насправді це лише 128 Мб. Я помістив його в камеру і міг робити фотографії понад 128 Мб, але тільки перші фотографії можна було прочитати назад. Решта була внесена до списку, але була прочитана назад як зламана. Здогадайтесь, саме так вони хочуть, щоб ви спочатку помітили проблеми з карткою, коли скаржитися пізно ...
GuzZzt

11

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

Я в кінцевому підсумку отримав ідентичну SD-карту марки / розміру і написав власний спеціальний дамп необроблених даних та відновив утиліту для копіювання даних із поганої карти на хорошу. Кожен раз, коли утиліта потрапляє на поганий сектор, вона повторно намагатиметься кілька разів перед тим, як записати всі нулі для цього сектору, і замість того, щоб відмовлятися і зупинятись, ігнорувати збій і переходити до наступного сектора. Повторні спроби були зроблені, оскільки я також зауважив, що в деяких секторах все ще спостерігається близько 40% успішності читання. Як тільки дані з’явилися на новій карті SD, засоби відновлення, які раніше не працювали, бездоганно працювали з мінімальними втратами / пошкодженням даних. Загалом було відновлено близько 98% усіх файлів. Ряд попередньо видалених елементів також було відновлено, оскільки насправді нічого не видалено - просто позначене як таке і повільно перезаписане. Те, що почалося як трохи нудне вправлення відновлення даних, стало одним із моїх найбільш пам’ятних та цікавих проектів з розробки персонального програмного забезпечення. У випадку, якщо вам було цікаво, мати була в захваті.

У будь-якому випадку ця історія свідчить про те, що фізичне пошкодження SD-карти можливо фізично пошкодити таким чином, що дані все ще є доступними, але мають сектори, які лише ледве функціонують, і все, що намагається прочитати з неї, має труднощі з цим. Пластик SD-карти має тенденцію бути досить легким, тому згинання або розрізання деяких дешевих може зробити це. Ваш пробіг може відрізнятися.

Ви також можете запитати в деяких місцях відновлення даних у вашому регіоні. Оскільки вони спеціалізуються на відновленні даних з різних несправних або несправних пристроїв, вони повинні мати корисні введення / підказки і навіть можуть мати під рукою кілька попередньо завантажених SD-карт (наприклад, для навчальних цілей), які ви могли отримати від них.


2
Ви випустили цю утиліту в Інтернеті? Це було б чудово додати до мого арсеналу.
Плоні

1
На даний момент, мабуть, він би навіть не функціонував належним чином, враховуючи марш прогресу технології (можливо, навіть не компілюється) та низькорівневі системні дзвінки, які я використовував. Також є пара сучасних криміналістичних приладів / інструментів для клонування диска з відкритим кодом, які я б більше спробував використати спочатку, ніж намагатися витягнути зі старого програмного забезпечення моє старе програмне забезпечення.
CubicleSoft

Я думаю, що ви, мабуть, можете просто надати деякі параметри, щоб ddзмусити його вести себе подібним чином, як нині. Я не впевнений, хоча.
wizzwizz4

@ wizzwizz4, подивіться на ddrescue.
hildred

"Крім того, засоби криміналістичних даних тоді коштували цілий капітал." Я майже впевнений, що все ще роблять.
jpmc26

5

Ця відповідь є розширенням на коментар @Ruslan

  1. Заповніть вашу SD-карту приблизно до 99,9%
  2. Неперервно переписуйте вміст решти 0,1% (Write A -delete-write B-delete - Write A ...)
  3. Перевіряйте (періодично), чи вже ви зламали карту

Можлива альтернатива:

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


6
Заповнення картки на 99% не допоможе, оскільки вся мета вирівнювання зносу полягає у запобіганні саме такого роду передчасних пошкоджень. Фізичне пошкодження карти майже напевно призведе до картки, яка більше не ініціалізується.
Дмитро Григор’єв

2
@DmitryGrigoryev Яким чином носіння вирівнювання буде корисною (у цьому випадку перешкодою), якщо карта не має набагато більше пам'яті, ніж її офіційна ємність?
іспіро

12
@ispiro Наприклад, при наступному перезаписі сектора з високою кількістю записів його вміст може бути замінено сектором з низьким числом запису.
Дмитро Григор’єв

1
@DmitryGrigoryev Якщо я правильно інтерпретую цю відповідь, повинні бути SD-карти, які не носять lvling: electronics.stackexchange.com/a/27626/16104
Dennis Jaheruddin,

1
@DennisJaheruddin Так, старша карта не робить цього. за допомогою цих карток досить багаторазово створювати / видаляти порожній файл, поки сектор в таблиці розподілу не зносить.
Дмитро Григор’єв

3

Ви можете спробувати ввести нестабільне джерело живлення або сигналізацію високої напруги.

Звичайна помилка в родині пристроїв, які я знаю, має сильну кореляцію між пошкодженням SD-карти та переривчастим контактом акумулятора.


3

Деякі старі картки SD з низькою ємністю (16 МБ) використовують флеш-чіпи в пакетах стилів TSOP / TSSOP. Майстерня, здатна переробляти SMT (якщо ви займаєтесь вбудованою роботою, можливо, у вас є така майстерність, інакше перевіряйте наявність невеликих компаній, які займаються ремонтом телефону / ноутбука на рівні дошки), можливо, можна відокремити та повторно приєднати цей чіп, щоб його можна було прочитати та записати сирий (включаючи коди ECC) з програмістом пристрою.

Але майте на увазі, що ви будете в основному тестувати:

  • Як ваш пристрій попрацює з можливими відхиленнями / гикавками, що вводяться шляхом внутрішньої корекції помилок

і в гіршому випадку

  • як ваш пристрій поводиться з термінально несправною SD-карткою.

Якщо ви просто хочете перевірити, як з будь-якої причини з SD-карти поводиться з нестабільною поведінкою, мабуть, найкраще просто ввести електричний шум в лінії інтерфейсу (наприклад, встановивши перемикач шини FET між ними і випадково перемикаючись на мить це джерело безглуздих сигналів (правдивих електричних рівнів, хоча).


Невимірювані SD-карти, які не мають термінів, не генерують "електричного шуму", вони просто повертають коди помилок для операцій запису.
Дмитро Григор'єв

2

Пов’язаний з відповіддю OlafM, але інший: ви можете запрограмувати власний мікроконтролер, щоб говорити протокол SD-карти, а потім імітувати будь-яку поведінку, яку ви бажаєте.


1

Область завантаження основного завантаження FAT32, мабуть, є найбільш схильною до зловживань, оскільки на логічному рівні завжди потрібно перебувати в одному місці. (Можливо, це вирішується шляхом м'якого перекомпонування поганих секторів, але я дещо скептично налаштований на все обладнання.) Отже, ви можете запустити sfdiskцикл і побачити, чи зможете ви його зрушити таким чином.

Але я прошу вас зробити все можливе, щоб поліпшити надійність обладнання, а не намагатися обробляти погане обладнання в програмному забезпеченні. Проблема полягає в тому, що SD-карти виходять з ладу всілякими дивними способами. Вони стають нечитабельними, стають неписячими, дають вам погані дані, вони вичерпуються під час операцій тощо. Спрогнозувати всі способи виходу карти з ладу дуже важко.

Ось один з моїх улюблених збоїв, "режим великих даних":

поганий SD підроблені великі дані

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

Ваша перша лінія захисту - використовувати розв'язувальну частину eMMC з реальним аркушем відомого виробника замість знімної SD-карти. Так, вони коштують дорожче за ГБ, але частина буде у виробництві довший період часу, і принаймні ви знаєте, що отримуєте. Паяння частини вниз також дозволяє уникнути цілого ряду можливих проблем (картки, вибиті під час запису, поганий електричний контакт тощо) зі знімною карткою.

Якщо ваш продукт потребує знімного сховища, або просто занадто пізно щось змінювати, то розгляньте або витратити зайві гроші на картки "промислового" класу, або розглядайте їх як одноразові предмети. Ми робимо (під Linux) fsckкарту під час завантаження та переформатуємо її, якщо повідомляються про помилки, оскільки переформатування є прийнятним у цьому випадку використання. Тоді ми fsckзнову. Якщо він все ще повідомляє про помилки після переформатування, ми його RMA і замінюємо обладнання на більш новий варіант, який використовує eMMC.

Удачі!


Я дав тобі великі пальці. Я багато використовую SD-карти, і я один раз проводжу помилку. Я ніколи не замислювався над цим, але на власному досвіді мої невдалі картки виявляли симптоми невдалого FAT до того, як вони остаточно стали нікчемними. Я думаю, ви тут на чомусь :) Тож просто створення та видалення файлів повинно випробовувати FAT.
jwzumwalt

1

Можливо, це не той напрямок, який ви хотіли, але я виявив, що видалення моєї SD-карти під час читання з неї радіо чи ноутбука гарантує розбиття SD-карти приблизно в 1/5 або 1/10 разів. Здається, картки не спрацьовують, відключаючи живлення під час читання і, імовірно, записують. Прочитавши коментарі Роберта Калхуна нижче, це змушує мене повірити, що це може завдати шкоди FAT. Хоча я не знаю, чому саме читання спричиняє збій - не повинно бути ніяких записів?


це може пошкодити ФС, але не впевнений, що насправді створить погані сектори
akostadinov

Я можу вам сказати, адже вона розбиває карту і вимагає переформатування. Я робив це багато разів за допомогою SD-карт, пиріг із малиною, ноутбук та кілька моїх домашніх пристроїв.
jwzumwalt

2
Потрібен переформатування! = Завдає шкоди секторам . Файлова система, так. Можливо, сектори.
wizzwizz4

1

Якщо ваша sd-карта відформатована FAT32, ви можете скопіювати два жири та відзначити сектор як поганий правильним шістнадцятковим кодом. Це лише хитрість, якщо ви хочете логічно перевірити програмне забезпечення, яке повинно знайти поганий сектор саме в цьому місці; це також не зашкодить вашій SD-картці, переформатування поверне її до нормального стану.


1
Ласкаво просимо до Супер Користувача! Це здається цікавим підходом - ви могли б пояснити, як конкретно виконати шестнадцятковий редагування? Дякую.
Бен N

Я думаю, що команда Linux hdparm зробить трюк: це дозволить вам зберегти деякий сектор, який ви зможете згодом відредагувати, а потім записати на свою карту. вам потрібно знайти документацію про vfat та man hdparm. Вибачте, я ніде не близький до комп'ютера з Windows.
Еміль Де Фавас

--make-bad-sectorПрапор виглядає багатообіцяючим! Однак я не можу сказати, чи це буде працювати лише в системі Linux, яка спочатку виконує цю команду. Я сподіваюся, що команда hdparm --make-bad-sector 20000 /dev/sd#якось зробить сектор 20000 поганим і буде виявлена ​​як погана на моєму вбудованому апаратному пристрої, на якому не працює Linux. Будь-які думки?
Гейб Краузе

0

Цікаво, чи може бути створений скрипт з поганими блоками Linux для того, щоб виконувати руйнівний тест на одному секторі повторно протягом декількох годин.

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

Але ви можете легко працювати badblocks -wв циклі , поки він не викликає деякі погані блоки з'являтися. Щось подібне повинно працювати:

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

припускаючи, що badblocks повертає 0, якщо не було виявлено поганих блоків, і ≠ 0 в іншому випадку (сторінка man не говорить, і я не перевірив вихідний код.)


-1

Зазвичай за допомогою SD / uSD карт вони реалізують рівень зносу, тому це може бути досить важким. Залежно від типу (одношарова клітинка, багатошарова, TLC, 3D-NAND тощо) цикл запису, необхідний для її розбиття, достатній для вичерпання секторного пулу, може бути в декількох туберкульозах.

Я насправді перевірив це за допомогою Pro Duo 4GB, 64GB та 256GB Pro Duo, SSD та thumbdrive, 64 Гб K --- s --- з використанням 4 мікросхем мікрона 16 Гб тривав близько 3,84 ТБ до того, як не вдалося з однією м'якою помилкою в області FAT . Використання 256 ГБ тривало трохи менше, але, можливо, без прямого доступу до чіпа, можливо, він написав, можливо, 5 ТБ, перш ніж він нарешті видався з корупцією MBR, але не було зрозуміло, якщо контролер спричинив це як добре працює в режимі USB3, але в USB2 було більше збоїв під час перезавантаження і це теж дуже гаряче бігало. 4GB Duo не вдалося прочитати під час копіювання даних, знову не можу бути впевненим, але це, можливо, 6 років використання, і камера також показала повідомлення "Відновлення". Між іншим чином, зміна напруги живлення під час запису зробить її невдалою, швидше. Мій MicroSD з 128 Гб вийшов з ладу приблизно через 2 роки використання з подібними симптомами,

Видалено нерелевантні замітки про рентгенівські експерименти.


1
Вже є кілька відповідей, які допомагають знищити конкретних ректорів. Ваша пропозиція щодо знищення випадкових не дає нічого зайвого.
Máté Juhász
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.