つっこみ

つっこみ欄にコメントを記載して[つっこむ]ボタンを押してください。
お名前欄の記載は省略できます。

お名前 :
←ここのテキストボックスはスパム対策用なので何も入力しないでください
つっこみ :

[キャンセル]


つっこみ先の記事

・ だめだめUSB-HDDアダプタ

USBって便利ですよね。以前はハードディスクというとSCSIなりATAとして接続するのが当たり前でしたが、最近はUSBに変換してPCに接続するといろいろ便利に使えます。特にあらかじめUSBで外付けHDDを接続してHDDイメージをコピー、最後にPCを分解して物理的に交換 というのが最近の私のHDDリプレース手順。だから裸のドライブを接続してUSBに変換するアダプタは手放せません。

が、なんか動作が妙に感じることが稀にあるんですよね。以前ZFSプールを作成してミラーした時も妙なエラーがカウントされました。昨日は所用にてUSBアダプタのHDDにFreeBSDを入れたところ、 make world できない(コンパイルエラーが出る)現象が発生。

何かがおかしいことは間違いなさそうなので、簡単なスクリプトで実験してみました。

#!/bin/sh
base=testdata

dd if=/dev/random bs=200k count=10 | hd >$base

# ファイル作成
count=1
until [ $count -eq 1000 ];
do
    cp $base ${base}$count
    count=`expr $count + 1`
done

# ファイル比較
count=1
until [ $count -eq 1000 ];
do
    diff $base ${base}$count
    rm ${base}$count
    count=`expr $count + 1`
done
rm $base

動作としては、10MBぐらいの大きいテキストファイルを作成した後 ファイル名を変えて1000個コピー、コピーが終わった後で diff にて元のファイルと同じかどうか調べています。正しく動作していれば dd が出力するメッセージ以外は画面に表示されないはずです。が、

1回目 2回目
1回目2回目

なんと、違いが検出されてしまいます(T^T)

ちなみにおうちには2種類のUSB-HDDアダプタがあるのですが、片方は上記のように複数回実験しても違いが検出されるのですが、もう片方は試した限りでは同じHDDを使用しているにも関わらずdiffによる違いは見つかりませんでした。make world もちゃんと通ります。今まではっきりとは分からなかったのですが、USBアダプタのうち一つはダメダメだったのですねー。もしかしたらWindowsとかで使う限りは問題が起きないのかもしれませんが、FreeBSDで問題があるなら私にとってはゴミです。ゴミはゴミ箱へ(^_^)。

しかし、ハードディスクの読み書きがおかしい時はもっと盛大に(少なくともセクタ単位で)異常が見られるものだと思っていたのですが、こんな風に合計10GB弱読み書きして数バイトだけ違うなんてこともあり得るのですな。そりゃ今まで問題が発覚しなかったわけです。


■この記事への permanent link URL(下にいくほどファイルサイズが大きくなります)
  http://toriyu.jp/hitorigoto/id2442.html
  http://toriyu.jp/hitorigoto/2009-02-12.html (1日分)
  http://toriyu.jp/hitorigoto/2009-02.html#id2442 (1ヶ月分)