稼働中のWindowsXPを他のHDDに移植する(WindowsXP移植の儀 2010年版)
前提
参考サイト
- 稼働中のWindows 2000/XP/2003を別のHDDにコピーする方法
- これをベースに実施する
- 複数のOS | Windows NT/2K/XP
- レジストリ・ハイブをロードしてオフラインでレジストリを閲覧・編集する@IT
- かつてやったこと無い作業である。こんなこと出来たんか
概要
稼働中のOSをコピーして別のHDDに稼働可能環境を移植する場合、おおまかにわけて二つの問題がある
稼働中OSの中にユーザが触れないファイルがある
レジストリ類、ログイン中ユーザのユーザプロファイルファイルはそのままではコピーできない。さすがにここら辺のファイルがないとOSがまともに動かない。
対応:
- 別のOSを起動してそこからコピーする
- 強引なやりかた(ntbackupでレジストリを書き出す、コピー用に別のユーザでログインする)
作業内容
この文章では、「強引なやりかた」でOSのファイルコピーをしたあと、「レジストリを書き換える」方法について記述する。別のOSでコピーした場合はレジストリ編集だけやればいいです。
1.新しいHDDを接続してパーティションを切ってフォーマットする
ごみ箱ファイルとか出来るとフォーマット出来なくなる可能性があるので、ドライブごとの指定で無効化した方がいいと思う。
2.現在稼働中OSのファイルコピーを行う
稼働中のWindows 2000/XP/2003を別のHDDにコピーする方法の1)〜5)まで実行する。リンク先ではxcopyを使っているが、コピーできればなんでも良いと思う。わたくしはFastCopyを使って必要な分だけコピーした。
3.コピー先HDD上にあるレジストリを書き換える
レジストリ・ハイブをロードしてオフラインでレジストリを閲覧・編集する@ITを参照する。なかなか凄まじい内容だがリンク先に図と詳細な解説があり、作業はさほど難しくない。
- 「ファイル名を指定して実行」からregeditを起動
- ツリーから「HKEY_LOCAL_MACHINE」を選択した状態で「ファイル」->「ハイブの読み込み」を選択
- コピー先HDDの「%SystemRoot%\system32\config\system」を選択して開く
- キー名は「TMPCOPY」みたいな適当な名前をいれる
- 「TMPCOPY」以下に読み込んだレジストリが展開するので、「SYSTEM\MountedDevices」を開く
- キーの編集を行う(複数のOS | Windows NT/2K/XPの「Signature」と「volume GUID」参照)
- 「\??\Volumeなんとかかんとか」のキーを全て消す(無い場合でも起動時に作成されるらしい)
- 「\DosDevices\C:」のキーを名前の変更で「\DosDevices\X:」のように使っていないドライブレターに変更する
- 元OSから認識されていたコピー先OSパーティションのドライブレターを含むキーの名前を「\DosDevices\C:」に変更する
- ツリーで追加した「TMPCOPY」を選択した状態で、「ファイル」->「ハイブのアンロード」を選択
- レジストリエディタを終了