ちょっと必要があって、会社の私が居る事務所と 遠く離れた事務所(共にFreeBSD7.1)とで rsync しています。なんか変なエラーが出るのだけれど大きな影響は無いのでほったらかしていたのですが、確認してみると遠く離れた事務所のハードディスクに不良セクタがありました(笑)。
不良は少なくとも数セクタは存在するのですが、それを含むファイルは昔のデータで消えちゃっても差し支えないので、例の方法で不良セクタを潰したらいいかな~と思って呪文を唱えてみました。
# dd if=/dev/zero of=/dev/ad0 bs=512 oseek=39219894 count=1
dd: /dev/ad0: Operation not permitted
ぬな、rootで実行してるのになんでこんなこと言われるかな? /dev/ad0 だと駄目なのかな? って事でオフセットを計算して以下も試してみました。
# dd if=/dev/zero of=/dev/ad0s1f bs=512 oseek=30767814 count=1
dd: /dev/ad0: Operation not permitted
やっぱり駄目。Google先生に聞いてみると kern.securelevel の値によって駄目だったりするらしいですが、これは -1 だから問題ないですし。前に試したときは FreeBSD 4 か 5 だったのですが、いつの間にか起動ドライブに対しては書き込みできない仕様になっちゃったんですかねー(T^T)。
と思ったのですが、umount してみたら書き込みできました。 /usr/home だから無理やりマウント解除できましたが、/ とか /usr とかだと現地作業じゃないと無理っぽいですね。てゆーかそんなことよりHDDを交換しなくちゃいけませんね(^_^)。