※今回ご紹介する操作は、Windows XPのパッケージ版ライセンスを持っているユーザーであれば違反行為にならないようですが、ライセンスを持っていない場合には違反行為になり罰せられるので注意してください。
すでに、サポートも終了した「Windows XP」ですが、環境によっては、どうしてもWindows XPを使わなくてはならないという方もいらっしゃることと思います。
XP Modeの提供は、Windows 7までとなっていて、昨今のPCで標準となっているWindows 10では、動かすことすらできないのが実情です。
Windows XPを使わなくてはならないといった理由には、それぞれあると思いますが、その中でも、装置のソフトウェアがWindows XPで対応を打ち切っていたり、作成したツールのメンテナンスが打ち切りになったりといった状況下が非常に多いようです。
これから説明する方法は、サポート外になるので、完全な自己責任で参考にしてみて下さい。
今回、使用したツールは、次の通りになります。
- Windows 7向けVirtual PC(Windows XP Mode)
- Oracle VM VirtualBox
- xedit
それでは、手順を説明します。
XP ModeからWindows XPのHDDイメージを抽出
マイクロソフト社のサイトからXP Modeのインストーラをダウンロードしてきます。
ダウンロードしてきた「WindowsXPMode_ja-jp.exe」を名前を変更で、「WindowsXPMode_ja-jp.exe.cab」にします。
続いて、cabファイルを解凍できるツールで、解凍します。
私の場合は、Lhaplusを使って解凍しました。
解凍すると、
WindowsXPMode_ja-jp
┣ sources
┃ ┣ xpm
┃ ┣ xpminstl32.msi
┃ ┗ xpminstl64.msi
┣ xpmmsilauncher.exe
┗ xpmmsilauncher64.exe
このようなファイル構成になっていることがわかります。
Windows 7以下であれば、そのままインストールができるのですが、Windows 10のため、バッチファイルを作成し実行することで、XPの仮想OSイメージが入ったVHDファイルを抽出します。
バッチファイルには、以下の内容を記述し、実行します。
ファイル名:xpminstl.bat
xpminstl.batの中身:
C:¥Windows¥System32¥msiexec.exe /a “xpminstl32.msi” targetdir=”C:¥Users¥{ユーザー名}¥Desktop¥XPMode¥WindowsXPModeja¥sources¥XPMode” /qn
ここで、「taegetdir」に指定するディレクトリは、先ほど「WindowsXPMode_ja-jp.exe」を解凍してできたフォルダ内「sources」の中に新しいフォルダを作成し、その場所を指定するのがわかりやすいと思います。
「xpminstl.bat」が出来上がったら、実行します。
実行は、そのままアイコンをダブルクリックでもいいですし、コマンドプロンプトから実行しても同じ結果になりますので、お好きな方法をとってください。ちなみに私は、ダブルクリックで実行しました。
すると、上記batファイルでしていたフォルダ「XPMode」内には、
XPMode
┣ Program Files
┃ ┗ Windows XP Mode
┃ ┣ Tutorial
┃ ┣ convert.bat
┃ ┣ KEY.txt
┃ ┣ VXPEULA.txt
┃ ┗ Windows XP Mode base.vhd
┗ xpminstl32.msi
このように解凍され、目的のWindows XP 仮想OSイメージのVHDファイル「Windows XP Mode base.vhd」が出現します。
この「Windows XP Mode base.vhd」を使用することになるので、デスクトップやドキュメントフォルダといった任意の場所にコピーします。
Oracle VM VirtualBoxのセットアップ
Oracle社Webサイトから、VirtualBoxをダウンロードしてきます。
この記事を書いているときの最新バージョンは「6.0.4」でした。
ダウントードしてきたら、併せて「Oracle VM VirtualBox Extension Pack」もダウンロードしてきておきましょう。
この「Oracle VM VirtualBox Extension Pack」は、VirtualBox本体と同バージョンでなければ利用できませんので、一緒にダウンロードしておきます。
ダウンロードが完了したら、まず、VirtualBox本体をインストールします。
インストールは、次へ次へで進めて完了しておきます。
仮想マシンの作成
VirtualBoxのセットアップが完了したら、いよいよ、先ほど抽出したWindows XPのVHDファイルを使って、Windows XPの仮想マシンを作成します。
VirtualBoxを起動し、仮想マシンの保存先を確認します。仮想マシンの保存先は、
[ファイル] -> [環境設定]
で表示される「環境設定ダイアログ」から「デフォルトの仮想マシンフォルダー」欄を確認します。
標準設定では、
C:¥Users¥{ユーザー名}¥VirtualBox VMs
となっているので、もし、別の場所に変更したいときには、この部分を書き換えます。
今回は、標準設定を前提に話を進めます。
それでは、仮想マシンを作成していきます。
- [新規]をクリックします。
- 「名前とオペレーティングシステム」ダイアログでName:には、「winxp」
タイプ:には、「Microsoft Windows」
バージョン:には、「Windows XP(32-bit)」に設定し、「次へ」をクリックします。
- 「メモリーサイズ」ダイアログでは、 1024MB にし、「次へ」をクリックします。
- ここで、先ほど抽出したVHDファイルは、VirtualBoxでは読み込めないので、読み込むことのできる「VDI」形式に変換をします。
変換には、「convert.bat」を作成します。
convert.batの中身
set CURRENT=%~dp0echo %CURRENT%
“C:¥Program Files¥Oracle¥VirtualBox¥VBoxManage.exe” internalcommands sethduuid “C:¥Users¥{ユーザー名}¥Desktop¥XPMode¥WindowsXPModeja¥sources¥XPMode¥Program Files¥Windows XP Mode¥Windows XP Mode base.vhd”
“C:¥Program Files¥Oracle¥VirtualBox¥VBoxManage.exe” clonevdi “C:¥Users¥{ユーザー名}¥Desktop¥XPMode¥WindowsXPModeja¥sources¥XPMode¥Program Files¥Windows XP Mode¥Windows XP Mode base.vhd” “C:¥Users¥{ユーザー名}¥VirtualBox VMs¥winxp¥winxp.vdi”
となります。
この「convert.bat」を実行します。
変換が正常に完了すると「C:¥Users¥{ユーザー名}¥VirtualBox VMs¥winxp」配下に「winxp.vdi」が出来上がっています。
さて、仮想マシンの作成画面が「ハードディスク」ダイアログで止まっています。
ここで、「すでにある仮想ハードディスクファイルを使用する」を選択し、「作成」をクリックします。
仮想マシンの設定
仮想マシンの作成で、VirtualBoxの仮想マシン一覧に「winxp」が追加されています。
初期設定のままだと、動きがモッサリしているので、少々「winxp」の設定を変更します。
仮想マシン一覧にある「winxp」をクリックし、「設定」をクリックします。
設定項目一覧が表示されるので、「システム」をクリックし、「フロッピー」のチェックを外します。
次に、「ディスプレイ」をクリックし、「ビデオメモリ」を「128MB」に変更し、「アクセラレーション」の「3Dアクセラレーションを有効可」にチェックを入れます。
次に、「ネットワーク」をクリックし、「割り当て」を標準設定の「NAT」から「ブリッジアダプター」に変更します。
以上の設定が完了したら、「OK」をクリックします。
このあと、Windows XPの初期設定を行っていきますが、XP Modeはライセンス認証が認証済みとなって配られているのですが、このような手順で抽出したOSイメージは未認証状態になってしまっています。
BIOSファイルの作成
調べたところ、XP Modeでは、SLP 認証といわれる方法でアクティベーションが行われており、これはライセンス認証の方法として、BIOSのとある領域に認証用の文字列を埋め込むことでライセンス認証を完了した状態にしているんだそうです。
なお、この操作は、Windows XPのパッケージ版ライセンスを持っているユーザーであれば違反行為にならないようですが、ライセンスを持っていない場合には違反行為になり罰せられるので注意してください。
そのBIOSの場所が、
アドレス:0x908A以降
文字列:Windows_Virtual_XP_F9161D8E7FCC11DDBFAA369856D89593
になります。
そこで、この文字列が埋め込まれたBIOSイメージを作成し、XP Modeの仮想OSイメージに読み込ませることで、ライセンス認証をクリアした状態にします。
BIOSイメージは、Linux環境を使って生成します。
ここで、Linux環境を持っていない場合には、Ubuntuのセットアップイメージファイルをダウンロードしてきて、VirtualBox上に構築します。
私の場合は、KDDI研究所の国内ミラーサイトからダウンロードしてきました。
http://ftp-srv2.kddilabs.jp/Linux/packages/ubuntu/releases-cd/
ftp://ftp.kddilabs.jp/Linux/packages/ubuntu/releases-cd/
国内ミラーサイトは、他にもあります。
理化学研究所
http://ftp.riken.jp/Linux/ubuntu-releases/
ftp://ftp.riken.jp/Linux/ubuntu-releases/
JAIST
http://ftp.jaist.ac.jp/pub/Linux/ubuntu-releases/
ftp://ftp.jaist.ac.jp/pub/Linux/ubuntu-releases/
OSイメージをダウンロードしてきたらVirtualBox上に構築し、「端末」を使って、
sudo sh -c “head -c 1048576 /dev/mem | tail -c 65536 > vboxbios.bin”
を実行します。
すると、約65KBのBIOSイメージが出来上がります。
私は、これをホストOSのWindowsとゲストOSのubuntu間で共有フォルダを用意して、共有し、ファイルをWindows側にコピーしました。
この他にも、FTPやSCPを使った方法がありますので、やりやすい方法で、ホストOS側にBIOSイメージファイルをコピーしてください。
ちなみに、共有フォルダを使う手順としましては、VirtualBoxの仮想マシン一覧から「ubuntu」を選択し、設定をクリックします。
設定一覧から「共有フォルダー」をクリックし、ダイアログ右上にあるフォルダアイコンをクリックし、共有したいフォルダを選択します。
この共有したいフォルダは、ホストOS側のフォルダになります。
共有したいフォルダを選択したら、「自動マウント」にチェックを入れます。
次に、仮想マシン:ubuntuを起動し、端末を立ち上げ、今選択した共有したいフォルダをマウントします。
まず、
# cd /mnt
で「/mnt」へ移動します。
ここにマウントポイントを作成します。今回は、マウントポイントを「win」とします。
# sudo mkdir win
最後に、共有したいフォルダを、winにマウントします。
# sudo mount -t vboxsf sharevb /mnt/win
これで、/mnt/winを介して、Windowsに作成してある共有フォルダにデータをコピーできます。
それでは、さっそく、作成した「vboxbios.bin」を共有フォルダへコピーしてください。
Windows側の共有フォルダに「vboxbios.bin」が出現しますので、「vboxbios.bin」を書き換えます。
BIOSファイルの書き換え
バイナリエディタxeditをダウンロードしてきます。
xeditで、「vboxbios.bin」を開き、「0x908A」を検索します。
次に、置き換える値
Windows_Virtual_XP_F9161D8E7FCC11DDBFAA369856D89593
の分だけの16進数分を選択し、下記の文字列で置換します。
57696E646F77735F5669727475616C5F58505F4639313631443845374643433131444442464141333639383536443839353933
置き換えをしたBIOSイメージファイルをXP Modeの仮想OSイメージに読み込みます。
“C:¥Program Files¥Oracle¥VirtualBox¥VBoxManage.exe” setextradata “winxp” VBoxInternal/Devices/pcbios/0/Config/BiosRom “C:¥sharevb¥vboxbios.bin”
これをコマンドプロンプト上で、実行することで、XP Modeのライセンス認証が完了した状態になります。
それでは、XPのセットアップを行いましょう。
XPのセットアップ
VirtualBoxからWindows XPを起動します。
セットアップ中にフリーズすることがありますが、その場合には「仮想マシン」から「リセット」を選択して、リセットをしながらセットアップを進めていきます。
初期設定が終了し、Windows XPのデスクトップが表示されたら、まず最初に「プログラムの追加と削除」から、
Virtual PC 統合コンポーネント
を削除し、再起動します。
次に、ファイル共有やマウスの挙動などを正常に使うために、
VirtualBox Guest Additions
をインストールします。
Windows XPが実行中の状態で、「デバイス」から「Guest Additions CDイメージの挿入」を選択すると、自動的にインストール画面が表示されますので、画面の指示に従ってインストールを完了します。
サポートが切れているとはいえ、サポートが切れるまでのWindows Update情報は取得できますので、すべてのアップデートを済ませてください。
最後に、ライセンス認証が完了しているか確認してみます。
コマンドからの実行になりますので、[スタート] -> [ファイル名を指定して実行]をクリックして、
c:¥windows¥system32¥oobe¥msoobe /a
を入力し、OKをクリックし、「ライセンス認証の手続きはすでに行われています。」と表示されることを確認してください。
以上まで作業を完了できれば、Windows XPを使うことが出来ます。
なお、セキュリティ面では、すでにどこのメーカーも手を引いているOSですから、早急に最新OSを使える環境にソフトウェア、ハードウェアを移行することをおすすめします。
これは、移行までの急場しのぎの対処方法であると考えてください。