Повреждение файловой системы на SD-карте

19

Если я немного использую Pi, скоро появится повреждение файловой системы.

Например, этот файл был изменен на другой:

$ ls -alt  /etc/apt/apt.conf.d
total 16
lrwxrwxrwx 1 root root   13 Oct  2 22:18 50raspi -> ../init.d/ntp

Или /var/lib/dpkg/info/fake-hwclock.listстал бинарным файлом, что означает, что dpkg больше не может работать:

dpkg: unrecoverable fatal error, aborting:
 files list file for package 'fake-hwclock' is missing final newline
E: Sub-process /usr/bin/dpkg returned an error code (2)

fsckв файловой системе находит много ошибок и отправляет десятки файлов по адресу lost+found:

Pass 1D: Reconciling multiply-claimed blocks
(There are 34 inodes containing multiply-claimed blocks.)

File /etc/fake-hwclock.data (inode #26, mod time Thu Aug 16 02:20:47 2012) 
  has 1 multiply-claimed block(s), shared with 1 file(s):
        ... (inode #30, mod time Thu Aug 16 02:20:47 2012)

...

Inode 30 ref count is 1, should be 3.  Fix? yes

dmesg отображает то, что выглядит как ошибки ввода / вывода:

[   49.082758] mmc0: final write to SD card still running
[   59.088233] mmc0: Timeout waiting for hardware interrupt - cmd12.
[   59.089411] mmcblk0: error -110 sending stop command, original cmd response 0x900, card status 0x900

Я пробовал использовать четыре разных SD-карты: SanDisk SDHC 16 ГБ и Duracell SDHC 16 ГБ. Таким образом, это не похоже на карту.

Я также попробовал с Raspbian 2012-08-16-wheezy и ArchLinux 13-06-2012. Оба имеют одинаковую проблему, поэтому я предполагаю, что это не ошибка в ОС.

Следуя советам @gnibbler и @Avio, я запустил memtester (который, в отличие от memtest86 на ПК, работает после ядра и, следовательно, не может проверить всю оперативную память), и он не сообщил о проблемах. "memtester 200 2" -> все ок

После обсуждения в http://www.raspberrypi.org/phpBB3/viewtopic.php?f=29&t=6201&start=400 я попытался создать новый образ с файлом config.txt, написанным для небольшого разгона:

core_freq 240
arm_freq 650
sdram_freq 350

но это усугубило проблему (много тайм-аутов на карте)

У меня есть только один Raspberry Pi, поэтому я не могу проверить с другим. Известная проблема? Сломанное оборудование?

bortzmeyer
источник
Измерьте напряжение питания - убедитесь, что оно действительно 5 В и стабильно. Может быть вызвано неисправным бараном или что-то. Можете ли вы запустить memtest на нем?
Джон Ла Рой
У меня сейчас нет вольтметра (я не очень разбираюсь в железе). После клавиатуры USB, зарядного устройства и кабеля HDMI этот маленький и дешевый Pi станет довольно дорогим, если мне придется покупать вольтметр.
bortzmeyer
Разве сообщение «Тайм-аут в ожидании аппаратного прерывания» не является четким указанием на то, что что-то не так с устройством чтения карт SD?
bortzmeyer
Я не нахожу изображение с memtest. Гугл не любит меня или я недостаточно умён для этого. Любой указатель?
bortzmeyer
Большое спасибо, @ oliver-salzbug, за правки и извините за искаженный вывод, который я включил.
bortzmeyer

Ответы:

5

Возможно, скоро ответят на мой вопрос, но до сих пор наиболее удачным был вариант:

over_voltage=2

До сих пор (это всего несколько дней), кажется, лучше (пока нет коррупции или тайм-аута карты).

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

Означает ли это, что у моего Пи проблемы с напряжением, как подсказывает @gnibbler?

bortzmeyer
источник
2
Принял мой собственный ответ, потому что, кажется, работает, а другие предложения не.
bortzmeyer
1
Замените блок питания хорошим, который заряжает современные мобильные телефоны и обеспечивает реальную 1А или более.
Авра
2

Существует очень хороший шанс, что у вас есть проблемы с оперативной памятью, и, возможно, вы не испытываете зависаний ядра, потому что архитектура Raspberry Pi каким-то образом терпима к определенной степени повреждения памяти .

Первое, что нужно сделать, это изменить разделение памяти, уменьшив видеопамять до минимума, чтобы максимально увеличить объем доступной оперативной памяти ( 240 МБ ОЗУ и 16 МБ видеопамяти ). Предлагаю начать заново с новой raspbian, только что скопированной SD. Затем вы можете установить и запустить memtester.

sudo aptitude install memtester

Здесь есть небольшое руководство по запуску memtester, и это страница руководства. Командная строка должна выглядеть примерно так:

sudo memtester 200 2

Где 200количество МБ для тестирования и 2количество проходов. Помните, что это решение работает исключительно в userspace, поэтому объем свободной памяти меньше, чем объем общей доступной памяти. Если вы хотите точное число, введите:

cat /proc/meminfo

Однако, учитывая, что проблема не в ваших картах памяти, а Raspberry Pi довольно «монолитный», вероятно, единственный доступный вариант - вернуть Pi вашему реселлеру.

Avio
источник
У меня всегда было разделение памяти на 240/16 (я использую эту машину для мониторинга сети, а не медиацентра).
bortzmeyer
1

Это долгий путь, но каждый раз, когда я запускаю rpi-updateобновление прошивки, файловая система как-то повреждается, так что я больше не могу создать образ SD-карты с помощью dd (см. Мой вопрос ). Я впервые заметил, когда пытался обновить прошивку вручную, ffmpegи только сейчас, когда omxplayer попытался обновить прошивку.

PUK
источник