- 対象の HDD をダンプする(partimage を使う)
- VMware 用の仮想ディスクを空っぽの状態で作る(QEMU を使う)
- 2.の空っぽ仮想ディスクに領域を作る(fdisk を使う)
- 1.のダンプを、3.の領域へとリストアする(partimage を使う)
用意するもの。
- 作業場:
ここでは Windows マシンを使う。対象の HDD 上で動いてなくて、VMware と QEMU が使えて、でかいディスク容量があるマシンなら、何でもいいと思う。 - 起動環境:
ここでは Knoppix の iso イメージを使う。VMware 用の仮想イメージ以外で、fdisk と partimage が使える環境を VMware Player から起動できるものなら、何でもいいと思う。 - QEMU:
空っぽの仮想ディスクを作るのに使う。ここでは QEMU on Windows の qemu-img コマンドを使う。
実際の作業の流れ。
- partimage で対象の HDD をダンプして、作業場からファイルとして見える場所にイメージファイル(群)として保管する。
- Windows のコマンドプロンプトで、qemu-img コマンドを使って空っぽの VMware 用仮想ディスクを作る。対象の HDD と同じサイズで vmdk 形式にする。対象が 120Gバイトならこんな具合。
> qemu-img create -f vmdk hokansaki.vmdk 120G
これでhokansaki.vmdk
という仮想ディスクができる。 - 空っぽの仮想ディスクをフォーマットしたいのだけど、空っぽなので、当然のことながら VMware Player で仮想マシンを起動することができない。そこで、何かしら起動環境が必要になる。空っぽの物理ディスクに OS をインストールするときと同じ理屈ですね。つまり、BIOSチップ を CD/DVDブートにするのと同じ要領で、VMware Player の BIOS を CD/DVD ブートに設定し、ROM ドライブに Knoppix のディスクを入れて Player を再起動すればいい。VMware Player の起動時に F2 を押せば BIOS 画面に入れる。
ただ、せっかく仮想マシンなんだから、わざわざ物理的な起動ディスクを使う必要もない。作業場の HDD 上に Knoppix の iso を置いておいて、それを Player の起動時に読むようにしたほうが手っ取り早いというもの。つまり、こんな vmx ファイルで仮想マシンを読み込めばいい。(この例では Windows の Fドライブ以下に Knoppix 5.1.1 の iso が置いてある。guestOS の一覧はこのへんを参考に。ide1 の deviceType を cdrom-image としているため、この場合も BIOS で CD/DVD ブートに設定する必要あり).encoding = "Shift_JIS"
この構成で仮想マシンを起動する前に、仮想マシンから作業場(具体的には、ダンプしたイメージファイルの置き場所)が見えるようにする設定を忘れずに。VMware Player のバージョン3 には、「仮想マシン設定の編集」という GUI が用意されているので、そこから作業場のハードディスクを追加するだけだった。
config.version = "8"
virtualHW.version = "4"
memsize = "512"
ide0:0.present = "TRUE"
ide0:0.fileName = "hokansaki.vmdk"
ide0:0.mode = "persistent"
ide0:0.deviceType = "disk"
ide1:0.present = "TRUE"
ide1:0.fileName = "F:\knoppix-iso\KNX5.1.1J_AC.200.iso"
ide1:0.deviceType = "cdrom-image"
ethernet0.present = "TRUE"
ethernet0.connectionType = "nat"
usb.present = "TRUE"
displayName = "hokan saki"
guestOS = "other26xlinux"
nvram = "hokansaki.nvram" - 空っぽの仮想ディスクを fdisk でフォーマット。上記の構成なら、くだんの空っぽの仮想ディスクは
/dev/hda
として認識されているはずなので、$ sudo fdisk /dev/hda
- partimage で、ダンプした対象 HDD のイメージファイルを
/dev/hda1
にリストア。partimage を実行する前に、対象 HDD のイメージファイルの置き場所をマウントしておくこと。イーサネットだと、たぶんすごい時間がかかる。ついててよかった eSATA。 - ブートローダの修復。GRUB ならこんな感じ。
$ sudo mount /dev/hda1 /media/hda1
(マウントのときは Knoppix の UI を使わず、コンソールから mount コマンドで実行すること(Knoppix についてくる
$ sudo chroot /media/hda1
$ grub-install /dev/hda/etc/fstab
の設定のせいで読み取り専用になってしまうため)
あと、fdiskで領域(この場合は/dev/hda
)をブート可能に設定しておくこと。 - BIOS の CD/DVD ブートを解除すれば、物理マシンで稼動していたシステムがそっくり VMware Player 上で起動するようになるはず。