OracleVirtualBox6.0でWindowsXPモードを使う2&BIOSファイル改造
PC設定
2017年11月に記載した、OracleVboxでXPモードを使うの記事が好評なので、アップデートする。
以前書いた記事からVboxのバージョンも上がったので改めて方法を記事にする。
HyperV形式のVHDファイルもそのまま扱えるので、VDIへのフォーマット変換も不要。
(もしかしたら5.2のときも使えたかもしれませんが・・・・)
PCの環境
Operating System
Windows 10 Pro 64-bit Rev.1903
CPU
Intel 9900ES 8C16Th
Intel Core @ 1.70GHz 51 °C
Kaby Lake 14nm Technology
RAM
32.0GB
Motherboard
ASUSTeK COMPUTER INC. ROG STRIX Z390-F GAMING (LGA1151) 39 °C
準備1 ホストマシンのBIOS設定
Oracle Vboxで64bitのゲストOSを使うためには、ホストマシンで「Intel Virtualization TechnologyがEnable」となっている必要があります。
最近のBIOSはデフォルトがDisableとなっています。
準備2 ソフトのダウンロード
Oracle Vboxのインストール用
Oracle Virtual Box6.0のダウンロード
xpモードのファイル解凍用
7zipのダウンロード
xpモード本体
WindowsXPモードのダウンロード
biosファイルの作成環境
linuxmint-18.1-mate-64bit.isoのダウンロード
biosファイルの編集用(xpモードの認証回避)
バイナリエディタ - xedit -のダウンロード
手順(標準的なところは割愛します。)
1、Oracle Vboxのインストール
ダウンロードした「VirtualBox-6.0.10-132072-Win.exe」をダブルクリックで実行します。
2、「WindowsXPMode_ja-jp.exe」を7zipを使って展開する


3、展開したフォルダ内にある、xpminstl32.msi(XPモードのインストーラー)から「Windows XP Mode base.vhd」を作成する
Win+Rで「ファイル名を指定して実行」を起動。名前に「cmd」と入力してコマンドウィンドウを起動する。
c:\windows\system32\msiexec.exe /a E:\WindowsXPMode_ja-jp\sources\xpminstl32.msi targetdir="E:\WindowsXPMode_ja-jp\XPMode" /qn
※「E:」配下の文字列は環境に合わせて変更をしてください。


※Windows標準の「msiexec.exe」の機能を使って「XPMode」フォルダ内に「Windows XP Mode base.vhd」を展開するコマンド
4、作成した「Windows XP Mode base.vhd」を使って、ゲストOSをVbox内に作成する。
OracleVBOXを起動すし、メニューから「新規」を選択する。

仮想マシンの作成ウィンドウが起動するので、下部のエキスパートモードをクリック。
※名前には他マシンと区別できるように名称を入力。画像では「WinXP」WindowsXPであることが解るように入力すると、タイプ(T)とバージョン(V)は自動的に選択される。
メモリは2GB(2048MB)程度を割り当てると良い。
※ホストマシン搭載のメモリに応じて適当に指定してください。
ハードディスクは「すでにある仮想ハードディスク」を利用するを選択し、3項で作成した「Windows XP Mode base.vhd」を選択する。
「作成」をクリックする。

と以下のようにゲストOSが作成される。
※ゲストOSを起動した際にエラーが表示される場合、先に選択した「Windows XP Mode base.vhd」のファイル属性を変更する。
※デフォルトで属性が「読み取り専用」になっていると起動時にエラーが表示される
WinXPゲストOSを起動して、初期設定を行う。
※うちの環境ではゲストOSウィンドウ内をクリックしてもゲスト0S内でマウスがアクティブにならなかったためキーボード操作のみで実施。
※後でGuest Additionsをインストールすると、この現象は復旧するらしい。
・VirtualBox Guest Additionsのインストール
ゲストosのメニュー「デバイス」からVirtualBox Guest Additions CDイメージ挿入を選択してGuest Additions CDをインストールする。
※キーボードのみの入力状態なので画面の一部が見えなかったりしてインストールを進めるのが難しいかもしれませんが、頑張る。
インストールが完了すると、マウス統合機能が使えるようになります。
5、XPモードの認証回避用biosの作成
・VBOX内にlinuxmintのゲストOSをインストール
・biosの元ファイル作成
Linuxmint(ゲストOS)を起動して、コマンドラインを起動。
「SU」(スーパーバイザー)に変更して、以下のコマンドを実行する。

head -c 1048576 /dev/mem | tail -c 65536 > vboxbios.bin
コマンドを入力すると、カレントディレクトリ内に「vboxbios.bin」が作成される。

作成された、「vboxbios.bin」をUSBメモリなどを使って取り出して、ホストOS上で加工出来るようする。
「vboxbios.bin」ファイルは、xpモードの仮想ディスクがあるディレクトリ内にコピーしておく。

