HDDのバックアップ(dump,restore)

1.はじめに

これだけ設定しているとHDDが吹き飛んだ時困ります
やはりバックアップをしないと心細いのでバックアップしましょう
OSに添付のdumpとrestoreを利用してHDDを丸々コピーします
丸々コピーする事により、もしHDDが吹き飛んでも差替えるだけで復活します
やはりサーバーは止める時間をできるだけ短くしたいのでこの方法にしました。

2.バックアップするHDDの準備

言うまでもありませんがバックアップしたいHDDと同じ容量、もしくはそれ以上のHDDを接続しておきます
例えば現在動いているHDDが下記のようなスライスとします
ados1a /
ad0s1b swap
ad0s1d /var
ad0s1e /tmp
ad0s1f /usr
そしてバックアップするHDDを「ad1」としましょう
そしてバックアップするマウントポイントにディレクトリーを作成しておきます
# cd /mnt
# mkdir root
# chmod 777 root
そして「sysinstall」メニューに入り「Configure」を選びます
「fdisk」で「ad1」の領域を全て確保します。
「q」で抜けて
・ブートマネージャー
・スタンダード
・NONE
はスタンダードを選んでおきましょう
もし、現在の環境がブートマネージャであれば同じにするのもいいかもしれません。
そして、今度は「label」に入ります。
そしてHDDの選択画面になりますので「ad1」を選びます。
ここからがコツです。
まず最初にインストールしたように「c」でスライスしますが、容量は現在マウントしている容量と同じにして
最初のマウントポイントは一旦「 / 」にしてしまいます。
こうしないと「ad1s1a」になりません。
そして、ad1s1aになったとおころへカーソルを持って行き「m」を押し本当のマウントポイントにします。
続けてswap、/var、/tmp、/usr を作成します。
そしてまた「q」で抜けてフォーマット、マウントを一度してしまいましょう。
おわったらsysinstallを抜けます
ad1は下記のようになるようにします
ad1s1a /mnt/root
ad1s1d /mnt/root/var
ad1s1e /mnt/root/tmp
ad1s1f /mnt/root/usr
ここまで出来たら一度、アンマウントします
# umount /mnt/root/usr
# umount /mnt/root/var
# umount /mnt/root/tmp
# umount /mnt/root
これでHDDの準備は完了です

3.シェルの作成と実行

それでは自動化の為にシェルを作成します
/root/backup.sh
#!/bin/csh
newfs /dev/ad1s1a
newfs /dev/ad1s1d
newfs /dev/ad1s1e
newfs /dev/ad1s1f
mount /dev/ad3s1a /mnt/root
dump 0af - / | ( cd /mnt/root ; restore rf - )
mount /dev/ad3s1d /mnt/root/var
dump 0af - /var | ( cd /mnt/root/var ; restore rf - )
mount /dev/ad3s1e /mnt/root/tmp
dump 0af - /tmp | ( cd /mnt/root/tmp ; restore rf - )
mount /dev/ad3s1f /mnt/root/usr
dump 0af - /usr | ( cd /mnt/root/usr ; restore rf - )
cd /
umount /mnt/root/usr
umount /mnt/root/var
umount /mnt/root/tmp
umount /mnt/root
実行権限を与えるのを忘れないで下さい。
詳しくはmanでも見て下さい
あとはこれをcronで自動実行するだけです。
但しかなりパワーを食いますのでご注意下さい。
私の場合、P4-2.4Gで250GBをコピーするのに1時間以上もCPUパワーが
200%(Dualなので)張りついたままになります。
毎日は厳しいので1週間に1回にしています。
間隔は自己責任でどうぞ

と言うことで、まずは時間のある時にでもコマンドラインから実行して見てください。
そして、終了したら動いていたHDDを外し、ad1のHDDをad0になるところへ接続して
立ち上げて見てください。
上手く立ち上がれば成功です。