Corruzione del filesystem sulla scheda SD


19

Se uso un po 'il Pi, presto appare la corruzione del filesystem.

Ad esempio, questo file è stato cambiato in un altro:

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

O è /var/lib/dpkg/info/fake-hwclock.listdiventato un file binario, il che significa che dpkg non può più funzionare:

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)

fscksul filesystem trova molti errori e invia decine di file 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 visualizza quelli che sembrano errori I / O:

[   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

Ho provato con quattro diverse schede SD, di SanDisk SDHC 16 GB e Duracell SDHC 16 GB. Quindi, non sembra essere la carta.

Ho anche provato con Raspbian 16-08-2012-wheezy e ArchLinux 13-06-2012. Entrambi hanno lo stesso problema, quindi presumo che non sia un bug nel sistema operativo.

Seguendo i consigli di @gnibbler e @Avio, ho eseguito memtester (che, a differenza di memtest86 sul PC, esegue il kernel e quindi non è in grado di testare tutta la RAM) e non ha riscontrato alcun problema. "memtester 200 2" -> tutto OK

Dopo la discussione in http://www.raspberrypi.org/phpBB3/viewtopic.php?f=29&t=6201&start=400 , ho provato da una nuova immagine con un config.txt scritto per un po 'di underclocking:

core_freq 240
arm_freq 650
sdram_freq 350

ma ha aggravato il problema (molti timeout sulla scheda)

Ho solo un Raspberry Pi, quindi non posso verificare con un altro. Problema noto? Hardware rotto?


Misurare la tensione di alimentazione - assicurarsi che sia davvero 5V e stabile. Potrebbe essere causato da ram difettoso o qualcosa del genere. Puoi eseguire memtest su di esso?
John La Rooy,

Non ho un voltmetro in questo momento (non sono molto un ragazzo hardware). Dopo la tastiera USB, il caricabatterie e il cavo HDMI, questo Pi piccolo ed economico diventerà piuttosto costoso se devo acquistare un voltmetro.
Bortzmeyer,

Il messaggio "Timeout in attesa di interruzione hardware" non è una chiara indicazione che qualcosa non va nel lettore di schede SD?
Bortzmeyer,

Non trovo un'immagine con memtest. A Google non piaccio o non sono abbastanza brillante per questo. Qualche puntatore?
Bortzmeyer,

Mille grazie, @ oliver-salzbug, per le modifiche, e scusate per l'output alterato che ho incluso.
Bortzmeyer,

Risposte:


5

Potrebbe essere presto per rispondere alla mia domanda ma, fino ad ora, l'opzione che ha avuto più successo è stata:

over_voltage=2

Fino ad ora (sono solo pochi giorni), sembra meglio (non c'è ancora corruzione o timeout della carta).

Non sono un esperto di problemi di potenza, quindi, prima di utilizzare questo sul tuo Pi, fai qualche ricerca.

Significa che il mio Pi ha un problema di tensione, come suggerito da @gnibbler?


2
Ho accettato la mia risposta perché sembra funzionare e gli altri suggerimenti no.
Bortzmeyer,

1
Sostituisci l'alimentatore con uno buono che carica i moderni telefoni cellulari e fornisce 1A o più.
avra il

2

C'è davvero una buona possibilità che tu abbia un problema con la RAM e, forse, non stai vivendo blocchi del kernel perché l'architettura del Raspberry Pi è in qualche modo tollerante a un certo grado di corruzione della memoria .

La prima cosa da fare è cambiare la suddivisione della memoria, riducendo al minimo la memoria video, per massimizzare la quantità di RAM disponibile ( 240 MB di RAM e 16 MB di VRAM ). Suggerisco di ricominciare da capo con un nuovo raspbiancopiato sul SD. Quindi è possibile installare ed eseguire memtester.

sudo aptitude install memtester

Ecco un piccolo tutorial su come avviare memtester, e questa è la pagina man. La riga di comando dovrebbe essere simile a:

sudo memtester 200 2

Dove si 200trova la quantità di MB da testare e 2il numero di passaggi. Ricorda che questa soluzione funziona puramente userspace, quindi la quantità di memoria libera è inferiore alla quantità di memoria disponibile totale. Se si desidera il numero esatto, digitare:

cat /proc/meminfo

Tuttavia, dato che il problema non è nelle schede di memoria e che il Raspberry Pi è piuttosto "monolitico", probabilmente l'unica opzione disponibile sarà quella di restituire il Pi al tuo rivenditore.


Ho sempre avuto la suddivisione della memoria impostata su 240/16 (utilizzo questa macchina per il monitoraggio della rete, non per il media center).
Bortzmeyer,

1

Questo è un colpo lungo, ma ogni volta che corro rpi-updateper aggiornare il firmware il file system viene corrotto in qualche modo tale da non poter più creare un'immagine della scheda SD usando dd (vedi la mia domanda ). Ho notato per la prima volta quando provavo ad aggiornare manualmente il firmware da installare ffmpege proprio ora quando omxplayer cercava di aggiornare il firmware.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.