※システム関連の作業の備忘録的なものになります。
現在稼働中のCentOSのサーバの情報を仮想環境化で再現するための作業になります。
※作業中のメモを参考にしていますが、間違えている可能性もありますので、注意が必要です
※条件によっては必要ない作業などがある可能性がありますので、実施する際は試行錯誤が必要になるかもしれません
■バックアップ
稼働中のサーバの情報を外付けHDDなどに保存する(/mnt/usb1にマウントしたとする)
1.各種情報の保存
●[sfdisk -d /dev/sda > /mnt/usb1/sfdisk.sda.txt]
●[fdisk -l /dev/sda > /mnt/usb1/fdisk.sda.txt]
●[cat /etc/fstab > /mnt/usb1/fstab.txt]
●[df -h > /mnt/usb1/df.txt]
など必要に応じて情報を外付けHDDにコピーする
2.バックアップの実施
※本来であればレスキューモードなどで立ち上げてから作業することが望ましいですが、一応動いているサーバで試してみましたが、(簡単に確認した限りでは)問題なく動きました(状況によるので必ずしも同様の結果になるとは限らないことを念頭に)
●[dump -0uf /mnt/usb1/sda1.dump /dev/sda1](必要分実行)
■復元
取得した情報を元に仮想環境に復元します
今回はWindows環境のVirtualBoxに構築します
1.VirtualBoxで新規作成
※64bitのOSが選択できない場合はBIOSの設定を変更する必要がある場合があります(端末によっては選択できない場合もあるようです)
2.作成した環境のコントローラーにCentOSのISOファイルを設定
今回はCentOSをダウンロードしてから使用します
3.レスキューモード
言語やキーボードの設定をします
ネットワークの設定はとくには必要ありませんが、必要に応じて設定します
4.パーティション情報などの設定
●[sfdisk /dev/sda < /mnt/usb1/sfdisk.sda.txt](必要分実行)
※場合よっては[–force]オプションが必要になります
※VirtualBoxの起動時に外付けHDDを設定している場合、外付けHDDがsdaに割り当てられ、仮想のHDDがsdbとなる場合があります。特に問題はないはずですが、少し気持ちが悪いので、レスキューモードで立ち上げた後に外付けHDDを認識させて、仮想のHDDをsdaにする
5.フォーマット
●[mkfs.ext3 -L /boot /dev/sda1]
●[mkfs.ext3 /dev/sda2]
●[mkswap /dev/sda3]
※環境に応じて変更します
6.復元作業用のディレクトリを用意
●[mkdir /mnt/boot]
●[mount -t ext3 /dev/sda1 /mnt/boot]
(必要分実行)
7.復元
※リストアは実行するディレクトリに解凍されるので注意すること
●[cd /mnt/boot]
●[restore -rf /mnt/usb1/sda1.dump]
(必要分実行)
全てが完了したら、一度再起動をする(必要ないかもしれません)
※外付けHDDはもう必要ありませんので外しておきます
8.レスキューモード
言語やキーボードの設定をします
ネットワークの設定はとくには必要ありませんが、必要に応じて設定します
9.ブート関連の設定
●[mkdir /mnt/root]
●[mount -t ext3 /dev/sda2 /mnt/root]
●[mount –bind /proc /mnt/root/proc]
●[mount –bind /dev /mnt/root/dev]
●[mount –bind /sys /mnt/root/sys]
●[mount /dev/sda1 /mnt/root/boot]
●[chroot /mnt/root]
●[grub-install /dev/sda]
10.復元した情報を仮想環境の情報に更新
※ここからは必要ないものも含んでいる可能性もあります
※「******」の部分は[uname -r]などで調べた値となります
●[mv /boot/initrd-******.img /boot/initrd-******.img.old]
●[mkinitrd /boot/initrd-*****.img *******]
※[blkid]などで調べたUUIDに書き換え
●[vi /etc/fstab]
●[vi /etc/mtab]
●[vi /boot/grub/menu.1st]
※場合よっては[–force]オプションが必要になります
●[depmod -a]
●[dracut]
11.再起動
ISOファイルを取り外して再起動します
以上で完了になります
※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※
補足:差分バックアップしている場合
※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※
●[dump -0uf /mnt/usb1/sda1.dump /dev/sda1]
●[dump -1uf /mnt/usb1/sda1_1.dump /dev/sda1](フルバックアップ(0)と違うファイル名にする)
●[restore -rf /mnt/usb1/sda1.dump]
●[restore -rf /mnt/usb1/sda1_1.dump](差分の全てを繰り返し実施する)