(画像無く超適当な)
今更XP復旧手順
Hyper-V仮想化メモ


この記事はWindows XPの復旧手順です。
▽Windows 10の復旧修復手順はこちらです。
(かなり適当な)Windows10起動復旧修復手順メモ(画像なし)

0.はじめに

XPの情報はいつまでネットでヒットするのかわからないので、他の人の役に立つ記事を書こうというよりは、将来の「私」が困らないようにとの思いで書いたメモです。
私がわかれば良いので内容は適当です。

0-1.経緯

7年以上前に、昔使っていたXP環境を仮想化して最新のOS上で使用できるようにしようと思い立った…のが始まりです。
そして、下記のような流れで進んだものの詰み、面倒臭くなって放置していたという経緯になります。

・最初は Windows 7 上でXPモードのように、今まで使ってXPマシンの環境を起動したいと思った。
・使用中の環境まるごと仮想化の仕方がわからなかったが調べてなんとか仮想化はした。
・仮想ファイルにはしたもののそもそもCPUが仮想マシン対応していなかった。
・その後、対応しているCPUを搭載したPCにデータを移し、仮想化したXP環境を起動したが、ライセンス認証できずに詰んだ。(※)
※随分と何年も前のことなので詳細は忘れてしまいましたが、「非正規のWindowsとしてデスクトップが表示される」のではなく「デスクトップすら表示できない」という状況に陥ってしまったと記憶しています。
「一度、今まで使っていたPCでXPを起動後に、そのデータをもって再度仮想化ファイルを作成しなければならない」という記憶だけが強く残っていました。

昔使っていたXPに入っている起動したいアプリケーション(データを含む)があったので、今回重い腰を上げて、Windows 10 上の Hyper-V で Windows XP を起動できるように取り組んだ次第です。

1.XPが物理マシン上で起動しないとき

(元のPCで)XPが起動しなくなってしまったときの手順です。

私の場合、XPをファイル化したことで満足し、元のPCの起動可能なストレージをクリアしてしまいました。
しかし万一のときの念のために、データ自体(パーティション)のバックアップは取っていました。
上記の通り一旦起動してからファイルを作成し直すことになったので、バックアップから起動ストレージにパーティションを戻したのですが、起動せず、復旧という流れになりました。

【用意するもの】

▽手順「1-1.」「1-3.」で必要
・Windows XP のセットアップディスク(もちろんドライブも必要)

▽手順「1-1.」で必要
・修復するXPの「Administrator」という名前のユーザーのログオンパスワード
(いつもログオンしているユーザーに管理者権限があるかどうかは関係無し。「Administrator」ユーザーのパスワード。)

▽手順「1-2.」「1-3-1-6.」で必要
・別のPC
・ストレージ(HDD/SSD)を外付けできる機器(別のPCがデスクトップPCならSATAポートなどに繋いでもOK)

▽手順「1-3.」で必要
・Windows XP のプロダクトキー

★注意★
下記はダメな手順(ダメな用意)
・Windows XP のセットアップディスクからISOファイルを作成する。
・Rufusというソフトを使い、ISOファイルからブート可能なUSBメモリを作成する。
・USBメモリから起動する。

この手順だと「使用許諾契約書(EULA)を検出できません。」と出てしまい、セットアップ実行の継続が不可能でした。
USBメモリではなくセットアップディスクそのものを用いないとセットアップ実行することができませんでした。
なお、回復コンソールは出すことができましが、その回復コンソールがまともな状態なのかわからないので、USBメモリの使用はお勧めしません。
(USBメモリを変えてみたり、SDカード+アダプタにしてみたり、ISOファイルの作成を別のソフトで行ったりもしてみましたが、ダメでした。)

★備考★
うちにあるMicrosoft純正の Windows XP のセットアップディスクは SP1 のCD-ROMのみ。
しかし、そのCDから SP3適用済みCD を作成することが可能であったので、SP3 のCD-Rも作成済みです。
※SP3適用済みCD の作成方法はここでは説明しませんので他のサイトを参考にしてください。
2021年現在でも作成可能なのか?(ファイルが用意できるか?)とか、Windows10上でも作成できるか?などは、私にはわかりません。

1-1.回復コンソールから修復する

・セットアップディスクからブートさせ、最初の選択肢で「R=修復」を選択。

