Пошкодження файлової системи на 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, тому я не можу перевірити інший. Відома проблема? Зламане обладнання?


Виміряйте напругу живлення - переконайтесь, що вона дійсно 5В та стабільна. Може бути спричинене несправним таран чи щось. Чи можете ви запустити спогади на ньому?
Джон Ла Рой

Зараз у мене немає вольтметра (я не дуже апаратний хлопець). Після USB-клавіатури, зарядного пристрою та кабелю HDMI цей маленький і дешевий Pi стане досить дорогим, якщо мені доведеться придбати вольтметр.
борцмейєр

Чи не повідомлення "Час очікування перерви апаратного забезпечення" є чіткою ознакою, що з читачем SDcard не так?
борцмейєр

Я не знаходжу зображення з memtest. Google мені не подобається або я недостатньо яскравий для цього. Будь-який вказівник?
борцмейєр

Велике спасибі, @ oliver-salzbug, за внесені зміни, і вибачте за виправлений результат, який я включив.
борцмейєр

Відповіді:


5

Можливо, незабаром відповісти на моє власне питання, але до цього часу найбільш вдалим був варіант:

over_voltage=2

До цих пір (це лише кілька днів), здається, що краще (ще немає корупції чи таймауту карти).

Я не є експертом з питань енергетики, тому, перш ніж використовувати це на власному Pi, будь ласка, проведіть деякі дослідження.

Це означає, що мій Пі має проблему з напругою, як це запропонував @gnibbler?


2
Прийняв мою власну відповідь, бо, здається, працює, а інші пропозиції цього не зробили.
борцмейер

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

2

Є справді хороший шанс, що у вас є проблема з оперативною пам’яттю, і, можливо, ви не відчуваєте зависання ядра, оскільки архітектура Raspberry Pi якось толерантна до певної ступеня пошкодження пам’яті .

Перше, що потрібно зробити - це змінити поділ пам’яті, зменшивши відеопам'ять до мінімуму, щоб максимально збільшити об’єм доступної оперативної пам’яті ( 240 МБ оперативної пам’яті та 16 МБ VRAM ). Я пропоную почати з нового raspbian, щойно скопійованого в SD. Потім ви можете встановити та запустити memtester.

sudo aptitude install memtester

Тут є невеликий підручник про те, як запустити memtester, і це сторінка man. Командний рядок повинен мати щось на зразок:

sudo memtester 200 2

Де 200сума МБ для тестування та 2кількість пропусків. Пам’ятайте, що це рішення працює виключно userspace, тому обсяг вільної пам’яті менший від загальної кількості доступної пам’яті. Якщо вам потрібно точне число, введіть:

cat /proc/meminfo

Однак, враховуючи, що проблема не у ваших картках пам'яті, а Raspberry Pi є досить "монолітним", мабуть, єдиним доступним варіантом буде повернення Pi до вашого торговельного посередника.


У мене завжди було розділено пам'ять на 240/16 (я використовую цю машину для моніторингу мережі, а не медіа-центр).
bortzmeyer

1

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

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.