VirtualBoxでWindowsXPの仮想環境を構築する

#（2023年11月追記）
書いてから暫く記事を放置してしまっていたのだが、確認したところWindows7のサポート終了と同時に、公式のXPモードのダウンロードリンクが終了していた。

もはや今更XPモードを使用する人はいないだろうが、有志がダウンロードリンクをアーカイブしているのを発見したので、リンクを差し替えておく。

後述しているが、本記事は技術学習を目的に執筆された物であり、ライセンス違反を推奨する物ではありません。実行の際は全て自己責任でお願いします。

# はじめに
https://support.microsoft.com/ja-jp/help/4057281/windows-7-support-ended-on-january-14-2020

2019年1月14日をもってWindows7のサポートが終了した。多くのニュースサイトや雑誌でサポートの終了を告知されていたにも関わらず、様々な企業がサポート終了日にアップデート作業に追われるという報道が連日行われていたのは耳に新しい。公式サポートの切れたOSを使うことは重大なセキュリティインシデントを抱えることであり、顧客情報や製品データなどの流出の観点からもお勧めは出来ない。

さてWin7からアップデートを行うわけだが、全ての機能がそっくりそのまま移行されるわけでは無い。とりわけ重要なのは ***XPモード*** の廃止であろう。

https://www.pasoble.jp/windows/7/08853.html#c3

現在でもWinXPをスタンドアローンとして利用している業種は多く存在し、その利用保守のためにもXP環境を求められる企業は少なくないはずだ。しかし、XPモードはWin7以下のOS対応でありWin10では使用できない。この場合Hyper-Vなどの仮想ソフトでWin7を構築し更にXPモードの仮想環境を立てるという手段が推奨される。しかしこの方法ではWin7のインストールメディア、もしくはOEMなどのプロダクトキーが必要になるが、用意できないという状況も充分に考えられる。

そのため今回はXPモード内にあるvhdファイルを利用したXPの仮想環境構築を紹介する。

**注意！**
vhdイメージの抽出及び、下記で説明するライセンス認証の回避はマイクロソフトライセンス違反に当たる可能性があります。本記事は技術学習を目的に執筆された物であり、ライセンス違反を推奨する物ではありません。実行の際は全て自己責任でお願いします。

# 必須環境

https://www.virtualbox.org/wiki/End-user_documentation
これによると32、64bit問わずのOSで起動可能、最低メモリは512MBだが2GB以上推奨。ハード容量はイメージファイルによるが今回は150GBほど使用している。勿論多いに超したことはない。

- 各種解凍ソフト

