インストールしたWindows 2000/XPのクローンを作る

上の応用で、既にインストールしてあるWindowsのクローンを作ってそれぞれ独立に起動できるようにする。ノートPCでリカバリCDがある時にリカバリ直後の状態を保存しつつクリーンインストールしたいけどリカバリは問答無用でハードディスクの先頭からC:としてしまうので困った、という場合に有効(実体験)。
結論からいえば、極一部のファイルを除いて単にコピーすれば良い。ただしWindows起動中はレジストリファイル等がロックされてコピーできないので、回復コンソールやLinuxを使ったりして工夫する必要がある。ntldrだけは単純コピーではうまくいかないので、回復コンソールからfixbootする。クローン作成後、元のパーティションをマスクすると起動途中で止まってしまう場合は、レジストリにあるパーティション情報が実際と異なっているのが原因*1。これを修正するためには、レジストリのHKEY_LOCAL_MACHINE\SYSTEM\MountedDevicesにある\DosDevices\X:のようなキーを消して再起動すれば良い(消したキーは勝手に再生成してくれる)。

*1:Windows 2000/XPはいったん起動するとパーティションテーブルよりレジストリの方を信用するので、Windows以外でパーティション構成を変更するとハマる。