・biosファイルの改造
起動した、xeditで「vboxbios.bin」を開く。
検索メニューのアドレスジャンプ機能をつかって書き換え開始場所「0x908A」へ移動
「0x908A」から「0x90BC」までの範囲を選択する。
検索メニューから「置換」を選択すると検索データに選択範囲がペーストされる。
置換データに「57696E646F77735F5669727475616C5F58505F4639313631443845374643433131444442464141333639383536443839353933」をコピペする。
上方向に検索(P)にチェックをつけて「OK」をクリックする。
データが見つかりません。ウィンドウが表示されるが、OKをクリックしたのち、書き換えが変更していることを確認する。
保存した、「Vboxbios.bin」のファイルサイズが「65536」バイトとなっていること確認する。
6、xpモードのゲストOSにbiosを読み込ませる
5項で作成した「vboxbios.bin」ファイルを
Win+Rで「ファイル名を指定して実行」を起動。名前に「cmd」と入力してコマンドウィンドウを起動する。
VBoxManage.exeがあるディレクトリまで移動しておく。

以下のコマンドを実行する。
VBoxManage.exe setextradata WinXP "VBoxInternal/Devices/pcbios/0/Config/BiosRom" "C:\Users\chiky\VirtualBox VMs\winxp\vboxbios.bin"
7、完成
ゲストOS「WindowsXPモード」を起動してライセンス認証が表示されないことを確認する。
Windowsの更新の実行。
ゲストOSの設定を調整しておく
ビデオメモリの容量を64MB程度に調整する。
3Dアクセラレーションを有効化にチェックを入れる。
ネットワークアダプタは、ブリッジアダプターを選択。
以前書いた記事からVboxのバージョンも上がったので改めて方法を記事にする。
HyperV形式のVHDファイルもそのまま扱えるので、VDIへのフォーマット変換も不要。
(もしかしたら5.2のときも使えたかもしれませんが・・・・)
PCの環境
Operating System
Windows 10 Pro 64-bit Rev.1903
CPU
Intel 9900ES 8C16Th
Intel Core @ 1.70GHz 51 °C
Kaby Lake 14nm Technology
RAM
32.0GB
Motherboard
ASUSTeK COMPUTER INC. ROG STRIX Z390-F GAMING (LGA1151) 39 °C
準備1 ホストマシンのBIOS設定
Oracle Vboxで64bitのゲストOSを使うためには、ホストマシンで「Intel Virtualization TechnologyがEnable」となっている必要があります。
最近のBIOSはデフォルトがDisableとなっています。
準備2 ソフトのダウンロード
Oracle Vboxのインストール用
Oracle Virtual Box6.0のダウンロード
xpモードのファイル解凍用
7zipのダウンロード
xpモード本体
WindowsXPモードのダウンロード
biosファイルの作成環境
linuxmint-18.1-mate-64bit.isoのダウンロード
biosファイルの編集用(xpモードの認証回避)
バイナリエディタ - xedit -のダウンロード
手順(標準的なところは割愛します。)
1、Oracle Vboxのインストール
ダウンロードした「VirtualBox-6.0.10-132072-Win.exe」をダブルクリックで実行します。
2、「WindowsXPMode_ja-jp.exe」を7zipを使って展開する
3、展開したフォルダ内にある、xpminstl32.msi(XPモードのインストーラー)から「Windows XP Mode base.vhd」を作成する
Win+Rで「ファイル名を指定して実行」を起動。名前に「cmd」と入力してコマンドウィンドウを起動する。
c:\windows\system32\msiexec.exe /a E:\WindowsXPMode_ja-jp\sources\xpminstl32.msi targetdir="E:\WindowsXPMode_ja-jp\XPMode" /qn
※「E:」配下の文字列は環境に合わせて変更をしてください。
※Windows標準の「msiexec.exe」の機能を使って「XPMode」フォルダ内に「Windows XP Mode base.vhd」を展開するコマンド
4、作成した「Windows XP Mode base.vhd」を使って、ゲストOSをVbox内に作成する。
OracleVBOXを起動すし、メニューから「新規」を選択する。
仮想マシンの作成ウィンドウが起動するので、下部のエキスパートモードをクリック。
※名前には他マシンと区別できるように名称を入力。画像では「WinXP」WindowsXPであることが解るように入力すると、タイプ(T)とバージョン(V)は自動的に選択される。
メモリは2GB(2048MB)程度を割り当てると良い。
※ホストマシン搭載のメモリに応じて適当に指定してください。
ハードディスクは「すでにある仮想ハードディスク」を利用するを選択し、3項で作成した「Windows XP Mode base.vhd」を選択する。
「作成」をクリックする。
と以下のようにゲストOSが作成される。
※ゲストOSを起動した際にエラーが表示される場合、先に選択した「Windows XP Mode base.vhd」のファイル属性を変更する。
※デフォルトで属性が「読み取り専用」になっていると起動時にエラーが表示される
WinXPゲストOSを起動して、初期設定を行う。
※うちの環境ではゲストOSウィンドウ内をクリックしてもゲスト0S内でマウスがアクティブにならなかったためキーボード操作のみで実施。
※後でGuest Additionsをインストールすると、この現象は復旧するらしい。
・VirtualBox Guest Additionsのインストール
ゲストosのメニュー「デバイス」からVirtualBox Guest Additions CDイメージ挿入を選択してGuest Additions CDをインストールする。
※キーボードのみの入力状態なので画面の一部が見えなかったりしてインストールを進めるのが難しいかもしれませんが、頑張る。
インストールが完了すると、マウス統合機能が使えるようになります。
5、XPモードの認証回避用biosの作成
・VBOX内にlinuxmintのゲストOSをインストール
・biosの元ファイル作成
Linuxmint(ゲストOS)を起動して、コマンドラインを起動。
「SU」(スーパーバイザー)に変更して、以下のコマンドを実行する。
head -c 1048576 /dev/mem | tail -c 65536 > vboxbios.bin
コマンドを入力すると、カレントディレクトリ内に「vboxbios.bin」が作成される。
作成された、「vboxbios.bin」をUSBメモリなどを使って取り出して、ホストOS上で加工出来るようする。
「vboxbios.bin」ファイルは、xpモードの仮想ディスクがあるディレクトリ内にコピーしておく。
・biosファイルの改造
起動した、xeditで「vboxbios.bin」を開く。
検索メニューのアドレスジャンプ機能をつかって書き換え開始場所「0x908A」へ移動
「0x908A」から「0x90BC」までの範囲を選択する。
検索メニューから「置換」を選択すると検索データに選択範囲がペーストされる。
置換データに「57696E646F77735F5669727475616C5F58505F4639313631443845374643433131444442464141333639383536443839353933」をコピペする。
上方向に検索(P)にチェックをつけて「OK」をクリックする。
データが見つかりません。ウィンドウが表示されるが、OKをクリックしたのち、書き換えが変更していることを確認する。
保存した、「Vboxbios.bin」のファイルサイズが「65536」バイトとなっていること確認する。
6、xpモードのゲストOSにbiosを読み込ませる
5項で作成した「vboxbios.bin」ファイルを
Win+Rで「ファイル名を指定して実行」を起動。名前に「cmd」と入力してコマンドウィンドウを起動する。
VBoxManage.exeがあるディレクトリまで移動しておく。
以下のコマンドを実行する。
VBoxManage.exe setextradata WinXP "VBoxInternal/Devices/pcbios/0/Config/BiosRom" "C:\Users\chiky\VirtualBox VMs\winxp\vboxbios.bin"
7、完成
ゲストOS「WindowsXPモード」を起動してライセンス認証が表示されないことを確認する。
Windowsの更新の実行。
ゲストOSの設定を調整しておく
ビデオメモリの容量を64MB程度に調整する。
3Dアクセラレーションを有効化にチェックを入れる。
ネットワークアダプタは、ブリッジアダプターを選択。
コメント
手順説明簡素化
手順説明簡素化について。
【1】 vboxbios.bin の作成 について。
a. [Linux Mint] [実行中] ウインドウにて、
[メニュー] [デバイス] [クリップの共有=双方向]
および [ドラッグ&貼り付け=双方向]
b. Linux Mint のコマンドライン画面にて、
mint@mint ~ $ sudo su
mint mint # head -c 1048576 /dev/mem | tail -c 65536 > vboxbios.bin
の2行の実行で目的の vboxbios.bin が作成されました。
head -c 1048576 /dev/mem | tail -c 65536 > vboxbios.bin の文字入力は、説明ブラウザーページからのコピペで済みます。
c. 作成された vboxbios.bin はファイルのコピペで、Windows ホスト側に取り出すことができます。
(なお 私はまだ スパーユーザー とか パスワード とか、理解していません。)
【2】 xedit によるバイナリーコードの書き換え。
a. xedit で vboxbios.bin を開く。
b. 説明ブラウザーページから 57696E646F77735F5669727475616C5F58505F4639313631443845374643433131444442464141333639383536443839353933 をコピーする。
c. 説明ブラウザーページの 「0x908A」から「0x90BC」までの範囲を選択 した図 (例 WS90025.jpg) を見ながら、自分の xedit のスクロールバーを下げ、目的の範囲を正確に選択する。
d. [編集] [貼り付け] で、書き換える。
e. 名前を付けて保存する。
このとき、検索も置換も不要。
【3】 説明ブラウザーページに次の記述があると、確認が楽になります。
(起動した W XP において)
ライセンス認証が通っているか確認する場合は、以下のコマンドをコマンドプロンプトで実行するとよい。
c:\windows\system32\oobe\msoobe /a
以上 参考まで。
2021-07-03 16:25 田中 URL 編集