Question: I’m currently setting up a home-server using a Raspberry Pi with an external hard-disk connected via usb.However, my hard-drive will never spin down when being idle.
I tried already the hints provided at raspberrypi.org… without any success.
1.)
sudo hdparm -S5 /dev/sda
returns
/dev/sda: setting standby to 5 (25 seconds)SG_IO: bad/missing sense data, sb[]: ?70 00 04 00 00 00 00 0a 00 00 00 00 44 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
2.)
sudo hdparm -y /dev/sda
returns
/dev/sda: issuing standby commandSG_IO: bad/missing sense data, sb[]: ?70 00 04 00 00 00 00 0a 00 00 00 00 44 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
…and 3.)
sudo sdparm –flexible –command=stop /dev/sda
returns
/dev/sda: HDD ?1234
… without spin-down of the drive.
I use the following hardware:
- Inateck FDU3C-2 dual Ports USB 3.0 HDD docking station
- Western Digital WD10EZRX Green 1TB
Is it possible, that the sent spin-down-signals are somewhere overwritten/lost/ignored?
Answer: I didn’t have luck with hd-idle; it ran but didn’t function. ?I ended up writing the script below:
#!/bin/bash# This script looks for recent disk access, and if nothing has changed, puts /dev/”drive” into spindown mode.# This should be used only is the hdparm power management function is not working.# Call this script with cron or manually as desired#### Change which drive this script looks at by changing the drive variable below:drive=”sda”##current=`date`caller=$(ps ax | grep “^ *$PPID” | awk ‘{print $NF}’)filename=”/tmp/diskaccess.txt”if [ -f “$filename” ]; then ?stat_old=`cat “$filename” | tr -dc “[:digit:]”` ?stat_new=`cat /sys/block/”$drive”/stat | tr -dc “[:digit:]”` ?if [ “$stat_old” == “$stat_new” ]; then ?stat=”0″ ?echo “The disk hasn’t been used; spinning down /dev/$drive” ?echo $stat_old ?hdparm -y /dev/$drive > /dev/null ?else ?stat=”1″ ?echo $stat_old ?echo $stat_new ?echo “The drive has been used…” ?echo $stat_new > $filename ?fielse ?echo “/tmp/diskaccess.txt file does not exist; creating it now.” ?echo $stat_new > $filenamefiecho $stat ” – ” $drive ” – ” $current ” – by: ” $caller >> /tmp/diskaccesslog.txt