・回復コンソールというコマンドプロンプト画面が起動するので、表示に従いログオンするWindowsを選択する。(数字を入力)

・Administrator(という名前のユーザー)のパスワードを入力する。
→わからない場合は手順「1-1.」は諦める。

・その後は自由にコマンド入力が可能になるので、下記のコマンドをそれぞれ実行する。

chkdsk /r
fixboot
fixmbr
bootcfg /rebuild

1-2.MBRの再構築

★補足★
宣伝する気は無いのでソフトは何でも良いです。(リンクも貼りません。)
ただ、私は「MiniTool Partition Wizard 無料版」というソフトをよく利用しているので、このソフトでの手順を記します。

・別のPCに、「起動しないXPが入ったストレージ」を接続し、「MiniTool Partition Wizard」アプリケーションを起動する。

・接続したストレージの欄を見て、ディスクが(GPTではなく)「MBR」、XPのシステムパーティション(XP上でのCドライブにあたる部分)が「プライマリ」になっていることを確認する。
※今まで起動していたストレージなら問題無いが、ストレージを交換した際など、パーティションを新たにコピーした際に誤っていたら修正しておく。

・XPのシステムパーティションを右クリックして「アクティブに設定」して、その後にディスクを右クリックして「MBRの再構築」し、「適用」ボタンを押して作業を完了させる。

・元のPCにストレージを戻して起動することを確認する。

1-3.修復セットアップ

★注意★
修復セットアップすると環境が一部初期化する場合があり、また適用済みのWindows Updateが元に戻ることもあります。
2021年現在では既に入手出来ないパッチ等ももあるので、これを実行するのは最終手段と考えてください。

・セットアップディスクからブートさせ、最初の選択肢で「Enter=続行」を選択する。

・使用許諾誓約書では「F8=同意します」を選択する。

・キーボードの選択の後、インストール済みのXPが表示されたら「R=修復」を選択する。
※インストール済みのXPが表示されず、パーティションの一覧(Enter=インストール/D=パーティション削除/F3=終了)が表示されてしまったら、手順「1-3.」は実行できません。
その場合は修復を諦めて下さい……と言いたいところですが、「1-1.」の「chkdsk /r」を実行すればもしかしたらインストール済みのXPが表示されるようになるかもしれません。

・修復セットアップが実行され、何度か再起動し、途中でプロダクトキーの入力が求められるので入力する。

デスクトップが表示されれば成功!

1-3-1.asms が必要ですと表示されたら…

修復セットアップ中にCDの入力を求められ、OKしたのに「Windows XP ~ CD 上のファイル ‘asms’ が必要です。」と表示されることがあります。
その場合は下記を試してみてください。
どれか行けるはずです。

★補足★
後述の手順以外にUSBメモリやSDカードでも試してみています。
USBメモリについてはブート可能なもの、単にデータコピーしたもの、NTFSフォーマット、FAT32フォーマットで試しましたが、いずれも読み取ってはもらえませんでした。

1-3-1-1.ドライブレターを変えてみる

例えば「D:\i386」となっていたら、「A:\i386」~「Z:\i386」までドライブレターを変えて、試してみてください。
※大文字小文字問いません。

1-3-1-2.ドライブレターでは無くしてみる

例えば「D:\i386」となっていたら、表記を別の形に変えてみます。
光学ドライブが1つしか無い場合は「GLOBALROOT¥DEVICE¥CDROM0¥i386」。
2つ以上ある場合は「GLOBALROOT¥DEVICE¥CDROM0¥i386」「GLOBALROOT¥DEVICE¥CDROM1¥i386」「GLOBALROOT¥DEVICE¥CDROM2¥i386」と数字を増やして試してみてください。
※大文字小文字問いません。

1-3-1-3.CDドライブを変えてみる

別のCDドライブ(外付けでも可)にセットアップディスクを入れ直して、起動し直してみます。
※入力ダイアログで「キャンセル」ボタンを押すとシャットダウンの流れになるので、ディスクを別のドライブに入れ替えて、起動し直します。

1-3-1-4.レジストリ値を削除する

レジストリは「キー」「値」「データ」で構成されています。
「キー」はパスのようなもの。
「値」は項目名のようなもの。
「データ」は値の中に設定する文字や数字など。
そのレジストリの特定の値を削除します。
下記の手順で実行してください。

