リカバリDVDを作成できる「mkcdrec」

リカバリDVDを作成できる「mkcdrec」

Mondo Rescue以外にも、リカバリDVDを作成するオープンソースとして、mkcdrecやRelax and Recover(通称ReaR)などがあります。

Mondo Rescueの場合は、mondoarchiveコマンドのオプションによって、その挙動を変えることができました。一方、mkcdrecの場合は、設定ファイルのパラメータを適切に設定することによって、リカバリDVDの作成や出力先ディレクトリの指定ができます。

mkcdrecは、以下のURLから入手可能です。mkcdrecを稼働させるためには、ash RPMパッケージも必要です。

mkcdrecのtarball入手先
http://sourceforge.jp/projects/sfnet_mkcdrec/downloads/mkcdrec/v0.9.9/mkCDrec_v0.9.9.tar.gz/
ash RPMパッケージ
ftp://fr2.rpmfind.net/linux/sourceforge/m/project/mk/mkcdrec/mkcdrec/v1.0/ash-0.3.8-20.el5.rf.x86_64.rpm

上記のash RPMパッケージを、rpmコマンドを使ってインストールします。今回は、mkcdrecをtarコマンドにより/root/に展開します。

# rpm -vhi ash-0.3.8-20.el5.rf.x86_64.rpm
# tar xzvf mkcdrec_v0.9.9.tar.gz -C /root/

以下では、Red Hat Enterprise Linux 5.x環境における、mkcdrecの構築・操作手法を説明します。まず、mkcdrecのtarballを展開した/root/mkcdrec/配下にある設定ファイルConfig.shを開きます。

# cd /root/mkcdrec
# cp Config.sh Config.sh.org
# vi Config.sh

このファイルに定義されている変数のいくつかを、適切に設定する必要があります。以下では、管理者が知っておくべき最低限のパラメータの設定例を挙げます。

まずは、バックアップ対象サーバーの、OSのアーキテクチャを指定します。

BOOTARCH=x86_64

リカバリDVDのisoイメージの元となる、バックアップ・データのtar.gzファイルの出力先を指定します。

ISOFS_DIR=/var/tmp/backup

リカバリDVDのisoイメージを出力するディレクトリを指定します。

CDREC_ISO_DIR=/var/tmp/isodir

リカバリDVDに含めないディレクトリやファイルを指定します。NFSマウント先やDVD-ROMメディアなどがマウントされていないかどうかを事前に確認してから設定を行うのがよいでしょう。

