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
Re: Error con Transmission y HDD externo
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:
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!
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:
Para sacar el UUID del disco duro he usado el comando blkidsudo 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
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!
Re: Error con Transmission y HDD externo
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.
Sigo investigando y analizando la raspi para ver si es necesario establecer reglas de montaje y desmontaje en el mismo udev.
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.
Al menos gracias a eso no tengo múltiples montajes del disco duro y parece más estable el transmission.pi@raspberrypi ~ $ cat /etc/udev/rules.d/98-mount.rules
SUBSYSTEM=="block",ATTRS{serial}=="2HBEGH5W ",KERNEL=="sd*",NAME="hd500gb"
Sigo investigando y analizando la raspi para ver si es necesario establecer reglas de montaje y desmontaje en el mismo udev.
Re: Error con Transmission y HDD externo
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
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
Re: Error con Transmission y HDD externo
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:
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!
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:
Tampoco deja desmontarla:ls /media/hd_ppal/
ls: reading directory /media/hd_ppal/: Input/output error
Compruebo qué es lo que la mantiene ocupada, los procesos: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))
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
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!
Re: Error con Transmission y HDD externo
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
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"
Re: Error con Transmission y HDD externo
me sigue haciendo lo mismo 

Re: Error con Transmission y HDD externo
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.
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.
Re: Error con Transmission y HDD externo
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...
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...
Re: Error con Transmission y HDD externo
Esta es la linea de montado en FSTAB que estoy usando:
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.
Code: Select all
//192.168.0.2/Volume1 /media/discoexterno cifs auto,rw,sec=ntlm,username=guest,password=, 0 2