・入力ダイアログが出ている状態で「Shift」キーと「F10」キーを同時に押します。
・コマンドプロンプトが表示されるので「regedit」と入力してEnterします。
・レジストリエディタが表示されるので「HKEY_LOCAL_MACHINE」をクリックします。(ツリーが開いている状態なら、見づらいので閉じることをオススメします。)
・レジストリエディタのメニュー「ファイル」を開き、「ハイブの読み込み」をクリックします。
・ファイル名の箇所に「%Windir%\System32\Config\System.sav」と入力してファイルを開きます。
※フォルダを1つ1つ開いてマウスでファイルを選択しても構いません。通常は「C:\Windows\System32\Config」の中に「System.sav」があると思います。
・入力ダイアログが表示されるので「test」とか「aaa」とか適当に名前を入力します。(既にキーとして存在するSYSTEMなどの名前は避けてください。)
・「HKEY_LOCAL_MACHINE」のツリー(フォルダみたいなもの)を開くと、入力した名前(以下「test」として説明します)のキーが存在するので、「HKEY_LOCAL_MACHINE\test\ControlSet1\Control\Class\{4D36E965-E325-11CE-BFC1-08002BE10318}」を開きます。
※ControlSet1が存在せず、ControlSet2などから存在している場合もあります。
※「{4D36E965-E325-11CE-BFC1-08002BE10318}」です。似たようなキーがたくさんあるので間違わないように注意してください。
・開いた中に「UPPERFILTERS」や「LOWERFILTERS」の値が存在していたら、それぞれ削除します。(右クリックで削除したり、Deleteキーを押して削除します。)
・ControlSet1以外に、ControlSet2やControlSet3など複数存在している場合は、それぞれ上記の手順で値を削除します。
・削除を終えたら「HKEY_LOCAL_MACHINE」をクリックします。
・レジストリエディタのメニュー「ファイル」を開き、「ハイブのアンロード」をクリックします。
・レジストリエディタのウィンドウを閉じます。
・コマンドプロンプトのウィンドウを閉じます。(「exit」とコマンド入力しても良いです。)

入力ダイアログに戻ったら手順「1-3-1-1.」や手順「1-3-1-2.」を試します。
それでもダメな場合は一旦キャンセルして起動し直してみてください。

1-3-1-5.ドライバのインストール

デバイスマネージャからCDドライブのドライバをインストールします。
下記の手順で実行してください。

・入力ダイアログが出ている状態で「Shift」キーと「F10」キーを同時に押します。
・コマンドプロンプトが表示されるので「sysdm.cpl」と入力してEnterします。
・システムのプロパティが表示されるので「ハードウェア」タブをクリックして画面を切り替えます。
・画面の中程にある「デバイス マネージャ」ボタンを押します。
・デバイスマネージャが表示されるので「DVD/CD-ROM ドライブ」のツリーを展開し、セットアップディスクが入っているドライブを右クリックし、「プロパティ」を選択します。
・プロパティが表示されるので「ドライバ」タブをクリックして画面を切り替えます。
・画面内にある「ドライバの更新」ボタンを押します。
~途中省略(画面の指示に従って作業を進めてください)~
・ドライバの更新が終わったら、プロパティのウィンドウを閉じます。
・デバイスマネージャのウィンドウを閉じます。
・システムのプロパティのウィンドウを閉じます。
・コマンドプロンプトのウィンドウを閉じます。(「exit」とコマンド入力しても良いです。)

入力ダイアログに戻ったら手順「1-3-1-1.」や手順「1-3-1-2.」を試します。

それでもダメな場合は、デバイスマネージャを再び開きます。

・デバイスマネージャ内に「不明」と表示されている項目や、黄色くなっている「!」や「?」と表示されているデバイスがあれば、右クリックして「プロパティ」を選択します。
・プロパティが表示されるので「ドライバ」タブをクリックして画面を切り替えます。
・画面内にある「ドライバの更新」ボタンを押します。
~途中省略(画面の指示に従って作業を進めてください)~
・ドライバの更新が終わったら、プロパティのウィンドウを閉じます。
・デバイスマネージャのウィンドウを閉じます。
・システムのプロパティのウィンドウを閉じます。
・コマンドプロンプトのウィンドウを閉じます。(「exit」とコマンド入力しても良いです。)

