markmb
Posts: 5
Joined: Sat Apr 13, 2013 8:20 pm

Error con Transmission y HDD externo

Sat Apr 13, 2013 8:31 pm

Hola a todos

Actualmente tengo sobre mi Raspberry un servidor de Torrents, con Transmission, y con un disco duro externo conectado. El problema es que cuando lo dejo un rato (depende del día más o menos), me empieza a dar errores de datos no encontrados, y se me llena el log de este error:

EXT4-fs error (device sda1): ext4_find_entry:1209: inode #115957926: comm transmission-da: reading directory lblock 0

El disco duro externo está formateado en ext3 y conectado a la corriente, la Raspberry Pi está conectada por wifi y usa Raspbian.

¡Espero que me puedan ayudar, y así poder dejar mis torrents descargando durante la noche sin preocuparme!

Gracias de antemano

baldruus
Posts: 31
Joined: Tue Apr 09, 2013 5:11 pm

Re: Error con Transmission y HDD externo

Mon Apr 15, 2013 10:09 am

Hola compañero.

Yo estoy lidiando con el mismo problema que tú.

Sin unos grandes conocimientos a nivel de hardware, tengo alguna teoría.

En mi caso, creo que cuando transmission está algún tiempo sin descargar, el disco duro se queda como en suspensión.

Me he fijado que una manera de automatizar los montajes de las unidades es con "udev".

Lo que he hecho ha sido combinar udev con fstab, para tratar de hacer que cuando el disco duro externo se monte, basándome en su UUID, se me monte siempre en el mismo punto de montaje (/media/descargas/).

En fstab tengo lo siguiente:
sudo nano /etc/fstab

proc /proc proc defaults 0 0
/dev/mmcblk0p1 /boot vfat defaults 0 2
/dev/mmcblk0p2 / ext4 defaults,noatime 0 1

#Aqui va el disco de las descargas torrent en transmission (500gb)
UUID=c460fab3-1cf8-4319-849d-ef01723c677b /media/descargas ext4 auto,defaults 0 0
Para sacar el UUID del disco duro he usado el comando blkid
pi@raspberrypi ~ $ blkid
/dev/mmcblk0p1: SEC_TYPE="msdos" UUID="C522-EA52" TYPE="vfat"
/dev/mmcblk0p2: UUID="62ba9ec9-47d9-4421-aaee-71dd6c0f3707" TYPE="ext4"
/dev/sda1: UUID="c460fab3-1cf8-4319-849d-ef01723c677b" TYPE="ext4"

Con esto tenemos solventado su montaje al iniciar el sistema.

Para que se automonte correctamente en caso de "suspensión", como yo lo llamo, he indagado acerca de udev.

Si hacemos ls /etc/udev/rules.d vemos que hay varios archivos, que comienzan con numeración. En teoría va por orden, son reglas de montaje que se van ejecutando del 1 al 99. (99 será la última en hacerlo).

Lo que yo he hecho ha sido crear un 98-mount.rules (sudo nano /etc/udev/rules.d/98-mount.rules) y he puesto lo siguiente: SUBSYSTEM=="block",RUN+="/bin/mount -a"


Esto hace que cuando monte algún disco duro, me ejecute el comando mount -a, y me monte todo lo que hay en el fstab. Como los tengo identiicados por UUID, en caso de que algún disco duro no esté conectado, no lo montaría.

En principio me lo va montando, pero sigo teniendo problemas.

Al hacer un "mount" para ver los dispositivos montados al final del día, veo que se me ha montado varias veces el disco duro externo (una vez en /dev/sdb1, otra en sdc1, otra en...) por lo que creo que tendré que mirar de hacer algún script que compruebe las unidades montadas y las desmonte antes de montarlas. O tal vez existe alguna regla más eficaz en udev para poder hacerlo, y por eso lo pongo, para ver si alguien nos ilumina un poco el camino, o si entre nosotros podemos sacarlo.

Por cierto, comentando todo esto del udev, una manera de ver la información del disco o dispositivo en cuestión y poder hacer las reglas es con el comando "udevadm".

CUIDADO!!

Para ver la info del disco duro y hacer las reglas, sería con udevadm info -a -n /dev/sdxx, siendo xx la partición del disco montado (con mount puedes verlo). Ej: /dev/sda1

Digo que cuidado, porque a mí me congela el Raspi hacer esto, se me queda pillado y tengo que reiniciarlo. Lo he probado varias veces y me he metido en el foro inglés, y he visto que hay un bug con esto, ya que a mucha gente le pasa lo mismo.
Tendrías que sacar la info desde otro pc usando udevadm o igual podría hacerse en base al uuid de otra manera.

Mi idea es hacer un pseudo-raid, con varios discos duros conectados por switch autoalimentado, no solo para el transmission, sino para hacer backups o vincularlos con otros dispositivos.
Además quiero hacer unos scripts que me muevan las películas o series descargadas a otros discos duros más grandes.
Así, al conectar un disco duro, que se me monte el directorio "pelis", al montar otro que se me monte "series", etc. Y al desconectarlo, que se autodesmonten. Una especie de superdisco duro modular, plug and play.

Bueno, a ver si lo sacamos!

baldruus
Posts: 31
Joined: Tue Apr 09, 2013 5:11 pm

Re: Error con Transmission y HDD externo

Tue Apr 16, 2013 1:26 pm

He encontrado una manera más elegante de hacer lo anterior.

Como voy aprendiendo sobre la marcha, he descubierto gracias a un conocido el tema de los mapeos en udev.

