XPの物理PC実行環境を仮想マシンとして保存
サポート期限が迫ってきたWindowsXP搭載PCですが、Windows7や8への移行でPC自体の廃棄やOS換装で実行環境を捨て去ることになります。
個人ドキュメント等のデータや、時間の掛かりそうな過去のデータ類を整理するにあたって、旧PCの環境をそのまま仮想マシンとして残しておければ、安心してさっさとWindows7や8へ環境をシフトしてしまえるでしょう。
ただし、Windowsマシンは昨今に至っても、HDDを別PCへ乗せ換えて起動すると互換性のある環境でないと、ブルースクリーンに遭遇してセーフモードすら立ち上がりません。
これは主に起動時の最適化によるものですが…、まぁ詭弁でしょう。面倒事はサポートしたくなかったり、OS購入を促進したかったり等色々と勘ぐる事は出来ますが…、本題へ行きましょう。
仮想マシンはVMware(VM Player)を使用します。
抽出したHDDをマウントしてレジストリをハイブ読み込みで編集するための環境(理想はVMware上のXP)が必要になる場合があります。
ただし、抽出元のPCが問題なく稼働できるのであれば、抽出前にレジストリの修正を行えるのでこれは必要ありません。方法と理由はこの記事の最後の方へ記述しています。
破棄するWindowsXPのHDDイメージを抽出します。
起動中のOSのイメージ化は不可能なので、Linux系のLiveCDからの物理HDDをddコマンドでイメージ化するのがいいでしょう。
仮想マシンを起動させるPCのHDDを、ネットワーク上で共有してLinux上にマウントして抽出すればUSB HDD等を使わずに済ませることも出来ます。
> mkdir landisk ; マウント用ディレクトリ > mount //192.168.1.10/vmhdd landisk ; 別PCの共有をマウント > cd landisk > dd if=/dev/sda of=oldpc.img ; ddコマンドでイメージ作成 > cd ../ > umount landisk
抽出したイメージをvmdkへ変換します。
QEMU付属のqemu-img.exe等のユーティリティを使用してコンバートも出来ますが、せっかくddで抽出したrawイメージですので、rawイメージを使用するvmdkを作成すれば時間の節約になります。
# Disk DescriptorFile version=1 CID=19454c09 parentCID=ffffffff createType="monolithicFlat" # Extent description RW 117210240 FLAT "oldpc.img" 0 # The Disk Data Base #DDB ddb.virtualHWVersion = "4" ddb.geometry.cylinders = "0" ddb.geometry.heads = "0" ddb.geometry.sectors = "0" ddb.adapterType = "ide" ddb.toolsVersion = "7394"
RW ~に続くのはセクター数で、下がHDDのジオメトリです。hdparmでパラメータを取得して計算してもいいですが、LiveCDだと入っていない場合があるので、ファイルサイズ÷512(小数点以下切り捨て)をセクター数、ジオメトリ設定を全て0としても差し支えありません。
ファイル形式はVMware4相当ですが、昨今のVMWareに読み込ませればvmdkファイルを変換することが出来ます。
レジストリ修正が不可能だった場合、これを仮想マシンで起動してもブルースクリーンになり起動できないのでひと手間加えます。
まずブルースクリーンの原因ですが、これはマイクロソフトのサポートで説明がなされています。
Windows XP のシステム ディスクを他のコンピューターに移動した後に STOP 0x0000007B エラーが表示される
http://support.microsoft.com/kb/314082/ja
原因
このエラーは、バックアップ コンピューターの大容量記憶域コントローラー ハードウェアのレジストリ エントリおよびドライバーが、Windows XP にインストールされていない場合に発生することがあります。IDE (Integrated Device Electronics) コントローラーを使用する場合、Intel、VIA、および Promise などの異なるチップ セットがいくつか存在します。各チップ セットは異なる PnP ID (プラグ アンド プレイ ID) を持ちます。
バックアップ コンピューターの大容量記憶域コントローラーの PnP ID 情報は、Windows XP によって正しいドライバーが初期化されるように、起動前にレジストリに存在する必要があります。
HDD抽出前にこれが実行できれば、ここでの手間は要らないのですが、トラブルにより既にPCが起動できない場合、別PCによるレジストリのハイブ編集をする事になります。
HDDが認識されていることを確認したら[スタート]→[ファイル名を指定して実行]でregedit.exeを実行します。
ここまで来れば後は使う人次第でしょう。
ディスカッション
ピンバック & トラックバック一覧
[…] XPの物理PC実行環境を仮想マシンとして保存 […]