Probleme mit der externen Festplatte - Kernel: Journal Commit I / O-Fehler

8

Ich habe Probleme, eine externe 3-TB-USB 2.0-Festplatte (mit eigener Stromversorgung) auf meinem Pi zu installieren.

Ich verwende ein 1,0-A-Ladegerät, um den Pi mit Strom zu versorgen. Ich schließe die Festplatte an einen aktiven Belkin-USB-Hub an und stecke diesen Hub dann in einen USB-Anschluss am Pi.

Kaufte die Festplatte neu und neu formatiert, ext3um die pi zu verwenden.

Die Festplatte lässt sich sowohl manuell mount [device] [dir]als auch automatisch problemlos verbinden und einbinden usbmountund funktioniert einwandfrei , solange ich auf dem Gerät / Laufwerk aktiv bin . Ich werde ein paar Stunden oder einen Tag später zum Pi zurückkehren und versuchen, am Mount-Punkt auf das Laufwerk zuzugreifen, und kann nicht am selben ( /dev/sda1) Speicherort auf das Laufwerk zugreifen . Wenn ich versuche, lsauf dem Mount-Punkt zu arbeiten, erhalte ich: ls: reading directory /media/usb0: Input/output errorund dies gilt für alle verbundenen Sitzungen:

Nachricht von syslogd @ raspberrypi am 16. November 10:46:40 ...
 Kernel: [32781.214102] Journal-Commit-E / A-Fehler

Nachricht von syslogd @ raspberrypi am 16. November 10:46:40 ...
 Kernel: [32781.226121] Journal Commit I / O-Fehler

Ich muss dann das Laufwerk wieder montieren. Manchmal stelle ich fest, dass sich der Gerätepfad von /dev/sda1zu geändert hat /dev/sdb1. Manchmal muss ich sogar das Laufwerk aus- / wieder einstecken.

Ich versuche jetzt herauszufinden, ob dies ein Stromversorgungsproblem ist (dem ich skeptisch gegenüber stehe), ein Festplattenproblem (wie die Festplatte, die in den Ruhemodus wechselt oder so) oder ein Kernal / Linux-Problem. Hat jemand irgendwelche Ideen?

AKTUALISIEREN

/var/log/messages: http://bit.ly/TYDYZR

ndmweb
quelle
Erfahrungsgemäß sind Inkonsistenzen bei externen Laufwerken auf die Stromversorgung zurückzuführen. Dies ist eine gute Beschreibung dessen, was der Fehler bedeutet
Jivings
Das dachte ich zuerst auch, aber ich versorge den Pi mit viel Strom und stecke die externe Festplatte in einen USB-Hub mit Stromversorgung und dann in den Pi, ohne dass ein anderes USB-Gerät angeschlossen ist. Nach stundenlanger Inaktivität bei der Rückkehr zum Pi ist die Festplatte nicht angeschlossen und ich erhalte E / A-Fehler.
ndmweb
Auch die externe Festplatte verfügt über eine eigene Stromversorgung, die an die Wand angeschlossen wird.
ndmweb

Antworten:

1

Ich habe genau das gleiche Problem. Die Art und Weise, wie ich dieses Problem gelöst (umgangen) habe, ist:

  1. Ich habe ein Startskript mit dem Namen /etc/init.d/mountmedia erstellt, das wie der folgende Code aussieht (weitere Details finden Sie hier http://www.debian-administration.org/articles/28 ).

! / bin / sh

# /etc/init.d/mountmedia
#

# Carry out specific functions when asked to by the system
case "$1" in
  start)
    echo "Mounting external drive... "
    mount /dev/sd*1 /media/data
    ;;
  stop)
    echo "Un-mounting external drive..."
    umount /media/data
    ;;
  *)    
    echo "Usage: /etc/init.d/mountmedia {start|stop}"
    exit 1
    ;;
esac
exit 0
  1. Dann habe ich einen Cronjob erstellt, um zu überprüfen, ob die Montierung nicht funktioniert, und ihn bei Bedarf erneut zu montieren. Hier ist mein Skript

! / bin / sh

filenumber=`ls /media/data/ | wc -l`
if [ "$filenumber" -lt 1 ]; then
    echo "mounting ..."
    sudo umount /media/data
    sudo mount /dev/sd*1 /media/data
fi
mohdyusuf
quelle
1

Ich habe ein ähnliches Problem: Die externe ext4-Festplatte wird anfangs mit dem Flag rw einwandfrei gemountet, wobei der Gerätestandort / dev / sda1 ist. Nach einiger Zeit der Inaktivität geht die Festplatte in den Ruhezustand und ist dann manchmal nicht mehr zugänglich. mount zeigt es als ro an und das Verzeichnis ist vollständig leer.

Wenn ich ein umount / mount mache, funktioniert das Laufwerk wieder wie erwartet, befindet sich aber jetzt unter / dev / sdb1 (was möglich ist, weil ich per UUID mounte). Ich gehe also davon aus, dass die zuvor vorgeschlagene Problemumgehung für mich funktioniert, aber sie ist etwas hässlich.

Der Cronjob kann ohne Shell-Skript in nur einer Zeile ausgeführt werden:

*/5 * * * * [ `ls /media/data/ | wc -1` -lt 1 ] && { umount /media/data; mount /media/data }

Hier http://forum.xbian.org/thread-1276-post-14699.html scheinen sie das gleiche Problem zu diskutieren, aber es scheint noch nicht gelöst zu sein.

Daniel
quelle