Gracias a eso, mi disco duro siempre se va a encontrar en /dev/hd500gb y en el fstab en lugar de poner la UUID, pongo /dev/hd500gb y el punto de montaje que quiera.
pi@raspberrypi ~ $ cat /etc/udev/rules.d/98-mount.rules
SUBSYSTEM=="block",ATTRS{serial}=="2HBEGH5W ",KERNEL=="sd*",NAME="hd500gb"
Al menos gracias a eso no tengo múltiples montajes del disco duro y parece más estable el transmission.

Sigo investigando y analizando la raspi para ver si es necesario establecer reglas de montaje y desmontaje en el mismo udev.

markmb
Posts: 5
Joined: Sat Apr 13, 2013 8:20 pm

Re: Error con Transmission y HDD externo

Fri Apr 19, 2013 9:43 pm

No tengo exactamente ese problema. Estaba siguiendo los comentarios de otro foro, que tampoco han solucionado el problema.

Mi problema es que mientras estoy descargando, el disco falla. No es que dices de que se deja de descargar y se quede durmiendo.

Además, no puedo programar un auto-remontar porque una vez que me falla, si, manualmente, vuelvo a hacer un mount, me dice que no se encuentra /dev/sda1, y tengo que desconectar y reconectar el disco.

Un saludo

baldruus
Posts: 31
Joined: Tue Apr 09, 2013 5:11 pm

Re: Error con Transmission y HDD externo

Sat Apr 20, 2013 2:14 pm

Creo que es lo mismo. Estoy investigando más desde hace días, investigando.

Fallo del disco no es, porque en mi caso se soluciona igual que tú. Desconectando y conectando, o reiniciando.

Me sale fallo de Input/output:
ls /media/hd_ppal/
ls: reading directory /media/hd_ppal/: Input/output error
Tampoco deja desmontarla:
umount /media/hd_ppal
umount: /media/hd_ppal: device is busy.
(In some cases useful info about processes that use
the device is found by lsof(8) or fuser(1))
Compruebo qué es lo que la mantiene ocupada, los procesos:

Code: Select all

fuser -m /dev/hd500gb 
/dev/hd500gb:          156  1676  1740  1979  2059  2066  2150  2154  2155  2156  2157  2378  2444  2447  2467  2483  2508  2514  2548  2551  2581  2599  2602  2603  2604  2605  2606  2607  2608  2644  2711  2863  2864  2865 17291 22842 22843 25231 25240
Un montón. Todos los relacionados con el disco duro!!

Mi nueva teoría es que el problema no es del disco duro, es de la gestión que hace Raspbian. En algún momento, no sé por qué, se queda alocado.

He hecho un fsck para comprobar la integridad del disco, y está perfecto. Siempre lo ha estado!

iruindegi
Posts: 8
Joined: Tue May 06, 2014 7:59 pm

Re: Error con Transmission y HDD externo

Tue May 20, 2014 4:09 pm

Pues yo estoy igual y tengo los mismos problemas de input/output error y también me parece que es problema de gestion del disco de la Raspberry pi.

En mi caso tengo un WD Elements (que abriendolo veo que es un Caviar Green) y la verdad es que fastidia un poco todo este tema :(

Voy a probar con el tema de
SUBSYSTEM=="block",ATTRS{serial}=="2HBEGH5W ",KERNEL=="sd*",NAME="hd500gb"

iruindegi
Posts: 8
Joined: Tue May 06, 2014 7:59 pm

Re: Error con Transmission y HDD externo

Wed May 21, 2014 7:29 am

me sigue haciendo lo mismo :(

Spetz
Posts: 22
Joined: Wed May 07, 2014 7:05 pm

Re: Error con Transmission y HDD externo

Wed May 21, 2014 5:50 pm

Gente, no será un problema del Transmission?
Lo digo porque yo tengo un RPi con Raspbian dedicada para bajadas, pero uso el JDownloader.
Tengo un disco externo WD conectado a un router de modo que esta en red y es donde descarga el JD.
Edite fstlab para que haga el automontado y todo funciona perfecto sin ningún tipo de problemas trabajando día y noche. El disco esta formatedo en NTFS y es de 2 Tb.
En mi caso el disco también entra en suspención a los 10 minutos de inactividad, pero cuando se reactivan las descargas se levanta sin problemas.

Otro punto, como alimentas el disco? Será que se te cuelga por falta de energía?

Después pongo el línea que use para el automontado.

iruindegi
Posts: 8
Joined: Tue May 06, 2014 7:59 pm

Re: Error con Transmission y HDD externo

Thu May 22, 2014 7:09 am

Yo también creo que es cosa del transmission.

Estos días me daba error input/output el transmission, pero si conectaba con ssh y navegaba al disco duro, podía ver todo el contenido del disco duro externo sin problema.

Haber si lo actualizan y corrigen el error...

Spetz
Posts: 22
Joined: Wed May 07, 2014 7:05 pm

Re: Error con Transmission y HDD externo

Thu May 22, 2014 3:28 pm

Esta es la linea de montado en FSTAB que estoy usando:

Code: Select all

//192.168.0.2/Volume1 /media/discoexterno cifs auto,rw,sec=ntlm,username=guest,password=,    0   2 
La primera parte corresponde a la dirección de la unidad, la segunda corresponde a lugar donde se monta, cifs corresponde al formato del disco, en este caso NTFS, la cuarta parte de la cadena son las opciones, auto= montado automatico, rw= permisos de lectura y escritura, sec=ntlm es una opción de seguridad debido a que el disco esta en red, username=guest y Password=, es porque cualquiera puede acceder al disco.

Return to “Español”