※※※※ 少なくともUbuntu 22.04以降では正常にリストアできません ※※※※
※※※※ リストア時にシンボリックリンクが正常に復元できない症状を確認しています ※※※※
まえがき
mondorescueを使って、"ソフトウェアRAID環境⇒非RAID環境、仮想環境、ハードウェアRAID環境"等、異なる環境へ移行する方法を紹介します。
内容は、こちらを参考にさせていただきましたが、Ubuntuでは若干違うところもあったため、補足しています。
ここで説明している各ハードコピーは"VMware Player"上で実際に展開している様子を採取しています。
手順
仮想環境にリストアする場合は、まず、仮想環境を作り、"CD/DVDドライブ"にはバックアップしたISOイメージを指定したあとで仮想環境を開始させます。
実環境に戻す場合は、まず、BIOSでDVDドライブ(またはCDドライブ)から起動するように設定して起動します。
"expert[enter]"を入力する
"expert"だけでカーネルパニックする場合は、"expert ramdisk_blocksize=1024[enter]"と入力してみてください。
"/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]"を押します。
メディアを選択する
この例ではバックアップはDVDに作成しています。
"Size (MB)"の数値と各マウントポイントの対応をメモする
下の画面の"/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]"を押します。
最初の画面に戻りますので、入力した内容を確認します。
同じ要領で他のパーティションサイズを設定する
設定内容を確認する
設定内容に間違いがなければ、"[tab]"を押して、"OK"のところにカーソルを移動させ、"[enter]"を押します。
確認の画面が3つ表示される
すべて"Yes"を指定して"[enter]"を押します。
リストアが始まる
途中でメディアの差し替え指示が表示される場合がありますので、表示されたら、指示に従ってメディアを入れ替えます。
仮想環境の場合は、、、、、まだ、試していません、、
3つ確認画面が表示される
すべて"Yes"を選んで"[enter]"を押します。
シェル画面が表示される
"/etc/fstab"を編集する
10、12、14行目の先頭にあるuuidを先ほどメモしたマウントポイントの対応に従って、"/dev/sda1~3"に変更します。
できあがりは下の画面のようになります。先頭が"#"になっているところに、"/dev/md0~2"の記載が残っていますが、コメント行なので気にする必要はありません。
編集が終わったら、[esc]キーを押して、":wq[enter]"で保存します。
"/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]"を押す
"/etc/fstab"の編集状態になる
先程編集済ですので、[esc]キーを押して":q[enter]"で終わります。
"/etc/mtab"の編集状態になる
先程編集済ですので、[esc]キーを押して":q[enter]"で終わります。
"/boot/grub/grub.cfg"の編集状態になる
先程編集済ですので、[esc]キーを押して":q[enter]"で終わります。
"/boot/grub/device.map"の編集状態になる
このファイルは不要ですので、、[esc]キーを押して":q[enter]"で終わります。
下記の画面は"Yes"を選んで"[enter]"を押す
下記の画面が表示されたら完了です
バックアップのメディアをドライブから抜き(稼働環境では仮想マシンのハードウェア設定にある、CD/DVDを物理ドライブに変更してから)、リブートします。これで正常にubuntuが起動します。