とりあえず
あまりもののHDDと思いきや意外とない。
64GBとか128GBの古ーい2.5インチHDDもしくは64GB SSD
なので思い切って購入。
車載するならこちらの方がいいが、まだ販売していない。
中古で2000ぐらいだが、給電付OTFケーブルも購入しなければならないので
タブレットにも接続できるようにしよう。
給電ケーブル Raspberry Pi 2のUSB給電は設定を変えないと まともに給電させないのでHDDの駆動は不可能だと思うので 必要なケーブル。
給電させるとUSB周辺の熱が半端でないので別途給電した方がいい。
海外からは、半分の値段で購入できるが待っていられないので購入。
これで完了だが、常時駆動を考慮に入れまず以下を導入。
とりあえず入っていないのでまたインストール
システムも日本語になってますね。
hdparmコマンドはハードディスクのパラメータを設定・取得するコマンドですが、-tオプション・-Tオプションを指定することで、シーケンシャルアクセスの読み込み速度を測定することができます。
HDDの現在の状態を確認しておく
一応、hdparmの使い方も含めて HDDの現在の状態を確認しておきましょう。
# hdparm device で オプション未設定の場合は、-acdgkmnru を指定した時と同じ動作になります。
# 各オプションの意味は以下のとおりです。
# -a : (readahead)ファイルシステムの先読みセクタ数
# -c : (IO_support)(E)IDE の 32 ビット I/O サポート
# -d : ドライブの “using_dma” フラグ
# -g : (geometry)ドライブのジオメトリ(シリンダ数、ヘッダ数、セクタ数)、デバイスのサイズ(セクタ数)、デバイスのドライブ先頭からの 開始オフセット(セクタ数)を表示
# -k : ドライブの keep_settings_over_reset フラグ
# -m : (multcount)ドライブの複数セクタ I/O のセクタ数
# -n : ドライブの “ignore write errors” フラグ
# -r : (readonly)デバイスのリードオンリーフラグ
# -u : ドライブの割り込み許可フラグ
$ hdparm /dev/sdb
/dev/sdb:
multcount = 16 (on)
IO_support = 1 (32-bit)
readonly = 0 (off)
readahead = 256 (on)
geometry = 364801/255/63, sectors = 5860533168, start = 0
# hdparm -C device で 現在の 電源モード状況を調べることができます。
# unkown (ドライブはこのコマンドをサポートしない)
# active/idle (通常の動作)
# standby (低電力モード、ドライブはスピンダウンしている)
# sleeping (最小電力モード、ドライブは完全に停止している)
$ hdparm -C /dev/sdb
/dev/sdb:
drive state is: active/idle
# hdparm -C device で 現在の 電源モード状況を調べることができます。 # unkown (ドライブはこのコマンドをサポートしない) # active/idle (通常の動作) # standby (低電力モード、ドライブはスピンダウンしている) # sleeping (最小電力モード、ドライブは完全に停止している) $ hdparm -C /dev/sda
/dev/sda:
drive state is: active/idle
とりあえず見える。通常動作のようですね。
次にスピンダウンするタイムアウト時間を設定する
hdparm を使って、スピンダウンするタイムアウト時間を設定します。
この時間は、上記の 電源モード の アイドル(idle) 状態が ここで指定する時間の間、継続した場合に スピンダウン させ、スタンバイ状態へ移行するというものです。
# hdparm -S 時間 device で ドライブのスタンバイ(スピンダウン)タイムアウトを設定することができます。
# 時間の指定の仕方は、特別な設定を行います。
# 0 : タイムアウトなし
# 1-240 : 5 秒の倍数の指定になり、タイムアウトは 1を指定した場合 5 秒となり、240を指定した場合 20 分となる。
# 241- 251 : 30 分単位の 1 から 11 の指定になり、タイムアウトは 241を指定した場合 30 分となり、251を指定した場合 5.5 時間となる。
# 252 : 21 分(つまり5秒の倍数指定と同じ)
# 253 : ベンダ定義のタイムアウトで、8 分から 12 時間の間のいずれかである。
# 254 : 予約
# 255 : 21 分 15 秒(つまり5秒の倍数指定と同じ)
$ hdparm -S 216 /dev/sda
とりあえずDLANは、ファイルが増加した場合、1800ミリ秒で内部を検査する設定になっているので
216とするのがいいのかな?
大丈夫みたいですね。
タイムアウト時間経過後、電源モード状況を確認する
先に確認したように 電源モード状況 を hdparm を使って確認します。
# hdparm -C device で 現在の 電源モード状況を調べることができます。
# unkown (ドライブはこのコマンドをサポートしない)
# active/idle (通常の動作)
# standby (低電力モード、ドライブはスピンダウンしている)
# sleeping (最小電力モード、ドライブは完全に停止している)
$ hdparm -C /dev/sda
/dev/sda:
drive state is: standby
結構unmountもするのでここまでだけど、リブートしても
設定を残すこともできますね。
リブートしてもタイムアウト時間を設定する
hdparm を使って 先に設定した タイムアウト時間 は、システムのリブートで消えてしまいますので、システムリブート時にあらためて設定しなおす必要があります。
ここでは、rc.local に設定することで、リブート時も設定するようにします。
$ vi /etc/rc.local
…
/sbin/hdparm -S 216 /dev/sda
…
ダメでした。スピンアウトするとアクセス不良となり次にまた同じようにmountしたりと・・
また何か考えるか
S.M.A.R.T.(smartd) を使っている場合は、S.M.A.R.T.(smartd) によって定期的にHDDへアクセスしたりしますので、そこを停止するように設定しておきます。
以下は、その例です。
# -H : ディスクのヘルスチェックを行う
# -m root : メールアラートは root宛てへ送信する
# -n standby,q : ディスクがスタンバイ状態の時チェックを実行せず、ディスクアクセスが発生しないようにログに書き込まない
# -s S/../.././01 : 書式 T/MM/DD/d/HH
# T:テスト=S:short/L:long
# MM:月
# DD:日
# d:曜日1:月曜日~
# HH:時間指定
$ vi /etc/smartd.conf
…
/dev/sdb -H -m root -n standby,q -s S/../.././01
…
上記の例では、以下のような設定となります。
毎日 1 時に、ヘルスチェックを含めてチェックするけど、スタンバイ状態時は 何もしない。
問題あれば root宛てにメール送信する。
とりあえずDMA転送も確認してみる。
hdparm -d1 /dev/sda
invalid argument 無効な引数
あーあー無効なんだ。
これぐらいだろう。
というかこれって2.6系の設定で今はON? 知識がしょぼすぎ。
とりあえず完了。
大容量でもあるので、fatをやめてntfsで読み書きえを試みる。
日本語ファイルの保存も考慮に入れた。
yum install ntfs-3g
これでntfsで読み書きできる。
Linux2.6以降だと読み書きは問題ないということなので現在はLinux3.8だから
大丈夫だろう。
しかし、安定は補償されていないので注意。
後は、マウント方法だけど。
mount -w -t ntfs -o iocharset=UTF-8,codepage=932 /dev/sda5 /media/usb
これで問題なし。
-o iocharset=UTF-8,codepage=932は忘れやすいので注意。
システム文字は、iocharset なので UTF-8 とした。
書き込むのは、Winodwsなので codepageを 932とした。
NTFSにしたのは、文字の長さに問題がある。 文字の長さが長すぎるとファイルフォーマットで保存できない。
SAMBAでは、名前がとでるのはこのためでした。
これでマウントすれば問題ない。
SSHは文字化けというよりもフォントを持っていないせいが
問題ありだが、sambaは読み書きOK
FTPも問題なし。
DLANの表示も全く問題なくなった。
ASUS Media Streamer
コミックもアンドロイドは以下でサクッと見れる。
Perfect Viewer
快適となった。




