Ich habe hier eine USB-Platte, die sich zwar auch von selbst abstellt. Da sie aber ziemlich laut ist, mache ich das meist manuell.
hdparm -y /dev/sdb
/dev/sdb:
issuing standby command
HDIO_DRIVE_CMD(standby) failed: Invalid argument
Trotz dieser Fehlermeldung ist sie danach sofort aus, und läuft bei Zugriff wieder an. Wenn ich sie nur sporadisch brauche, nehme ich die
hier skizzierte Methode, die nicht mehr ganz aktuell ist. Also erst unmounten, dann "unbinden"
echo 1-3 > /sys/bus/usb/drivers/usb/unbind
Wobei die "1-3" (zumindest bei mir) pro USB-Anschluss festgelegt ist. Ob auch das Gerät dranhängt, das man abschalten will, kann man (vorher) durch Vergleich von
cat /sys/bus/usb/devices/1-3/id{Vendor,Product}
mit den von lsusb angezeigten IDs kontrollieren (gibt es eine einfachere Methode?). Nach dem unbind sind die Device-Dateien der Platte weg, sie läuft aber noch. Erst
echo auto > /sys/bus/usb/devices/1-3/power/control
schaltet sie aus. Sie wacht dann natürlich nicht von selbst wieder auf, dazu bedarf es eines
echo 1-3 > /sys/bus/usb/drivers/usb/bind
Ich weiß, das ist jetzt nicht das automatische An-/Abschalten, das du dir vorstellst...
Deshalb schau dir mal spindown (im AUR) an, das werde ich beizeiten auch mal tun.
Nachtrag:
smartctl habe ich jetzt an zwei USB-Platten probiert, kein Problem. Bei einer musste ich
-d sat mit angeben.
Stecker ziehen ist auf die dauer ziemlich lästig, die o.g. Anweisungen kann man leicht als C-Programm formulieren, das mit sudo dann auch von nicht-root ausführbar ist.