Linux システム全体の ISO イメージ・ファイル(アーカイブ・ファイル)作成(Relax-and-Recover,Mondo Rescue)

【概要】 Linux システム全体をブート可能な ISO イメージファイルとしてアーカイブすると,システム障害時に,OS を含めたシステム全体を復旧(ベアメタルリカバリ: Bare Metal Recovery)することができる。

このページで扱うツールは次の 2 つである。

作成した ISO イメージファイルには,復旧作業用のシステムを起動するためのブートイメージが含まれる。この ISO イメージから起動すると復旧環境が立ち上がり,イメージ内のデータを用いてシステムを復元できる。作成した ISO イメージファイルは,バックアップ対象とは別のディスクに保管する。

作成した ISO イメージファイルの検証

アーカイブ作成の処理がエラーなく完了しても,そのイメージからリストアできるとは限らない。作成後は,仮想マシン(VirtualBox,KVM/QEMU など)で ISO イメージファイルから起動し,復旧環境が立ち上がることを確認する。

Relax-and-Recover (ReaR) のインストール (Ubuntu 24.04, Ubuntu 26.04)

APT パッケージマネージャを使用してインストールする。ISO イメージの作成に使う xorriso などは依存パッケージとして併せてインストールされる。

sudo apt update
sudo apt install -y rear

ReaR によるシステム全体の ISO イメージファイル作成

1. バックアップ先ディレクトリの準備:

ISO イメージファイルの保存先を作成する。十分な空き容量があり,かつバックアップ対象のディスクとは物理的に異なるディスク上のファイルシステムに配置する。

# 例: /mnt/backup にマウントされた外部ドライブを保存先とする場合
sudo mkdir -p /mnt/backup

2. 設定ファイルの編集:

ReaR の設定は /etc/rear/local.conf に記述する。

sudo nano /etc/rear/local.conf

次の内容を記述して保存する(Ctrl+O で保存,Ctrl+X で終了)。

OUTPUT=ISO
BACKUP=NETFS
BACKUP_URL=iso:///backup/
OUTPUT_URL=file:///mnt/backup
BACKUP_PROG_EXCLUDE=( "${BACKUP_PROG_EXCLUDE[@]}" '/mnt/backup/*' )

3. ISO イメージファイルの作成:

sudo rear -v mkbackup

処理が完了すると,/var/lib/rear/output と,OUTPUT_URL で指定したディレクトリに ISO イメージファイルが作成される。

ISO イメージファイルのサイズに上限を設ける場合は,/etc/rear/local.confISO_MAX_SIZE(単位: MB)を記述する。

ReaR によるリストア(復元)

作成した ISO イメージファイルでコンピュータを起動し,メニューから復旧用システムを選択する。root でログインし,次のコマンドを実行して画面の指示に従う。

rear recover

リストア操作はディスクのパーティションを作り直し,システム全体を上書きする。実行する前に手順を理解し,まずテスト環境で検証する。

Mondo Rescue の利用 (Ubuntu 22.04 以前)

Ubuntu 22.04 以前では,上流サイト(http://www.mondorescue.org/ftp/ubuntu/)が配布するバージョン別のパッケージを入手し,dpkg でインストールする。Mondo Rescue が内部で使用する afio は,Ubuntu の multiverse リポジトリに収録されている。

システム全体の ISO イメージファイルを作成するコマンドは次の通りである。

sudo mondoarchive -Oi -9 -d /mnt/backup -E '/mnt/backup /tmp/mondo-work' -S /tmp/mondo-work -p $(hostname)-$(date +%Y%m%d)

コマンド実行後,-d で指定したディレクトリに プレフィックス-1.isoプレフィックス-2.iso のようなファイルが作成される。ログは /var/log/mondoarchive.log に記録される。

リストアするには,作成した ISO イメージファイルでコンピュータを起動し,表示される指示に従って mondorestore を実行する。