入力ダイアログに戻ったら手順「1-3-1-1.」や手順「1-3-1-2.」を試します。

それでもダメな場合は、次の手順に進んでください。
なお、起動し直すとドライバのインストールが元に戻っていることがあるので、再起動を試みる必要は無いと思います。

1-3-1-6.Cドライブに「i386」フォルダを入れてしまう

asmsファイルが指定できないとき、うちではこの手順までやってできなかったことは無いので、これ以上の手順はありません。
最終手段です。

・別のPCに、「起動しないXPが入ったストレージ」を接続し、XPのシステムパーティション(XP上でのCドライブ)を開きます。
※エクスプローラー上にドライブが表示されない場合は、ドライブレターを割り当てます。
例えば Windows 10 なら、スタートを右クリックして「ディスクの管理」を開き、当該ディスクのパーティションを右クリックして、「ドライブ文字とパスの変更」→「追加」→適用に空いているアルファベットを選択します。

・同じ(別の)PCの光学ドライブに、XPのセットアップディスクを入れ、ディスクの中を開きます。
※実行はしないでください。エクスプローラーを右クリックして「開く」を選択すると、実行せずに開けます。

・開いたXPのセットアップディスクの中にある「i386」フォルダーをコピーして、XPのシステムパーティションの中に貼り付けます。
(XP上で C:\i386 となるよう、ドライブ直下にi386フォルダーをコピーします。)

~別のPCでの作業はここで終わり~

・元のPCにストレージを装着し直し、起動します。

・入力ダイアログが表示されたら「C:\i386」と入力して「OK」ボタンを押します。
→これでダメだったら諦めてください。

入力ダイアログは何度も何度も表示されます。
再起動後にもまた何度も何度も表示されることもあります。
なので、文字をコピーしておくと良いです。
根気よく入力してOKし続けて完了です。
(うろ覚えですが、一度だけ「C:\i386\lang」と入力する必要があった気がします。)

1-4.起動したら…

チェックディスク「chkdsk /r /f」を一度実行しておくと良いです。(上記手順とは異なり「/f」オプションを追加しています。)
再起動後の実行となるので、再起動してください。

また、このあとのHyper-V仮想化を行う場合は、ここでライセンス登録は行わないことをオススメします。
(登録済みの場合は気にしないでください。)
なぜなら、仮想化後にも「ハードウェアが変更された」とみなされ再登録が必要になるのですが、登録は短期間に何度も行えないからです。(半年以上(?)間を空ける必要があった気がします。)

2.Hyper-V上でXPを仮想マシンとして起動する

ここからは特に適当です。

【用意するもの】
・Hyper-Vに対応したCPU
・ストレージ(HDD/SSD)を外付けできる機器(PCがデスクトップPCならSATAポートなどに繋いでもOK)
・XPと同容量の空き容量(仮想ファイルを格納する容量)

2-1.BIOSの設定

例えば Windows 10 Pro を使用していても、CPUが対応していない場合は諦める必要があります。
過去、私はこれで、起動させたかったPCでの利用を諦めたことがあります。(CPUが対応していませんでした。)

BIOSの設定で、Intelの場合は「Intel VirtualizationTechnology」を、AMDの場合は「AMD SVM」を有効にします。
詳細な項目については利用しているものによって異なるため、マザーボードの説明書やメーカーのサイトで確認してください。

該当する項目が無い場合や有効にできない場合は諦めてください。

2-2.Hyper-Vの有効化

おそらく多くのPCでは初期は Hyper-V は有効化されていないと思われます。
その場合は「Windows の機能の有効化または無効化」からHyper-Vを有効化する必要があります。
コントロールパネルのプログラムから「Windowsの機能の有効化または無効化」画面を開くことが出来ます。

Hyper-Vのツリーにチェックを入れて「OK」ボタンを押し、再起動すれば有効になります。
※「Hyper-V Hypervisor」がグレーアウトして選択できない場合は、手順「2-1.」ができていないと思われます。
「Hyper-V Hypervisor」を有効にしていないと、Hyper-Vに仮想マシンを作成しても、起動時に「ハイパーバイザーが実行されていないため、仮想マシン ~ を起動できませんでした。」とエラーが出てしまい、起動できません。

