Sistema de archivos corrupto en la tarjeta SD

19

Si uso el Pi un poco, la corrupción del sistema de archivos aparece pronto.

Por ejemplo, este archivo fue cambiado a otro:

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

O se /var/lib/dpkg/info/fake-hwclock.listconvirtió en un archivo binario, lo que significa que dpkg ya no puede funcionar:

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)

fscken el sistema de archivos encuentra muchos errores y envía docenas de archivos a 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 muestra lo que parecen errores de E / S:

[   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

Probé con cuatro tarjetas SD diferentes, de las marcas SanDisk SDHC 16 GB y Duracell SDHC 16 GB. Entonces, no parece ser la carta.

También probé con Raspbian 2012-08-16-wheezy y ArchLinux 13-06-2012. Ambos tienen el mismo problema, así que supongo que no es un error en el sistema operativo.

Siguiendo los consejos de @gnibbler y @Avio, ejecuté memtester (que, a diferencia de memtest86 en la PC, se ejecuta después del núcleo y, por lo tanto, no puede probar toda la RAM) y no informó ningún problema. "memtester 200 2" -> todo bien

Después de la discusión en http://www.raspberrypi.org/phpBB3/viewtopic.php?f=29&t=6201&start=400 , probé desde una nueva imagen con un config.txt escrito para un poco de overclocking:

core_freq 240
arm_freq 650
sdram_freq 350

pero empeoró el problema (muchos tiempos de espera en la tarjeta)

Solo tengo una Raspberry Pi, así que no puedo consultar con otra. Problema conocido? Hardware roto?

bortzmeyer
fuente
Mida el voltaje de alimentación; asegúrese de que realmente sea de 5V y estable. Podría ser causado por un carnero defectuoso o algo así. ¿Puedes ejecutar memtest en él?
John La Rooy
No tengo un voltímetro en este momento (no soy un experto en hardware). Después del teclado USB, el cargador y el cable HDMI, este Pi pequeño y barato se volverá bastante costoso si tengo que comprar un voltímetro.
bortzmeyer
¿No es el mensaje "Tiempo de espera en espera de interrupción de hardware" una indicación clara de que algo está mal con el lector de tarjetas SD?
bortzmeyer
No encuentro una imagen con memtest. A Google no le gusto o no soy lo suficientemente brillante para eso. Cualquier puntero?
bortzmeyer
Muchas gracias, @ oliver-salzbug, por las ediciones, y lo siento por el resultado destrozado que incluí.
bortzmeyer

Respuestas:

5

Puede ser que pronto responda mi propia pregunta, pero, hasta ahora, la opción que tuvo más éxito fue:

over_voltage=2

Hasta ahora (son solo unos pocos días), parece mejor (sin corrupción ni tiempo de espera de la tarjeta todavía).

No soy un experto en problemas de energía, así que, antes de usar esto en su propio Pi, investigue un poco.

¿Significa que mi Pi tiene un problema de voltaje, como lo sugiere @gnibbler?

bortzmeyer
fuente
2
Acepté mi propia respuesta porque parece funcionar y las otras sugerencias no.
bortzmeyer
1
Reemplace la fuente de alimentación por una buena que cargue teléfonos móviles modernos y proporcione 1A o más reales.
avra
2

Existe una gran posibilidad de que tenga un problema con la RAM y, tal vez, no experimente congelaciones del kernel porque la arquitectura de la Raspberry Pi es de alguna manera tolerante a un cierto grado de corrupción de la memoria .

Lo primero que debe hacer es cambiar la división de memoria, reduciendo la memoria de video al mínimo, para maximizar la cantidad de RAM disponible ( 240 MB de RAM y 16 MB de VRAM ). Sugiero comenzar de nuevo con un nuevo raspbian, recién copiado en el SD. Entonces puedes instalar y ejecutar memtester.

sudo aptitude install memtester

Aquí hay un pequeño tutorial sobre cómo iniciar memtester, y esta es la página del manual. La línea de comando debería ser algo como:

sudo memtester 200 2

¿Dónde 200está la cantidad de MB para probar y 2la cantidad de pases? Recuerde que esta solución funciona exclusivamente userspace, por lo que la cantidad de memoria libre es menor que la cantidad de memoria total disponible. Si desea el número exacto, escriba:

cat /proc/meminfo

Sin embargo, dado que el problema no está en sus tarjetas de memoria y que la Raspberry Pi es bastante "monolítica", probablemente la única opción disponible será devolver la Pi a su distribuidor.

Avio
fuente
Siempre tuve la división de memoria configurada en 240/16 (uso esta máquina para la supervisión de la red, no para el centro de medios).
bortzmeyer
1

Esta es una posibilidad remota, pero cada vez que corro rpi-updatepara actualizar el firmware, el sistema de archivos se corrompe de alguna manera, de modo que ya no puedo crear una imagen de la tarjeta SD usando dd (vea mi pregunta ). Me di cuenta por primera vez al intentar actualizar manualmente el firmware para instalar ffmpegy justo ahora cuando omxplayer intentó actualizar el firmware.

puk
fuente