Является ли моя Raspberry Pi постоянно повреждает SD-карты?

26

Моя Raspberry Pi работала нормально два месяца. Затем некоторые файлы /usr/binбыли повреждены и было много ошибок при перезагрузке.

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

sudo dd if=~/2013-02-09-wheezy-raspbian.img of=/dev/mmcblk0 bs=4M

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

Карты, похоже, застряли в состоянии «только для чтения» ddи не fdiskоказывают никакого влияния.

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

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

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

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

Если я пытаюсь отформатировать карту с моей камерой, он говорит «ошибка формата».

Когда я вставляю SD-карту, dmesg показывает

...
[52254.614980] end_request: I/O error, dev mmcblk0, sector 1696056
[52254.614983] end_request: I/O error, dev mmcblk0, sector 1696064
[52254.614987] end_request: I/O error, dev mmcblk0, sector 1696072
[52254.615058] Aborting journal on device mmcblk0p2-8.
...
[52666.031183] journal commit I/O error
[52666.031186] journal commit I/O error
....
[52666.031220] journal commit I/O error
[52666.031227] journal commit I/O error
[52666.083902] EXT4-fs error (device mmcblk0p2): ext4_put_super:819:     
Couldn't clean up the journal
[52666.083910] EXT4-fs (mmcblk0p2): Remounting filesystem read-only

Обновление: мне удалось записать свежий образ на вторую SD-карту, но первая карта (Kingston 8 ГБ, класс 4, отсутствует в списке поддерживаемых) все еще не работает. Поскольку это только одна карта, которая кажется сломанной, я не настолько обеспокоен, что это будет продолжаться. Я думаю, это был разовый.

Моя Raspberry Pi сейчас редко загружается. Я проверил напряжение на Raspberry Pi, и оно довольно низкое, поэтому я подозреваю, что это является причиной моих проблем. Я заказал новый блок питания. Однако я не знаю, почему Raspberry Pi так долго работал.

Томас Ринн
источник
1
Не могли бы вы подтвердить, что, когда вы пытаетесь записать что-то на сломанные карты, вы используете другой компьютер с устройством чтения SD-карт, который работает нормально для других карт? Не могли бы вы предоставить ddкоманду, которую вы используете для записи на карту? Не могли бы вы проверить dmesg, есть ли какие-либо ошибки ввода-вывода в вашей карте?
Кшиштоф Адамски
Если вы собираетесь отключить питание Пи, убедитесь, что оно происходит внезапно, а не медленно. Медленное вытягивание шнура может привести к повреждению ваших SD-карт. Я настоятельно рекомендую приобрести источник питания с выключателем питания. Однажды я начал использовать выключатель питания вместо того, чтобы просто тянуть шнур питания от Pi, у меня никогда не было поврежденной SD-карты. Кроме того, ваш выбор источника питания очень важен. Убедитесь, что оно составляет не менее 1000 мА и имеет постоянный выход. Я также не буду питать Pi от того же USB-концентратора, который вы используете для подключения его к устройствам.
Джерри Ганьон
Была такая же проблема, абсолютно странная коррупция, заставляющая загружаться дерьмом. После получения выделенного сертифицированного Raspberry Pi блока питания и новой SD-карты все мои проблемы исчезли. Старая SD-карта может быть снова использована только после обнаружения компьютера с Windows и запуска бесплатного низкоуровневого форматера из ассоциации SD. Они утверждают, что ни один блок форматирования на уровне блоков не может производить действительно низкоуровневое форматирование, необходимое для полного восстановления проблемных SD-карт. YMYV
ограбить
У меня три Raspberry Pi's, и у меня была такая же проблема. Теперь у меня две SD-карты стали поврежденными и доступными только для чтения, и никакие хитрости с использованием fsck, fdisk или любых других утилит в Linux или Windows не устранили их. По какой-то причине я решил выбросить одну из карт в свою камеру Samsung и попробовать отформатировать ее. К моему удивлению и восхищению, функция форматирования в камере восстановила карту, и ее снова можно использовать. К сожалению, я не могу восстановить другую карту с этим, поскольку это - полноразмерная SD-карта, а не MicroSD с адаптером, и у моей камеры есть слот MicroSD. Камера Samsung ST72, просто к вашему сведению.
Келли Мак

