そこで、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
あたりが安全なような気がしていますが。
--
I LOVE SNOOPY! でつ
Yoshitaka Ikeda mailto:ik...@4bn.ne.jp
My Honeypot: ho...@4bn.ne.jp <-don't send this address
> 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くらいなら問題ないのかなぁ。