2-3.XPをVHDX(VHD)ファイルにする

XPのドライブを仮想ハードディスクファイルにします。
VHDでもVHDXでもどちらでも良いですが、VHDXのほうが新しい形式で機能も加わっているため、特段の理由が無い限りVHDXで良いと思います。

PCにXPのストレージを接続し、下記のソフト「Disk2vhd」をダウンロードして、VHDXファイルを作成します。
https://docs.microsoft.com/en-us/sysinternals/downloads/disk2vhd

※Volumeがデフォルトで全選択されているので、XPのドライブのみ選択します。
(うちのPCはドライブレターが不足するほどにやたらドライブが多いので、チェックを外すのが面倒でした。)
※1つのVolumeにつき、1つのファイルが作成されます。(複数チェックした場合は複数ファイルが作成されます。)

「Create」ボタンを押すとファイルが作成されます。
作成中に表示される時間は、作成完了予定時間です。
USB3.0接続のSATA 2.5インチ SSD(XP)から、NVMe M.2 SSDへのVHDXファイル作成で、60GBぐらいで5分かからない程度でした。
両者ともHDDだと数十分かかることもあると思います。

2-4.Hyper-Vへの登録

Hyper-Vを起動して「仮想マシン」を新規作成します。
この際に手順「2-3.」で作成したファイルを選択します。

2-5.XPを起動する前に…

起動する前に設定を変更することをオススメします。
特にインターネットに繋がらないとライセンス認証がネット経由でできないので不便です。(ただし電話認証も可能。)

作成した仮想マシン名を右クリックして「設定」を選択し、設定画面を表示します。

2-5-1.不要なデバイスの削除

フロッピーやDVDドライブは削除して良いと思います。
起動後に「不明なデバイス」としていくつか表示されてしまい、ドライバのインストールも出来ませんでした。
私には不要だったので、ドライバのインストール方法を探ること無くデバイスを削除しました。

2-5-2.ネットワークアダプターの削除と追加

デフォルトで登録されている「ネットワーク アダプター」ではインターネットに接続できませんでした。(デバイスが有効になりませんでした。)
なので、ネットワークアダプターは一旦削除します。
そして新たに「レガシー ネットワーク アダプター」を追加します。
レガシーのほうではXP内で認識してくれました。
なお、設定画面での仮想スイッチの項目は「Default Switch」を選択しています。

2-5-3.メモリの増強

何も変更せずに起動してみたら、めちゃくちゃ重かったです。
なので、PC上の物理メモリ容量に余力がある場合は容量を増やすことをオススメします。

デフォルトでは1024MBを割り当てる設定になっていると思います。
XPと言えば通常は32ビット(※)なので、利用できる容量は4GBまで。最大で「4096MB」で良いと思います。
※64ビット版XPというものも実在し、私も利用していました。ただし一般的ではありませんでしたので、仮想マシンのXPを単に「XP」としか認識していない場合は32ビットだと思って良いかと思います。)

2-5-4.仮想プロセッサの数

何も変更せずに起動してみたら、めちゃくちゃ重かったです。
なので、PC上の物理プロセッサ数に合わせて増やすことをオススメします。

詳細は知りませんが、XPではプロセッサ数が8を越えると不具合が発生することがあるそうなので(最新の状態で解決済みなのか未解決なのかは不明)、私は4に設定しました。

2-6.ライセンス登録

起動したら「ハードウェアが変更された」と認識され、ライセンスの再登録が必要になります。
(レガシー)ネットワークアダプターが正常に認識されてインターネットに接続でる状態になると、2021年3月7日現在でもインターネット経由でライセンス登録が可能でした。

実はここまで頑張ったのに修復したXPは使いませんでした。(色々試している内に修復せずとも起動することができたので。)
何年も放置していた今までのXPのままでしたが、プロダクトキーを新たに入力するといったことも無く、環境をHyper-V上で使用できるようになりました。

2-7.画面サイズ

初期の画面サイズが小さいです。
Hyper-Vの設定画面でサイズ変更できるものかと思いましたが、できませんでした。
サイズを変えるにはどうすれば良いかというと……、XPの画面のプロパティでサイズを変更すると、ウィンドウも自動的に変更されます。

おしまい