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!