dump/restoreでPC交換

VMware上にCentOS 3.7を使用したサーバ環境を構築してテストを行ったが、上手く行ったので実機にサーバを移動することになった。
ところが、VMwareでゲストOSをLinuxにすると、仮想HDDがデフォルトでSCSIとなることに気が付かなかったために、SCSI HDDからIDE HDDにOSイメージを移動することになってしまった。
何にしろ、別のPCへの移動は同じPCへの復旧とは違い、dumpしてrestoreするためにはちょっとしたコツが必要だった。
面白かったので、その方法を以下に記録して置こう。

用意するもの

  • CentOS 3.7のインストールCD
  • CentOS 4.3のライブCD
  • ネットワークストレージ(NAS

バックアップ手順

rootユーザによって以下の手順でVMware上のCentOS 3.7をバックアップする。
なお、NASTeraStationを使用した。

# mkdir /mnt/nas
# smbmount //nas/share /mnt/nas -o username=admin
password:
# mkdir /mnt/nas/centos
# dump 0af /mnt/nas/centos/sda1_boot.dump /boot
# dump 0af /mnt/nas/centos/sda2_root.dump /

adminはNASに書き込む権限のあるユーザの代名詞なので、実際に合わせて変更して欲しい。
rootドライブをバックアップした場合、2GBに収まらないためにdumpコマンドがデータを書き込めない旨のメッセージを表示する可能性があるが、そのときは慌てずに別のコンソールを使用し、出来上がったバックアップファイルを以下の例のようにリネームして、dumpコマンドに処理を続行するように指示する。

例)1回目

# cd /mnt/nas/centos
# mv sda2_root.dump sda2_root.dump.1

また、リストアするときに困らないようにパーティション情報などを保存して置く。

# fdisk -l /dev/sda > /mnt/nas/centos/fdisk.txt
# cp /etc/fstab /mnt/nas/centos
# mount > /mnt/nas/centos/mount.txt
# cp /etc/mtab /mnt/nas/centos
# df > /mnt/nas/centos/df.txt

リストア手順

以下の手順でバックアップしたCentOS 3.7を実機にリストアする。

  1. 最小構成でCentOS 3.7を実機にインストールする。
    そのとき、パーティションの構成はfdisk.txt、fstabを参考にして手動で設定する。
    パーティション数、パーティションサイズ、ディスクラベルを間違えないように注意して欲しい。
  2. 実機でCentOS 4.3のLiveCDを起動する。
    CDブートが出来るようにBIOSが設定されていることが前提である。
    起動時のGRUBオプションは "linux nox" を指定する。
    起動後にrootユーザでログインする。
  3. 下記(1)に示す通り、TeraStationをマウントする。
  4. 下記(2)に示す通り、第2パーティションの内容をリストアする。
  5. rebootコマンドで再起動を実行し、HDDから起動するようにBIOS画面が表示されている間にLiveCDを取り出して置く。
  6. リストアしたCentOS 3.7が正常に起動することを確認する。
(1) TeraStationをマウント

# mkdir /mnt/nas
# smbmount //nas/share /mnt/nas -o username=admin
password:
(2) 第2パーティションの内容をリストア

# mount /dev/hda2 /mnt/hda2
# cd /mnt/hda2
# rm -r *
# restore rf /mnt/nas/centos/sda2-root.dump.1
(2本目のテープを要求されたら)
/mnt/nas/centos/sda2-root.dump.2
# vim etc/fstab
("sda"→"hda"に変更して保存)


ちなみに、このようなPCの交換はWindows NT系OSでは全く不可能である。
Windows 9x系OSではお祭り騒ぎはあるが、かろうじてPCを交換することができた。
Microsoftはソフトウェアの持つ柔軟性を一切捨て去り、ちゃんと代金を支払っているユーザの利便性よりも、如何にして代金を支払わせるかに血道を上げている。