USB ハードディスクが Debian でアンマウントせずに動作しなくなった

USB ハードディスクが Debian でアンマウントせずに動作しなくなった

似たような質問をここで見たことがありますが、それは別の問題なので私の問題は解決しません。

外付けハードディスクを持っていて、正常に動作していますが、マウントされてしばらくすると、アンマウントされ、dmesg の関連出力は次のようになります。

[22653.465263] usb 1-6: USB disconnect, device number 3
[22654.341275] Buffer I/O error on device sdb1, logical block 5851506
[22654.341285] Buffer I/O error on device sdb1, logical block 5851507
[22654.341290] Buffer I/O error on device sdb1, logical block 5851508
[22654.341295] Buffer I/O error on device sdb1, logical block 5851509
[22654.341300] Buffer I/O error on device sdb1, logical block 5851506
[22654.472971] Buffer I/O error on device sdb1, logical block 5851506
[22654.474689] Buffer I/O error on device sdb1, logical block 55417728
[22654.474698] Buffer I/O error on device sdb1, logical block 55417728
[22654.488099] Buffer I/O error on device sdb1, logical block 55417728
[22654.625318] Buffer I/O error on device sdb1, logical block 15213709
[22655.852960] usb 1-6: new high-speed USB device number 4 using ehci_hcd
[22655.986631] usb 1-6: New USB device found, idVendor=0bc2, idProduct=2300
[22655.986636] usb 1-6: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[22655.986639] usb 1-6: Product: Portable        
[22655.986641] usb 1-6: Manufacturer: Seagate 
[22655.986644] usb 1-6: SerialNumber: 2GH1D7N9    
[22655.995937] scsi7 : usb-storage 1-6:1.0
[22656.997526] scsi 7:0:0:0: Direct-Access     Seagate  Portable         0130 PQ: 0 ANSI: 4
[22656.999376] sd 7:0:0:0: [sdc] 488397168 512-byte logical blocks: (250 GB/232 GiB)
[22657.001473] sd 7:0:0:0: [sdc] Write Protect is off
[22657.001478] sd 7:0:0:0: [sdc] Mode Sense: 2f 08 00 00
[22657.002044] sd 7:0:0:0: [sdc] No Caching mode page present
[22657.002049] sd 7:0:0:0: [sdc] Assuming drive cache: write through
[22657.006538] sd 7:0:0:0: [sdc] No Caching mode page present
[22657.006545] sd 7:0:0:0: [sdc] Assuming drive cache: write through
[22657.064746]  sdc: sdc1
[22657.068549] sd 7:0:0:0: [sdc] No Caching mode page present
[22657.068555] sd 7:0:0:0: [sdc] Assuming drive cache: write through
[22657.068560] sd 7:0:0:0: [sdc] Attached SCSI disk
[22661.658006] quiet_error: 23 callbacks suppressed
[22661.658012] Buffer I/O error on device sdb1, logical block 15752430
[22661.658115] Buffer I/O error on device sdb1, logical block 15752435
[22661.809572] Buffer I/O error on device sdb1, logical block 15752430

そしてそれは続きます。しばらく前にシステムを再インストールしましたが、それ以前は完璧に動作していました。

私のシステムは最新の Debian Wheezy で、ディスクは Seagate の 250 GB です (モデルはわかりません)。問題が発生した時点では、ディスクの読み取りや書き込みを行っていなかったことを付け加えておきます。

前もって感謝します!

編集: デバイスはシステムの起動時にマウントされ、fstabの行は次のようになります。

UUID=1678E1CC78E1AB27       /media/Expansion\040Drive     ntfs-3g    auto,user,rw,uid=1000,umask=077  0       0

どこかで読んだのですが、一部のハードディスクは、使用されていないときや USB ポートがオンになっているときは、しばらくするとスリープ モードになり、ハードディスクはスリープ状態になります。これが私の問題でしょうか? もしそうなら、どうすれば修正できますか?

答え1

最初に推測するのは、これは「スリープ」の問題かもしれないということです。このような理由から、NAS ユニット用の「グリーン」ドライブを購入しない方が良いという投稿を見たことがあると思います。ドライブの仕様にこれに関する何かがあるのか​​もしれません。

これを経験的にテストし、一時的な修正を行うには、ドライブに定期的にアクセスする小さなシェル スクリプトを作成します。これで問題が解決すれば、原因がわかります。

「永続的な」ソリューションが必要な場合は、このスクリプトを cron で実行するか、ログイン時 (~/.profile) に実行することができます。

#!/bin/bash

MOUNT="/media/Expansion\040Drive" ## Your mount point
SLEEP_TIME="10m"  ## How long to sleep between accesses
while true
do
  ls "${MOUNT}" > /dev/null
  sleep "${SLEEP_TIME}"
done

システムへの影響をさらに少なくするには、ls を touch コマンドに置き換えて、ドライブ上の (空の可能性のある) ファイルのタイムスタンプを更新します。

余談ですが、マウント ポイントには好きな名前を付けることができます。では、なぜ \040" が必要なのでしょうか。変換が正しければ、これは 8 進数の ASCII スペースにすぎません。スペースを含むファイル名を作成できますが、アンダースコアなどを使用すると、スペースでトークンを区切る傾向があるスクリプトやプログラムで発生する多くの問題を回避できます。

関連情報