まえがき
mondorescueを使って、"ソフトウェアRAID環境⇒非RAID環境、仮想環境、ハードウェアRAID環境"等、異なる環境へ移行する方法を紹介します。
内容は、こちらを参考にさせていただきましたが、Ubuntuでは若干違うところもあったため、補足しています。
ここで説明している各ハードコピーは"VMware Player"上で実際に展開している様子を採取しています。
バックアップの注意点
仮想環境の場合は特に問題はないみたいですが、"ソフトウェアRAID→ハードウェアRAID"の移行するなど、極端に構成が変わる場合は、バックアップをする前に移行後で使用するドライバを組み込んでおく必要があります。
私の場合、ubuntu 11.04の環境で"ソフトウェアRAID→ハードウェアRAID(Adaptec 6405E)"をやったのですが、Adaptecで提供しているubuntu/debianのドライバはカーネル版数の違いからか、インストールすることができませんでした。
そこで同じくAdaptecから提供されている、オープンソース版のドライバをビルドしようとしたのですが、カーネル版数が新しいためにコンパイルエラーが続発。エラーの原因は別で書いている"ハードウェア情報取得(heci編)"とほぼ同じでしたが、さすがにRAIDドライバではかなり不安なため、無理矢理の移植は断念しました。
最終的な方法は、LinuxKernel-3.0.0に同梱している"aacraid"がAdaptec提供のドライバと同じ版数だったため、このソースをubuntu 11.04に持ってきてカーネルコンパイルで生成させました。
仮想環境にリストアする場合は、まず、仮想環境を作り、"CD/DVDドライブ"にはバックアップしたISOイメージを指定したあとで仮想環境を開始させます。
実環境に戻す場合は、まず、BIOSでDVDドライブ(またはCDドライブ)から起動するように設定します。

起動したら、"boot:"プロンプトで"expert[enter]"を入力します。

※"expert"だけでカーネルパニックする場合は、"expert ramdisk_blocksize=1024[enter]"と入力してみてください。
viで"/tmp/mountlist.txt"を編集します。

1〜3行目の先頭を変更します。
  • /dev/md0 ⇒ /dev/sda1
  • /dev/md1 ⇒ /dev/sda2
  • /dev/md2 ⇒ /dev/sda3
1〜3行目の最後のuuid(8桁-4桁-4桁-12桁の文字列)を削除します。文字列は環境によって違います。
4行目以降をすべて削除します。
できあがりは下の画面のようになります。

編集が終わったら、[esc]キーを押して、":wq[enter]"で保存します。
"mondorestore[enter]"と入力して、リストアプログラムを起動します。

"Interactively"に移動して"[enter]"を押します。
バックアップしたメディアの種類に移動して"[enter]"を押します。この例ではバックアップはDVDに作成しています。
下の画面の"/dev/sda2"のところに表示されている、"Size (MB)"の数値と各マウントポイントの対応をメモしてください。

この例では、"dev/sda1〜3"の3つのパーティションが存在します。この3つのパーティションサイズの合計がメモしたサイズを超えないように配分する必要があります。ここでは、以下のように配分しています。
旧デバイス(パーティション)名 新デバイス(パーティション)名 マウントポイント サイズ
/dev/md0 /dev/sda1 /boot 512MB
/dev/md1 /dev/sda2 swap 4096MB
/dev/md2 /dev/sda3 / 257536MB
まず、一番上にある、"/dev/sda3"のところに移動し、"[enter]"を押します。
"Size (MB)"のところに移動し、"257536"を入力します。
"OK"のところにカーソルを移動させ、"[enter]"を押します。

最初の画面に戻りますので、入力した内容を確認します。
同じ要領で"/dev/sda1"のパーティションサイズを設定します。

同じ要領で"/dev/sda2"のパーティションサイズを設定します。

すべてのパーティションサイズの設定が終わったら、設定内容をもう1度確認します。
設定内容に間違いがなければ、"[tab]"を押して、"OK"のところにカーソルを移動させ、"[enter]"を押します。
確認の画面が3つ表示されますので、すべて"Yes"を指定して"[enter]"を押します。


リストアが始まります。
途中でメディアの差し替え指示が表示される場合がありますので、表示されたら、指示に従ってメディアを入れ替えます。
仮想環境の場合は、、、、、まだ、試していません、、

この画面は"Yes"を選んで"[enter]"を押します。
この画面は"Yes"を選んで"[enter]"を押します。
この画面は"OK"を選んで"[enter]"を押します。
シェル画面が表示されます。
viで"/etc/fstab"を編集します。
10、12、14行目の先頭にあるuuidを先ほどメモしたマウントポイントの対応に従って、"/dev/sda1〜3"に変更します。

できあがりは下の画面のようになります。先頭が"#"になっているところに、"/dev/md0〜2"の記載が残っていますが、コメント行なので気にする必要はありません。

編集が終わったら、[esc]キーを押して、":wq[enter]"で保存します。
viで"/etc/mtab"を編集します。
1行目の"/dev/md2"、12行目の"/dev/md0"の2ケ所を、先ほどメモしたマウントポイントの対応に従って、"/dev/sda1〜3"に変更します。この例では、1行目"/dev/md2→/dev/sda3"、12行目"/dev/md0→/dev/sda1"になります。

できあがりは下の画面のようになります。

編集が終わったら、[esc]キーを押して、":wq[enter]"で保存します。
"/etc/raidtab"を"/etc/raidtab.old"等にリネームします。
"/etc/mdadm"を"/etc/mdadm.old"等にリネームします。
"mkinitramfs"を実行してイメージを再作成します。なお、仮想環境の場合は、やらなくても特に不具合はないみたいですが、、、
参考文献やmondorescueのメッセージでは、"mkinitrdを使用せよ"となっていますが、ubuntuにはこのコマンドはありません。
"grub-install"を実行してgrubを再インストールします。
"grub-mkconfig"を実行して、grub.cfgを再作成します。ubuntuでは、この作業をやらないと正常に起動できませんでした。
"exit[enter]"を入力してシェルから抜けます。
この画面は"Yes"を選んで"[enter]"を押します。
入力フィールドに"/dev/sda"が入っていることを確認し、"OK"を選んで"[enter]"を押します。
この画面は"OK"を選んで"[enter]"を押します。
viが起動され、"/etc/fstab"の編集状態になりますが、先程編集済ですので、[esc]キーを押して":q[enter]"で終わります。
viが起動され、"/etc/mtab"の編集状態になりますが、先程編集済ですので、[esc]キーを押して":q[enter]"で終わります。
viが起動され、"/boot/grub/grub.cfg"の編集状態になりますが、先程編集済ですので、[esc]キーを押して":q[enter]"で終わります。
viが起動され、"/boot/grub/device.map"の編集状態になりますが、このファイルは不要ですので、、[esc]キーを押して":q[enter]"で終わります。
この画面は"Yes"を選んで"[enter]"を押します。
下の画面が表示されたら完了です。

バックアップのメディアをドライブから抜き(稼働環境では仮想マシンのハードウェア設定にある、CD/DVDを物理ドライブに変更してから)、リブートします。これで正常にubuntuが起動します。