web-dev-qa-db-ja.com

マウント解除後の自動マウントスクリプト

私の意図は、使用されていない20分後に外付けUSBドライブをスピンダウンすることです。通常の場合、これにはhdparmを使用しますが、残念ながら、これは外付けUSBドライブでは機能しません。それは私にこのようなエラーを与えます:

hdparm -S240 /dev/sdc

/dev/sdc:
 setting standby to 240 (20 minutes)
SG_IO: bad/missing sense data, sb[]:  70 00 05 00 00 00 00 0a 00 00 00 00 20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00

それから私はsgparmの頭です。

sdparm --flexible -C stop /dev/sdc
    /dev/sdc: SAMSUNG   HD153WI 

ディスクを1秒未満スピンダウンし、すぐに再びスピンアップします。ファイルシステムがマウントされていない場合でも。

それから私はそれを知りました

eject /dev/sdc

実際にディスクをスピンダウンするだけでなく、マウントを解除します。

次のアイデアは、誰かがファイルシステムのマウントパスにアクセスしたときに、自動マウントを使用してドライブをマウントすることでした。マウントは機能しますが、ドライブがアンマウントされた後、スピンダウンしません。私がやりたいのは、上記のようにイジェクトコマンドを実行することですafter automountはドライブをアンマウントします。

それを行う方法について何かアイデアはありますか?それとももっと良い解決策がありますか?

1
Björn Jacobs

自動マウントにはマウント解除後のオプションがないことは確かです。しかし、sdparm(1.07)のマンページで何かを見つけました。

-r、-readonly

他のロジックをオーバーライドして、デバイスを読み取り専用モードで開きます。このオプションは、コマンドがSCSIコマンドセットを介してATAディスクに送信されている場合に役立つことがあります。たとえば、Linuxの「-Cstop」では、ATAディスクの再起動をすぐに停止するためにこのオプションが必要になる場合があります。

現在、USBハードディスクを持っていません。テストできませんが、これはあなたが抱えている問題と一致しているようです。ただし、ドライブのアイドル時間を測定する方法はわかりません。

このオプションにもかかわらずディスクが留まらない場合は、同じマニュアルページで説明されているこの問題に遭遇した可能性があります。

Linux 2.6シリーズ、特にATAディスクでは、sdparmを使用してディスクを停止(スピンダウン)するだけでは不十分な場合があり、他のメカニズムがしばらくしてからディスクを再起動します。ユーザーはさらに、ディスクを「echooffline>/sys/block/sda/device/state」で「オフライン」としてマークする場合があります。sdaはディスクのブロック名です。ディスクを再起動するには、「オフライン」を「実行中」に置き換えることができます。


自動マウントとイジェクトを組み合わせることもできます。つまり、マウントには自動マウントを使用し、アンマウントにはイジェクトを使用します。正常に動作しているように見えますが、ejectはroot権限で実行する必要があります。

1
Adaephon