Ответы:

11

Проблемы и потенциальный ущерб

Да, отключение Raspberry Pi путем вытягивания шнура может привести к повреждению . На самом деле, был ответ, который подробно описал эту проблему. Эта проблема не относится к Raspberry Pi. Отсоединение кабеля питания без предупреждения для ОС может вызвать проблемы - таким образом я повредил свое ядро ​​Windows.

Как исправить

  1. макинтош

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

  1. Windows

Используйте программное обеспечение Win32 Disk Imager . Снова удалите разделы, восстановите их, а затем заново создайте образ карты.

  1. Linux

Чтобы сбросить SD для чтения-записи, введите hdparm -r0 /dev/xxxв терминал. Возможно, вам придется сначала удалить разделы.

Как избежать

С этого момента вы никогда не должны выключать Raspberry Pi, отключив его от сети . Вместо этого перейдите в консоль и введите:

sudo shutdown -h now

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

xxmbabanexx
источник
14
Насколько я знаю, невозможно повредить саму SD-карту, отключив питание. Однако возможно повреждение файловой системы на карте.
Кшиштоф Адамски
2
Большинство современных файловых систем являются журналирующими файловыми системами и не будут повреждены при потере мощности таким способом (хотя они могут потерять самые последние изменения). Однако карты памяти обычно лгут ядру о том, что было синхронизировано. Это приводит к повреждению файловых систем.
ДонГар
У меня были неожиданные перебои с питанием от моей SD-карты, где никакие объемы очистки и переизображения не "взялись бы", казалось, были поврежденные сектора, которые могли бы привести к сбою переустановки. Я должен был купить новую карту. Так что да, вы можете повредить саму карту.
Yamikuronue
Другой, более короткий способ выключить пи - это «sudo halt».
Матфея
Лучший способ переформатировать SD-карты в Windows и Mac OS - использовать SD Formatter SD Association . Это официальный способ, которым вы должны форматировать карты.
scruss
5

Проблема в том, что вы не можете перейти к консоли, поскольку Raspberry Pi зависает, SSH работает частично, но не принимает пароль, а WebIDE Adafruit зависает и не принимает ввод. Там нет выбора, кроме как вытащить вилку. Примерно в 25% случаев это работает, но неизбежно, что файловая система в конечном итоге будет повреждена. Ситуация ухудшается, даже несмотря на то, что загрузчик сбрасывает вас в ядро, он тоже завис, и вы ничего не можете напечатать, чтобы fsck-карта. Переосмысление означает потерю всей вашей работы. Нам определенно нужно лучшее решение.

user1718232
источник
2

Вы можете использовать 'hdparm -r0 / dev / xxx', чтобы сбросить его на чтение-запись. Лично мне пришлось удалить разделы и заново вставить SD-карту, чтобы иметь возможность использовать dd для копирования нового изображения на карту.

Стивен вербор
источник
Я пробовал это, но дд все еще блокирует. Я думаю, что карта должна быть сломана.
Томас Ринн
0

Есть лучшее решение - просто вставьте карту в ридер, подключенный к другой машине, и запустите fsck с этой машины [тогда надейтесь, что она работает!]. Конечно, реальная проблема заключается в том, чтобы в первую очередь запустить fsck - чего часто можно избежать, если правильно выключить машину, а не тянуть мощность, независимо от того, работает ли он без головы.

Просто я
источник
0

После неоднократного сбоя dd на SD-карте я использовал машину с Windows 7, чтобы удалить разделы и переформатировать в FAT32 . Только тогда ДД даст мне рабочий образ Raspberry Pi.

Теперь я часто запускаю следующее перед dd (или dcfldd) -ing новым образом:

time dcfldd if=/dev/zero of=/dev/sdc statusinterval=1 sizeprobe=of

Предполагающий источник /dev/zeroотметил, что этот процесс может сократить срок действия карты.

грабить
источник