7.1で検証した確実なバックアップ手順を公開します。重要視したのは以下の点です。バックアップは短時間でできなければならない確実なバックアップを取るにはシングルユーザモードにする必要があり、ブランクタイムをなるべく短くする必要があるからです。バックアップは簡単にできなければならない面倒な作業は継続しません。リストアは手順に沿っておこなえば、他人(数ヶ月後の自分も含めて)でも確実にできなければならないこの状態になればきっと理解できます。私はFreeBSD4.8の時代からサーバを立てていますが、当時はテープデバイスに行っていたバックアップも、最近はHDDへおこなった方が良いという見解です。テープへのバックアップは、時間もかかるうえに、経験上メディアの信頼性も薄く、何よりも容量の大きいHDDを毎日バックアップを取るにはテープ媒体の寿命を考えると膨大なテープが必要となり、現実的では無くなりつつあります。過去に一度、RAID5構成のHDDが2台同時にクラッシュをした際に、バックアップは数ヶ月前のもの...という事態を引き起こしてしまった事もあり、毎日バックアップを取れるような最善の方法を考えていましたが、現在はこの方法に落ち着いています。(dump)バックアップ元となるサーバは以下のような状態です。/varバックアップデータを保存するデバイスをマウントしますUSBメモリーでもSCSIハードディスクでも可能ですが、今回はIDE-HDDをプライマリ-slaveに繋ぎました。接続したい機器のデバイス名をdmesgで確認します。dmesg|moreとして、[j]または[↓]で下へスクロール、[k]または[↑]で上へスクロールします。[q]で表示が終了します。more)バックアップ先を初期化・マウントします初めて接続した機器の場合だけ必要な作業です。2回目以降は不要です。/stand/sysinstallとしたところ、以下のようなエラーがでました。sysinstall/usr/sbin/sysinstallと、最近のFreeBSDではなっているようです。通常、/usr/sbinへパスが通っているはずなので、sysinstallだけで良いという訳です。[Configure]を選択して[Enter]を押します。[Fdisk]を選択して[Enter]を押します。バックアップ先のデバイスを選択して[Enter]を押します。(今回はad1)[c]を押して[Enter]を押します。[165]のままで[Enter]を押します。確認ダイアログが表示されるので[Yes]を選択して[Enter]を押します。[None]を選択して[Enter]を押します。[Cancel]を選択して[Enter]を押します。[Label]を選択して[Enter]を押します。[c]を押して[Enter]を押します。[FS]が選択されている状態のまま[Enter]を押します。マウント名を入力します。(今回は/backup)自動的にディレクトリが作成されて、マウントされます。[Yes]を選択して[Enter]を押します。[q]を押してメニューに戻り、[Cancel]を押します。[Exit]または[Cancel]を押します。Install]を選択して[Enter]を押します。以下のパーティションをそれぞれバックアップします。ファイルを更新します。メディアの終了を検知します。FreeBSD5.0から搭載されたスナップショット機能を使います。この機能を使えば、シングルユーザモードに落とす必要がありません。キャッシュサイズを8~32(単位:MB)の間で指定することにより、性能が劇的に向上します。Lオプションを付けない場合には、Cオプションも外した方が良さそうです。バックアップ出力先のファイルを指定します。同様に、他の3つも行います。以上でバックアップは完了です。var.dumpさらに安全性を高めたい場合には、作成されたdumpファイルは一時保存ファイル扱いとして、別のメディアにコピーすれば良いでしょう。CDを作成しておきましょう。緊急用起動ディスク」と書いて、サーバの近く(目に付く場所)に置いておきましょう。復元(restore)以下のような構成で検証しました。CDを入れてサーバを起動します。Japan]を選択して[Enter]を押します。keymap]が選択されていると思いますので、そのまま[Enter]を押します。起動HDDの初期化(スライス・パーティション作成)[Configure]を選択して[Enter]を押します。[Fdisk]を選択して[Enter]を押します。起動デバイスを選択して[Enter]を押します。(ここではad0)決してバックアップデータが保存されているデバイスを指定しないでください。[c]を押して表示された数字のまま[Enter]を押します。[165]のままで[Enter]を押します。[Standard]を選択して[Enter]を押します。[Cancel]を押してメニューに戻ります。[Label]を選択して[Enter]を押します。)パーティションに割り当てる容量を指定します。(ここでは1GB)旧サーバ(バックアップ元)よりも少ないと問題が起こる可能性があります。ddとは違って多い分には問題ありません。[FS]が選択されている状態のまま[Enter]を押します。)、[Enter]を押します。同様に、[c]を押してスワップ領域を設定します。これは、新サーバに搭載されているメモリ容量の2倍程度が良いです。(ここでは1GB)[Swap]を選択して[Enter]を押します。割り当てる容量を指定します。(ここでは1GB)旧サーバ(バックアップ元)よりも少ないと問題が起こる可能性があります。ddとは違って多い分には問題ありません。[FS]が選択されている状態のまま[Enter]を押します。)、[Enter]を押します。割り当てる容量を指定します。(ここでは4GB)旧サーバ(バックアップ元)よりも少ないと問題が起こる可能性があります。ddとは違って多い分には問題ありません。残り全ての容量を割り当てたい場合には、容量を指定しないで表示された数字のまま[Enter]を押します。[FS]が選択されている状態のまま[Enter]を押します。)、[Enter]を押します。表示された数字を変更しないで[Enter]を押します。/homeパーティションが不要な場合には、この作業は不要です。[FS]が選択されている状態のまま[Enter]を押します。)、[Enter]を押します。こんな感じになります。気に入らなければ、パーティションを選択して[d]を押せば削除できるので、設定しなおしてください。よければ[w]を押します。確認ダイアログが表示されるので[Yes]を選択して[Enter]を押します。[q]を押してメニューに戻り、[Cancel]を選択して[Enter]を押します。Fixtを起動[Fixit]を選択して[Enter]を押します。[CDROM/DVD]を選択して[Enter]を押します。デバイスに先ほど作成したパーティション(ad0s1a~ad0s1f)が登録されているか確認します。/mnt以下に配置されています。var/バックアップデータの入ったHDDをマウントバックアップデータの入ったHDDをマウントするために/mntbkというディレクトリを作成します。_今回はIDE-HDDをマスター-Slave接続しているため「ad1s1」というデバイス名になっています。ad1s1cのcについてはこちらを参照してください。/mntbk/home.dump多くの場合、容量の大きなusr等をrestore中に以下のようなエラーが表示されます。_これは、restore作業に必要な一時ファイルが容量不足のために発生します。その場合には、以下の方法でTMPディレクトリを変更してから再度restoreをしてください。バックアップデータが入ったHDDの事です。ここにTMPディレクトリを作成して、そちらを利用するという意味です。この作業後に、何らかの必要性にせまられて/mntbk/tmpディレクトリを削除した場合、ほぼ全てのコマンドが実行できなくなってしまいます。その場合には、以下のようにしてTMPディレクトリを元に戻します。TMPDIRfstabの書き換え書き換え作業が不要の場合でも、必ず確認をしましょう。パーティションの作成順序の違いにより、起動しないという事態に陥り、2日間もはまってしまいました...現在のマウント状況を確認します。/mntbk続いてfstabを開きます。0下線部分の違いにお気付きでしょうか。デバイス名「ad0s1e」と「ad0s1d」のマウント名が逆になってしまっています。このような場合には、「/mnt/etc/fstab」をエディタで開き、修正・上書き保存してください。CDを抜き、再起動すれば立ち上がります。後処理restoreを実行すると、各パーティションのカレントディレクトリにrestoresymtableというファイルが作成されます。これは増分バックアップを復元する際に必要になるものですので、restore作業が完了したら削除しておきましょう。復元したサーバを起動しようとすると以下のメッセージで長時間止まる。blanktime」という表示でタイムアウト待ちを参照してください。aborted.Fdiskでスライス作成後に[w]を押していませんか?Fdiskメニューでは[w]は押さずに、[q]だけを押し、Label設定が終わってから、最後にLabelメニュー内で[w]を押します。sysinstallでFdisk・Labelが失敗する私も検証中に何度も経験しました。sysinstallでFdisk・Labelが失敗するをご参照ください。ネットワークで接続された別のサーバにリモートバックアップを行いたい昔書いた記事ですが、「テープドライブへのバックアップ&リストア」こちらを参考にしてみてください。