Eu descobri por que um kernel panic está ocorrendo. Aparentemente, o Linux está armazenando em cache essa interminável transferência de dados, então a solução simples é desativar o cachache com o nocache.
Então, minha solução atual agora são os seguintes arquivos:
/etc/udev/rules.d:
KERNEL=="sd*", SUBSYSTEMS=="usb", ATTRS{manufacturer}=="HGST", ATTRS{product}=="Touro Desk 3.0", ATTRS{serial}=="31001312300002100125", ACTION=="add", RUN+="/usr/local/bin/touro_read_loop"
ACTION=="remove", ENV{ID_SERIAL=="HGST_Touro_Desk_3.0_31001312300002100125"}, RUN+="/usr/local/bin/touro_read_stop"
/ usr / local / bin / touro_read_loop:
#!/bin/bash
if [ ! -e /tmp/.apm_pids ]
then
setsid /usr/local/bin/touro_read_loop_main >/dev/null 2>&1 < /dev/null &
fi
/ usr / local / bin / touro_read_loop_main:
#!/bin/bash
if [[ "$(id -u)" == "0" ]]
then
while test -e '/dev/disk/by-id/usb-HGST_Touro_Desk_3.0_31001312300002100125-0:0'
do
setsid nice -n19 ionice -c3 nocache pv -s 4000784052224 -q -L 1m '/dev/disk/by-id/usb-HGST_Touro_Desk_3.0_31001312300002100125-0:0' >/dev/null 2>&1 < /dev/null &
PV_ID=$(pgrep -nx pv)
echo -ne "$$\n$PV_ID\n" > /tmp/.read_loop_pids
while test -d "/proc/$PV_PID"
do
sleep 30
done
done
fi
/ usr / local / bin / touro_read_stop:
#!/bin/bash
cat /tmp/.apm_pids | sudo xargs -i kill {}
sudo rm /tmp/.read_loop_pids
Com isso, meu disco rígido fica sempre ativo sempre que eu o conecto ao meu laptop, então não há mais gerenciamento avançado de energia.