EXCLUDE_LIST="/tmp/*
/var/tmp/*
/mnt/*
/proc/*
/home/*
/media/*
/work/*
"

/home以下には、一般ユーザーのディレクトリがあります。/homeのサイズは非常に大きくなるため、リカバリDVDには含めず、別途テープによるバックアップ運用を行うこともあります。/homeや/workなどの巨大なユーザー・データをEXCLUDE_LISTに含め、別途用意した外部ストレージなどにD2Dでバックアップを行う、といった方法も合わせて検討してください。

次に、1つのisoイメージのファイル・サイズを指定します。デフォルトでは670000(=670Mバイト)に設定されているので、これをDVDメディアの容量に変更します。isoイメージのファイル・サイズは、MAXCDSIZEパラメータで調整します。

MAXCDSIZE=4350000

「HP OpenView Data Protector」を利用していない場合は、DP_RESTOREを”n”に設定します。

DP_RESTORE=”n”

initrd-fsのサイズとして、INITRDSIZEを指定します。mkcdrecのバックアップ対象サーバーで設定すべきサイズは、以下のコマンドで確認します。

# grep CONFIG_BLK_DEV_RAM_SIZE /boot/config-`uname -r`
CONFIG_BLK_DEV_RAM_SIZE=16384

コマンドで確認した結果が16384になっている場合は、Config.shファイルに、以下のように記述します。

INITRDSIZE=16384

Config.shファイルの編集を終えたら、mkcdrecが正常に稼働できるかどうかテストします。makeコマンドに引数testを付与して実行します。

# cd /root/mkcdrec
# make test

mkcdrecが正常に動作するためには、mkisofsがインストールされている必要があります。事前にmkisofsがインストールされているかどうかを確認してください。

# which mkisofs
/usr/bin/mkisofs

mkcdrecによるリカバリDVDの作成

いよいよ、mkcdrecを使って、リカバリDVDのisoイメージを生成します。isoイメージの生成は、makeコマンドに引数CD-ROMを付与して実行します。すると、以下のような画面になり、バックアップが行われます。

# cd /root/mkcdrec/
# make CD-ROM

図13: mkcdrecによるバックアップの様子。パーティションごとにtar.gz形式で/var/tmp/backup以下に保管される様子が分かる。最終的には、tar.gz形式のファイルは削除され、リカバリDVD用のisoイメージが生成される

図13: mkcdrecによるバックアップの様子。パーティションごとにtar.gz形式で/var/tmp/backup以下に保管される様子が分かる。最終的には、tar.gz形式のファイルは削除され、リカバリDVD用のisoイメージが生成される

Config.shファイルで指定したEXCLUDE_LIST以外のディレクトリは、すべてバックアップされます。tar.gz形式(tar格納アーカイブをgzip圧縮)になり、/var/tmp/backupの下に保存されます。すべてのファイルのアーカイブが終了すると、isoイメージが/var/tmp/isodirディレクトリの下に保存されているはずです。isoイメージが生成されると、/var/tmp/backupの下のtar.gz形式のファイルは削除されます。isoイメージは、以下のような名前で保存されます。

CDrec-12.05.2010_1
CDrec-12.05.2010_2
CDrec-12.05.2010_3

上記のように、isoイメージが複数ある場合、その枚数分のDVD-Rメディアが必要になります。ファイル名は、CDrec-の後に作成年月日が付き、アンダーバーの後に枚数のカウントが付きます。このファイルは、ファイル名の拡張子(suffix)が付加されていません。DVD-Rライティング・ソフトによっては、適切な拡張子がついていないisoイメージを扱えない場合があるため、拡張子として.isoを付加しておきます。

# mv CDrec-12.05.2010_1 CDrec-12.05.2010_1.iso
# mv CDrec-12.05.2010_2 CDrec-12.05.2010_2.iso
# mv CDrec-12.05.2010_3 CDrec-12.05.2010_3.iso

作成したisoイメージは、Mondo Rescueの場合と同様、growisofsコマンドなどを使ってDVD-Rメディアに書き込みます。

mkcdrecで作成したリカバリDVDによるリストア

mkcdrecによって作成したリカバリDVDを使い、サーバーをブートさせます。Mondo Rescueの場合と同様に、RAIDコントローラの論理ボリュームを事前に作成しておき、リカバリDVDを使ってDVDブートします。

リカバリDVDでブートすると、下図のような画面が表示されるので、キーボードから2を入力してEnterキーを押します。

図14: mkcdrecにより作成したリカバリDVDからのブートの様子。リカバリを行う場合は、2を選択する

図14: mkcdrecにより作成したリカバリDVDからのブートの様子。リカバリを行う場合は、2を選択する

しばらくするとmkcdrecのリカバリのためのシェル・プロンプトが表示されます。プロンプトが表示されたら、リカバリDVDによるリストアを行います。リカバリを行うには、mkcdrecがメモリー上に作成した/etc/recovery/start-restore.shスクリプトを実行します。

# cd /etc/restore
# ./start-restore.sh

これで、mkcdrecによるリカバリが開始されます。リカバリが終了したら、rebootコマンドによりサーバーを再起動させ、正常に内蔵ディスクからブートできるかを確認します。

人気記事トップ10

人気記事ランキングをもっと見る

企画広告も役立つ情報バッチリ! Sponsored

ClickHouse Cloudが実現した広告運用SaaS「ATOM」のデータ基盤革新、パフォーマンスを向上しながら、運用負荷とコストを削減 11月11日 6:20 AIで開発が加速する時代、品質保証はどう変わる? Tricentisが示すAIエージェント活用の実像 11月9日 6:45 悪用までの猶予が「1分」に迫るフロンティアAI時代に開発と本番を貫く脆弱性管理が必要 10月29日 8:30 欧州CRA対応とSBOM運用。AI生成コードのOSS混入問題の対策とは ――スニペット単位で検出する「FossID」「Insignary Clarity」によるSBOM運用 9月16日 6:40 PostgreSQLからTiDBへ、稼働中SaaSで進める段階的DB移行の実践と再設計への展望 9月7日 6:30 機能安全開発におけるGoogleTestの活用を支援!「Parasoft C/C++test CT」で実現する効率化&AI連携 4月14日 6:30 【CNDW2025】Grafanaが明かす「オブザーバビリティの哲学」ー最小限の労力で実用的なインサイトを得るには 1月23日 6:30 【CNDW2025】プロダクト急増に備える基盤刷新 ーウェルスナビがECSからEKSへの移行で得た知見とは 1月15日 6:30 【CNDW2025】250環境を5人で運用、構築時間は30分に ーKINTOテクノロジーズが語るインフラ基盤組織の作り方 2025年12月18日 6:30 新たな自動化で熱視線! AIエージェントの「推論能力」を支える2つのコンポーネントとは? 2025年11月28日 6:30