サーバーのハードディスクをふっ飛ばしてしまったので、サーバーからハードディスクを抜き、もう一台のサーバーにつなぎ、吸い出しを試みる。
80GのハードディスクをFreeBSDで利用しているため、以下の構成になっている。(ad3に接続)
| /ad3s1a | 512M | / |
| /ad3s1b | 512M | swap |
| /ad3s1e | 2G | /var |
| /ad3s1f | 512M | /tmp |
| /ad3s1g | 72.8G | /usr |
portsにdd_rescueなるものがあったので、それでとりあえずディスクイメージを吸い出すことにした。(念のため、セカンダリIDEコントローラーにつながっているHDDはPIOモードにしておく)
#atacontrol ad2 mode biospio
#atacontrol ad3 mode biospio
#dd_rescue /dev/ad3s1g /nas1/dd-img/broken-usr.img
これが、時間のかかる事かかる事。不良ブロックを73821個も出して、結局3日半がかりで終了した。
ad3s1a,ad3s1e,ad3s1fも同様に行うと、こちらは合わせてものの30分で終わってしまった。いかに/usrが壊れていたかである。
イメージを吸い出す事ができたら、次はこれをマウントする作業である。
まずはイメージを順番にmdデバイスに割り当てていく。
#mdconfig -a -t vnode -f /nas1/dd-img/broken-root.img -u0
#mdconfig -a -t vnode -f /nas1/dd-img/broken-var.img -u1
#mdconfig -a -t vonde -f /nas1/dd-img/broken-tmp.img -u2
#mdconfig -a -t vnode -f /nas1/dd-img/broken-usr.img -u3
これで、/dev/md0~md3までにそれぞれのイメージが割り当てられたので、それを順にマウントしていく
#mount -o ro /dev/md0 /mnt
#mount -o ro /dev/md1 /mnt/var
#mount -o ro /dev/md2 /mnt/tmp
#mount -o ro /dev/md3 /mnt/usr
やっと、破損ディスクを読み出す準備ができました。これで、ファイルを救い出すことができます。
この土・日は救い出しに精一杯でしょうなぁ。。。