Mondo RescueによるLinuxのバックアップとリストア - バックアップ編
Linuxなどをフルバックアップする際に良く利用されるであろうフリーソフトウェア。
単にバックアップするだけなら簡単だが、構成によってはリストアが難しい。
このページでは、RedHatEnterpriseLinux6のサーバをMondo RescueによってDVD-Rにバックアップし、かつリストアする手順を説明する。
(仮想化の時代にはもう使わないかも・・)
1. インストール
ソースファイルをダウンロードする方法もあるが、互換性等をチェックしてくれるパッケージ版をダウンロードする。
必要なインストールパッケージは以下の通り。 ただし、依存関係によってはそのほかのパッケージもインストールされる可能性あり。
パッケージ名 説明
mondo
mindi バックアップとリストアで必要なパッケージ
mindi-busybox mondo, mindi , mindi-Busyboxをインストールすると、残りのパッケージも
afio 依存関係上、一緒にインストールされる(※ 1)
buffer
syslinux
lzop mondoarchiveの-Lオプションで必要な高速圧縮ライブラリとユーティリティ
lzo -Lオプションを使わない場合は、不要
genisoimage ISOイメージファイルを作成する  mkisofsから変更された
mtools MS-DOSのファイルを操作するためのツール
wodim DVDへ書き込む   ライセンスの関係で、cdrecordから変更された
※ 1 mondo、mindi、mindi-busyboxにはバージョンの互換性があるので、同じバージョンになるように注意する。
  mondo3.0.xは開発版なので、安定版の最新版は、2.2.9.xとなる。
mondo、mindi、mindi-busyboxのバージョンについては、以下のFTPサイトで確認をしておく。
ftp://ftp.mondorescue.org/[OS]/[アーキテクチャ]/
インストール
# rpm -qa | egrep 'mondo|mindi|afio|buffer|lzo|lzop|geniso|mtool|wodim' インストール済みパッケージの確認
mtools-4.0.12-1.el6.x86_64 (yum list installed | grep xxx でも良し)
wodim-1.1.9-11.el6.x86_64 おそらくこの3つはデフォルトであると思う
genisoimage-1.1.9-11.el6.x86_64
# cd /etc/yum.repos.d/ リポジトリファイルのあるディレクトリへ移動
# ls
rhel-source.repo
# wget ftp://ftp.mondorescue.org/rhel/6/x86_64/mondorescue.repo Mondo RescueのHPからリポジトリを取得
# wget ftp://ftp.mondorescue.org/rhel/6/x86_64/buffer.repo ここではRHEL6、64bitに対応したリポジトリを取得した
リポジトリを利用しなくてもここのHPからrpmパッケージを落としてきても良い
# ls
rhel-source.repo   buffer.repo   mondorescue.repo
# yum clean metadata 念のためゴミを削除
# yum clean all
# yum install mondo-2.2.9.7-1.rhel6 mindi-2.0.7.8-1.rhel6 mindi-busybox-1.18.3-3.rhel6 互換性のあるmondo , mindi , mindi-busyboxはバージョンまで指定する
afio , buffer , syslinuxは依存関係上、一緒にインストールされる
# yum install lzop lzo 残りのlzop、lzoをインストール
# rpm -qa | egrep 'mondo|mindi|afio|buffer|lzo|lzop|geniso|mtool|wodim' インストール済みパッケージを確認
mtools-4.0.12-1.el6.x86_64
lzo-2.03-3.1.el6.x86_64
afio-2.5-1.rhel6.x86_64
mondo-2.2.9.7-1.rhel6.x86_64
mindi-2.0.7.8-1.rhel6.x86_64
wodim-1.1.9-11.el6.x86_64
lzop-1.02-0.9.rc1.el6.x86_64
buffer-1.19-4.rhel6.x86_64
mindi-busybox-1.18.3-3.rhel6.x86_64
genisoimage-1.1.9-11.el6.x86_64
# vi mondorescue.repo リポジトリは不要だがここでは削除をせず、読み込みを無効にした
enabled=0 enabled=0で無効になる
# vi buffer.repo
enabled=0
2.バックアップ
ここでは、DVDに焼くためにisoイメージでバックアップをした。
オプションを変更すれば、直接メディアに書き込んだり、バックアップ先を変更したりすることができる。
ISOイメージファイルの作成
# df -h バックアップ先に十分な容量があることを確認
# mkdir /var/mondo ここではISOイメージファイルを保存するディレクトリを新規に用意した
# cd /var/mondo
# mondoarchive -O -i -L -N -s 4200m -d /var/mondo -E /var/mondo ISOイメージファイルを作成
オプションについて
-O ファイルシステムをCD、テープ、ISOイメージ、NFS
シェアにバックアップします。
-i バックアップメディアとしてISOファイルを使用します。
-L bzip2の代わりに速い圧縮エンジンのlzo を使います。
-N ネットワークファイルシステムを除外します。
-s サイズ DVDへ書き込む最大サイズを指定します。
-d ディレクトリ ISOイメージファイルの保存場所を指定します。
-E ディレクトリ 書き込み対象外のディレクトリを指定します。
複数ある場合は、 "ディレクトリA|ディレクトリB|ディレクトリC"
のように | で区切る
# ls -l サイズが大きいと、複数作成される
mondorescue-1.iso 今回は1つのみだった
DVD-Rへ書き込み
サーバのDVDデバイスの利用が無理ならば、ほかのサーバにisoイメージを転送して焼いても良い。
# wodim --devices
wodim: Overview of accessible drives (1 found) : 念のためデバイス名を確認
-----------------------------------------------------------------
 0  dev='/dev/scd0'     rwrw-- : 'hp' 'DVD A  DS8A5LH'
-----------------------------------------------------------------
# wodim -v -eject speed=8 dev=/dev/scd0 -data mondorescue-1.iso DVDへ書き込み
オプションについて
-v 進捗状況を画面に表示させます。
-eject 書き込み後DVDを取り出します。
speed=数値 書き込み速度を指定します。
dev=デバイス名 書き込み対象のデバイスを指定します。
-data ISOイメージファイル名 書き込み対象のファイルを指定します。