Yoshitaka Ikeda <ikeda@4bn.ne.jp> writes:

> FreeBSD 5.3-RELEASEでサーバを運用していますが、最近HDDの調子が悪く、
> READ_DMA timed out
> なんてエラーが出て起動しないことがままあります。
>
> そこで、HDDを買ってきてコピーして積み替えてやろうと考えています。
> 今、旧HDDが/dev/ad3 新HDDが/dev/ad4につながってます。
> dd if=/dev/ad3 of=/dev/ad4 conv=noerror
> としてやってみたんですが、異常に遅いです。
> 計算すると、160GBの転送に24時間くらいかかりそうです。
>
> Googleなんかで検索してみるとbs=1m
> とかつけると早くなる、なんて記述があります。
>
> さて、ここで質問です。ブロックサイズはたぶん512Bか1024Bなのですが、
> このような状況で、bs=1mとか設定した場合、エラーが出たブロックはスルーされて
> しまうのでしょうか、それとも、読めなかったところだけが無視されて他の部分
> (同じバッファにのる)はコピーされるのでしょうか。
>
>
>
> まあ、安全策的には、
> dd if=/dev/ad3 of=/dev/ad4 conv=noerror bs=512
> あたりが安全なような気がしていますが。

conv=sync.noerror
にしないとずれていくのを忘れていました。


dumpfsを見る限りでは、ブロックサイズは16384バイトっぽいんだけど、
bs=16384くらいなら問題ないのかなぁ。


-- 
I LOVE SNOOPY!  でつ
Yoshitaka Ikeda mailto:ikeda@4bn.ne.jp
My Honeypot: honey@4bn.ne.jp  <-don't send this address