exeファイルを展開できればなんでも大丈夫。有名のだとフリーソフトの[7zip](https://sevenzip.osdn.jp/)とか、有償ソフトウェア（無料使用可能）の[WinRAR](https://www.winrarjapan.com/download)とか。

# ダウンロード
- VirtualBox

https://www.oracle.com/virtualization/technologies/vm/downloads/virtualbox-downloads.html

ここから最新版をダウンロードすること。インストールは指示通りに従えば良い。
インストールが完了したら下の方にある **Oracle VM VirtualBox Extension Pack** もダウンロードしインストールしておくこと。

- Windows XP Mode

https://web.archive.org/web/20200111155036/https://download.microsoft.com/download/A/2/F/A2F07A26-83C8-41FD-BD1C-76E4ECB4839F/WindowsXPMode_ja-jp.exe
(2023年11月リンク張り替え)

~~https://www.microsoft.com/ja-jp/download/details.aspx?id=8002~~

ここからダウンロード。exeが直接展開できないソフトの場合は拡張子を.cabに変更しておく。（上記に挙げたソフトは対応している）

# 環境構築

1.　任意の場所にXPモードのインストールファイルをコピーして展開する。
![WS000199.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/307125/5d9a7f4e-74f1-82eb-228c-9248ea931193.jpeg)

2.　1と同じフォルダにテキストファイルを新規作成し、以下のコードを貼り付ける

```WinXP.txt
@set CURRENT=%~dp0

@echo Start deployment. This window close automatically...

@msiexec.exe /a "sources\xpminstl64.msi" targetdir="%CURRENT%XPMode" /qn

```

※面倒な人は同じ物をアップロードしてあるのでダウンロードして使ってください。
1と同じフォルダに入れて4に従うこと。
https://ux.getuploader.com/Kouki_T/download/2

3.　名前を付けて保存でファイルの種類をすべてのファイルに変更し、拡張子を.batに変えて保存
![WS000201.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/307125/616c18e5-3bfb-f341-f362-678128accd24.jpeg)
.batとはバッチファイルのこと。ダブルクリックでコマンドを実行できる。

4.　保存したバッチファイルを実行するとXPModeというフォルダが出来ている
![WS000202.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/307125/88a0bc64-352e-e948-7b24-d218bd6e658d.jpeg)
マシンスペックによっては少し時間が掛かるので慌てず自動で閉じるのを待つこと。

5.　フォルダの中に展開されたvhdイメージの読み取り専用設定を外す← **重要**
![WS000203.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/307125/a8b3f611-12f8-0bc2-74cf-b7b7021ae656.jpeg)
XPMode→Program Files→Windows XP Modeの中にある。

6.　VirtualBoxを立ち上げ新規から仮想マシンを作成する
![WS000204.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/307125/db4a746b-7c66-4ab6-7b09-67301f5d62ab.jpeg)
この時、バージョンをWindows XP (64-bit)に変更しておくこと。

7.　メモリの割り当てを行う
![WS000205.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/307125/0b597759-848d-3689-736a-814c149b516d.jpeg)
使用しているパソコンの半分くらいあると最適と思われる。（4GB→2048、8GB→4096など）
今回は2048で作成。

8.　既にある仮想ハードディスクを使用するを選択し先ほど展開したvhdを指定する
![WS000207.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/307125/d33e78ce-c330-7a78-73ce-f99a2596a0ce.jpeg)

![WS000206.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/307125/12c259f0-29b7-d8ac-7038-4c057c704948.jpeg)

仮想ハードディスクの選択→追加から先ほどのvhdファイルを追加する。

9.　作成を選択すると仮想マシンが構築される
![WS000208.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/307125/08d5026b-989e-206c-0038-15cd3c2fd0c5.jpeg)

10.　仮想マシンの設定を変更する
![WS000210.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/307125/108dbcaf-755b-70a7-0645-95313e989860.jpeg)
一般タブの高度を開き、以下のように変更。
-クリップボードの共有
双方向に変更
- ドラッグ&ドロップ
- 双方向に変更

![WS000209.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/307125/42e25478-7986-b6a1-f2fb-d6d4f1ccb74b.jpeg)
さらにディスプレイのタブを開き、以下のように変更。
- ビデオメモリー
32MBに変更
- アクセラレーション
3Dアクセラレーションを有効化にチェック
2Dビデオアクセラレーションを有効化にチェック

変更を完了したらOKで閉じる。

11.　XPのセットアップを行う
![WS000211.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/307125/93c7b4fd-08f5-88b6-3747-e9b4fccff4ae.jpeg)
指示に従って進めればOK。クリックできない場合は上段の入力からマウス統合をオフにする。
ちなみにマウスを仮想環境から出すには右側のCtrlキーを押せば良い。

![WS000212.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/307125/f136e2f8-f385-9f84-3ea8-99ba62174674.jpeg)
設定が完了するとこのように黒い画面で必ずフリーズする。上段の仮想マシンからリセットを行う。

12.　新しいハードウェアの検出を全てキャンセルする
![WS000213.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/307125/3db8199e-fe03-2202-13dd-997b12399ba6.jpeg)
本来ならネットワークからドライバーを取得できるのだが、ネットに接続できてないからキャンセル。

13.　自動更新をオフにする
![WS000214.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/307125/c1c2cef8-75b1-6906-d0fc-9cbce0860a84.jpeg)
ネットに接続しないためここもオフで良い。

14.　セットアップ完了
![WS000215.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/307125/f65c2664-4c55-ec82-dccb-d0fef15cbe97.jpeg)
この画面になれば無事セットアップは完了となる。

# （補足）マウス統合と共有フォルダーの設定を行う
ここまでで初歩的なセットアップは完了している。しかしこのままだとマウスが仮想環境とホスト側で別れていたり、画面をフルサイズにしても仮想デスクトップの大きさが変わらない等色々不便な部分がある。そこでGuest Additionsと呼ばれるプラグインをインストールする。

## マウス統合と画面サイズの自動変更を可能にする
・上段のデバイスタブからGuest Additionsイメージの挿入を選びインストール
![WS000216.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/307125/8ce9b2fe-23f0-6594-f6eb-1e28c3383ebb.jpeg)

![WS000217.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/307125/f0cd1595-a629-81da-540e-d315aae8a209.jpeg)
インストール中にこのような画面が出るが全て続行を押して問題ない。

![WS000218.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/307125/98005019-7652-4bc9-883f-ec73515f6f84.jpeg)
Finishを押して再起動させる。もし黒い画面でフリーズしたら11と同様にリセット。

・再起動すると画面サイズが自動で切り替わる&マウス統合が使える
![WS000221.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/307125/2c332951-eb33-0319-8ffc-ee3bbe584877.jpeg)

## 共有フォルダーを設定する
ここまでキチンと設定できている場合、USBの利用は可能になっているはず（上段のデバイスからUSB→使用したいデバイスを選択）だが、環境によってはうまく認識しなかったり、ドライバーがインストールされず使えないことがある。
その場合、ゲストOSとXPを繋ぐ共有フォルダーを作成すればファイルの移動が可能になる。

![WS000222.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/307125/449a27e3-f30b-fac5-a6e3-bba373cc4ddb.jpeg)
仮想環境上段のデバイス→共有フォルダー→共有フォルダーの設定、
もしくは管理画面の設定から共有フォルダーのタブをクリック。

![WS000223.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/307125/c94b0567-9141-dc89-902c-920a586fc22a.jpeg)
右上の＋マークから共有フォルダーの追加画面を出し、フォルダーのパスから共有したいフォルダーを設定する。

![WS000224.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/307125/e5e2a4b6-34d6-b11d-a356-b864a37b6f4e.jpeg)

自動マウントと永続化するにチェックを入れてOKを押す。

![WS000225.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/307125/d97c70e9-d06a-8624-81ba-740ec89ebbf7.jpeg)
するとこのように共有フォルダーとしてネットワークドライブが追加される。

#（補足）ライセンスについて
このやり方で構築したXPはライセンス認証が行われていないため、30日間しか使用できない。30日が経過したら再度この方法で環境を構築すれば良いがなんとかライセンスを回避したいと考えるのが普通だろう。以下のサイトを参考にBIOSを書き換えると問題なくライセンスを回避できた。

http://chiky7.blog.fc2.com/blog-entry-2.html

バイナリを変更するなど少々難易度は高いがネットワーク環境不要で回避できるので実行する価値はあると考えられる。

#参考にしたサイト様

fmnb0516’s blog
XP ModeをVirtualBoxで動かす
https://fmnb0516.github.io/blog/2016/01/11/2fedeed860b637f25eb9dcd040701e45.html

４０代「独男」派遣社員からフリーターになった男の気の向くままブログ
OracleVirtualBox6.0でWindowsXPモードを使う２＆BIOSファイル改造
http://chiky7.blog.fc2.com/blog-entry-98.html

株式会社ビー・スペース
XP ModeをWindows 10上で動かさなければならない方、必読！
http://www.b-space.net/xpmode_windows10-windowsxp/