自宅でサーバを運用していたときに導入していたバックアップ・リストアツールの「Mondo Rescue」をスタンドアローンで使用しているCentOS6.2にインストールする。
CentOS6.2を使い始めてすぐにインストールしようと思っていたのだが、すっかり忘れていた。
過去の記事を見ていて思い出し、何かあってからでは遅いので早速実施した。
Mondo Rescueとは、Linux用のオープンソースソフトウェアでシステムのフルバックアップを行いisoイメージファイルとして、ブート用のCD/DVDディスクなどが作成できるソフトウェアです。
●使用するパッケージ類
・lzo(高速圧縮ライブラリ)
・lzop(高速圧縮ユーティリティ)
・afio(ファイル移動用のユーティリティ、アーカイブエンジン)
・buffer(高速書き込みユーティリティ)
・mindi(CD-ROMとメモリだけで動くLinux miniディストリビューション)
・mindi-busy(mindi/mondo用のシェルユーティリティ集)
・mondo(バックアップ・リストアツール)
・mondo-doc(mondoのドキュメント一式)
・syslinux(Linuxカーネルを起動するために使用するブートローダ)
●インストール
◇高速圧縮ツールのインストール
lzo・lzopを確認
# yum list lzo lzop
lzoしか見つからないが取りあえずインストール
# yum -y install lzo
lzopを探して、ダウンロードしてインストール
# wget http://dl.fedoraproject.org/pub/epel/6/i386/lzop-1.02-0.9.rc1.el6.i686.rpm
# rpm -Uvh lzop-1.02-0.9.rc1.el6.i686.rpm
Mondo Rescueのダウンロードサイトからyumのリポジトリ設定ファイルをダウンロードしてyumでインストールできるようにする。
# cd /etc/yum.repos.d/
# wget ftp://ftp.mondorescue.org/rhel/6/i386/mondorescue.repo
◇Mondo Rescueのインストール
# yum -y install mondo
~~中略~~
Installed:
mondo.i386 0:3.0.2-1.rhel6
Dependency Installed:
afio.i686 0:2.5.1-1.el6.rf buffer.i386 0:1.19-4.rhel6 mindi.i386 0:2.1.3-1.rhel6
mindi-busybox.i386 0:1.18.5-1.rhel6 syslinux.i686 0:4.02-7.el6
Complete!
依存関係のインストールでmondoをインストールするだけで必要なパッケージはインストールされる。
◇mondo-docのインストール
# yum -y install mondo-doc
ドキュメントの場所は、/usr/share/doc/mondo-doc-2.2.8/ディレクトリにそれぞれhtml、pdfファイルなどがある。
●バックアップの実行
◇必要なディレクトリを作成する
バックアップ先のディレクトリを作成
# mkdir /home/backup
スクラッチディレクトリ(isoファイル作成時に使用する一時ディレクトリ)の作成
# mkdir /var/mondo/scratch
テンポラリディレクトリ(スクラッチ以外の作業用ディレクトリ)の作成
# mkdir /var/mondo/tmp
◇安全に確実なバックアップを取るためにシングルユーザモードに変更する
# init 1
◆isoファイルとしてGUI表示しながら、DVDサイズにlzo高速圧縮を使用して、/homeディレクトリ配下のユーザファイルとバックアップ用一時ディレクトリを除外して作成されるisoファイルにホスト名と日付が入った名前でバックアップを実行
# mondoarchive -Oi -g -L -N -s 4480m -d /home/backup -9 -S /var/mondo/scratch -T /var/mondo/tmp -E ‘/home|/var/mondo’ -p `hostname`_`date +%Y%m%d`
◆オプションを付けずにmondoarchiveコマンドを実行すると、対話的に進めながら実行される
-O | バックアップを実行する。 |
-V | 現在のファイルシステムとバックアップファイルを比較照合する。 |
バックアップメディア必須オプション | |
-c SPEED | CD-Rディスクを使用する。 |
-w SPEED | CD-RWディスクを使用する。 |
-r | DVDディスクを使用する。 |
-i | ISOイメージファイルを作成する。 |
-n MOUNT | 事前にマウントしてあるNSF共有を使用する。書式として192.168.1.1:/home/nsfのようにする。 |
-t | TAPEメディアを使用 |
-U | USBマスストレージ(USBメモリやUSBハードディスクなど)をブータブルとして使用する。デバイス上のデータはすべて削除される。 |
必須オプション | |
-d DIRECTORY | バックアップ先がCD/DVDなどではデバイス名、ISOファイルならばディレクトリ名を指定する。 |
その他オプション | |
-D | 差分バックアップを実行する。ファイルシステムを調査してフルバックアップからの差分のみをバックアップする。 |
-E PATH | 指定したパスを除外する。ただし、-d、-S、-Tの指定パスは自動で除外される。複数指定する場合はシングルクォーテーションで囲みデリミタにパイプを使用する。書式は-E ‘/home|/tmp’のようにする。 |
-I PATH | -Eとは逆にバックアップに含めたいパスを指定する。指定したディレクトリだけをバックアップしたい場合などに使用する。 |
-S PATH | ISOイメージファイル用の一時作業用ディレクトリを指定する。ディレクトリはあらかじめ作成しておく必要がある。指定しない場合のデフォルトは/直下 |
-T PATH | テンポラリディレクトリを指定する。ISOイメージファイル以外の作業データ用ディレクトリとなる。ディレクトリは作成しておく必要がある。指定しない場合のデフォルトは/直下 |
-s SIZE | バックアップをISOファイルやCD/DVDにする際にメディアの容量をm(メガ)、g(ギガ)で指定する。CD-Rの場合700m、DVD用のISOファイル作成には4480mなどと使用する。 |
-N | マウントされたすべてのネットワークファイルシステムをバックアップから除外する。 |
-g | GUIモードで進捗状況が見れる。 |
-L | デフォルトの圧縮フォーマットbzip2を高速圧縮エンジンのlzoを使用する。 |
-G | bzip2に代えて標準でより高速な圧縮エンジンgzipを使用する。 |
-[0-9] | 圧縮レベルを指定する。デフォルトは3で、0を指定した場合は圧縮されない。 |
-p FILENAME | ISOイメージファイルの名前を指定する。デフォルトではmondorescue-1.iso、mondorescue-2.isoとなるが、-p hogehogeと指定するとhogehoge-1.iso、hogehoge-2.isoのようになる。 |
●リストアの実行
私の環境で予備の部品(HDD)を持っていないため、リストアは試していません。
機会があれば実行してみようと思う。
なので、リストアの要領だけ書き込むことに…
ブートメディアからマシンをブートすると自動で起動し、
boot:
というプロンプトになる。そのまま[Enter]キーを押すとmondorestreが自動的にGUIで開始される。
メニューが表示されるので選択する。
Automatically | 通常はこれを選択し、全自動でディスクパーティションのクリア・再構成・フォーマットが行われ、フルリストアされる。 |
Interactively | 対話的に進めていく方法で、良く分からずにやるとろくでもない結果になる。 |
Compare Only! | リストアファイルと現在のファイルシステムを比較する。 |
Exit to shell | 終了してシェルプロンプトに戻る。 |
リストアが完了するとシェルプロンプトに戻る。
exitでリブート、haltで停止する。
リストア後に初めて起動した際には、fsck実行されるのでディスクチェックを実施する。