Меня поражает, что мне удалось идеально восстановить SD-карту, ddrescue
которая использовалась в RPi довольно долгое время. Но когда я сканирую SD-карту, badblocks -nvs
плохие блоки появляются с сумасшедшей скоростью. (Кстати, до начала спасательной операции RPi вел себя довольно хаотично.)
Может ли кто-нибудь объяснить мне, почему ddrescue
мне удалось так удачно восстановить весь контент, и в то же время badblocks
буквально кричать на меня, что эта SD-карта сломана?
решение1
badblocks
ищет области (блоки/сектора) диска, которые выходят из строя (есть ошибки чтения); которые включают области, которые все еще можно прочитать (хотя может потребоваться более одной попытки чтения; т.е. портятся/умирают),
ddrescue
однако ожидается, что данные будут восстановлены, что позволяет повторно считывать сектора (игнорирование ошибок чтения) ЕСЛИ не будет достигнуто определенное значение --max-error-count
...
т. е. эти два инструмента имеют совершенно разные цели/применения.
ddrescue
с радостью повторит попытку, пока --max-error-count
не будет достигнуто, как уже было сказано... тогда как as badblocks
ищет неисправные блоки, поэтому количество ошибок чтения равно 1плохойновости в его коде, так как этоупреждающий инструментиспользуется для обнаружения того, что может быть неисправным носителем. Упреждающий инструмент, имеющий гораздо более высокую 'бар' чем используется ddrescue
, который намеренно игнорирует любые получаемые им 'ошибки'.
Ваши варианты:
- проверьте карту на другом устройстве, чтобы убедиться, что у вас исправный картридер и т. д.
Что-то, вероятно, подозрительно с картой,илиВаше оборудование, используемое для чтения карты, имеет какую-то проблему (который может быть даже блоком питания, так как даже хорошие компоненты могут вести себя неправильно при подаче плохого питания)