私は現在、Raspberry Piを使用して、usb経由で接続された外部ハードディスクを備えたホームサーバーをセットアップしています。ただし、アイドル状態のときにハードドライブがスピンダウンすることはありません。
私はすでに raspberrypi.org ...で提供されたヒントを試しましたが、成功しませんでした。
1.)
Sudo hdparm -S5 /dev/sda
戻り値
/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
戻り値
/dev/sda:
issuing standby command
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
...および3.)
Sudo sdparm --flexible --command=stop /dev/sda
戻り値
/dev/sda: HDD 1234
...ドライブのスピンダウンなし。
次のハードウェアを使用しています。
送信されたスピンダウン信号がどこかで上書き/失われた/無視された可能性はありますか?
Hd-idleには運がありませんでした。実行されたが機能しなかった。私は以下のスクリプトを書いてしまいました:
#!/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
fi
else
echo "/tmp/diskaccess.txt file does not exist; creating it now."
echo $stat_new > $filename
fi
echo $stat " - " $drive " - " $current " - by: " $caller >> /tmp/diskaccesslog.txt
送信する信号が無視される可能性は十分にあります。あなたはの出力を提供しませんでした
Sudo hdparm -I /dev/sdX
これでディスクの機能がわかりますが、多くのディスクはこれらのコマンドに応答しません。
幸いなことに、非常に便利なユーティリティ、hd-idle、 ここからダウンロードできます があり、指定された時間の経過後にディスクを強制的にスピンダウンできます。このプログラムは、特にDebian用に開発されています(ただし、一般的にLinux上で動作します)。そのため、インストールは非常に簡単です。私は、それがARMアーキテクチャ、私がテストできないもの)でも機能することを願っています。
編集:それはコンパイルされ、raspbianに正しくインストールされます。
はい、可能ですが、カスタム開発作業が必要であり、簡単ではありません。コードは、エンクロージャー内のUSB-> SATAブリッジチップに固有です。
取り決めは、USBブリッジが電気コンバーター以上の役割を果たすことです。 USB接続のHDDは、異なるコマンドセットを持つSCSIドライブをエミュレートします。標準の読み取り/書き込み/シークコマンドは常に変換されますが、よりエキゾチックなスピンアップ/ダウンは変換されません。ほとんどのチップはそれをしません。さらに、ユニバーサルチップレベルのAPIはありません。したがって、コードを記述した場合、USBブリッジチップのプログラミングマニュアルが必要になります。
要するに、チップにプログラミングの詳細がなく、ATAおよびSCSIの命令セットとパススルーコマンドのカプセル化に精通している場合を除いて、そうする必要はありません。仕事が多すぎて標準がない。