PMPの流儀

PMPの流儀

エンジニアのページ

MENU

VMware ハードディスクの最適化(WindowsXP PVSCSI化)

VMware Workstation Player 16 では、仮想マシンWindowsXPの場合システムドライブにはデフォルトで IDE が指定されるため、ほとんどの方はIDEのまま利用していると思います。 WindowsXP 仮想マシンのシステムドライブをIDEからSCSIに変更する方法を紹介します。
f:id:ruruucky:20200903195353p:plain

1. 概要

WindowsXPの時代、SSDSATAの登場の前はHDDはIDESCSIの2択でした。IDEよりもSCSIの方がパフォーマンスで優れている事は知られていました。しかし一般向けではコスト重視のためIDE HDDが多数を占めており、WindowsIDEがデフォルトで認識するデバイスで、SCSIの場合はフロッピーでドライバをインストールする手間が必要でした。そのため VMwareでも WindowsXPの場合システムドライブはIDEが初期選択されています。

WindowsXP仮想マシンのデバイスマネージャの画面です。HDD, DVDともにIDEです。
f:id:ruruucky:20201025143358p:plain

VMwareには仮想用のPVSCSI というアダプターがあります。準仮想化アダプターと呼ばれ、物理デバイスのエミュレーションが不要ですのでシステム全体の負荷を下げることができます。

他のOSは以下を参照してください
pmp-style.hatenablog.com

2. 注意

慣れない方は必ず仮想マシンを丸ごとコピーしてバックアップしてから作業をしてください。再起不能になっても責任が取れません。

3. 大まかな手順

システムドライブをいきなりPVSCSIにしてもドライバが起動時に存在していないとWindowsを起動できません。そのため、2台めのHDDをPVSCSIで登録しておくことでOSに認識させ、その後にシステムドライブをPVSCSIに変更します。

(1). 仮想マシンSCSI HDDを新規追加する。
(2). SCSIバイスを PVSCSI にする。
(3). システムドライブの設定をPVSCSIに変更する。
(4). ダミーで追加した (1)のSCSI HDDを削除する。

4. 詳細手順

4.1 仮想マシンSCSI HDDを新規追加

(1). 仮想マシンの設定から SCSI HDDを新規追加してください。容量は最小の1Gでよいです。この時HDDのイメージファイルの名称を入力するので dummy_scsi.vmdk など分かりやすい名前にしてください。
(2). WindowsXPを起動します
(3). デスクの管理で SCSI HDDを初期化してアクセスできることを確認します。
(4). デバイスマネージャを見てみると「VMware VMSCSI Controller」の下に SCSI-HDDが登録されているのが分かります。

f:id:ruruucky:20201025144616p:plain

(5). WindowsXPをシャットダウンします。

4.2 SCSIバイスを PVSCSI にする

(1). 仮想マシンのvmxファイルをエディタで開いて PVSCSI を指定する行を追加します。

scsi0.virtualDev = "pvscsi"

(2). ファイルを保存してエディタを閉じます。
(3). 再びWindowsXPを起動してデバイスマネージャを確認するとSCSIコントローラが「VMware PVSCSI Controller」に変わっています。
これで下準備は完了です。

f:id:ruruucky:20201025145856p:plain

(4). WindowsXPをシャットダウンします。

4.3 システムドライブの設定をPVSCSIに変更する

(1). システムドライブの vmdk ファイルをエディタで開きます。
拡張子 vmdk は設定ファイルと、HDDのイメージの両方で使われています。ファイルサイズが1KBのファイルの方が設定ファイルです。SCSIのダミーHDDのvmdkと間違えないようにしてください。

(2). アダプタータイプを "buslogic"に変更します。
変更前

ddb.adapterType = "ide"

変更後

ddb.adapterType = "buslogic"

(3). ファイルを保存してエディタを終了します。
(4). vmxファイルを編集しやすくするために行をソートします。
 vmx ファイルを c:\temp にでもコピーして以下のコマンドを実行します。元のファイルは名前を変えて取っておいて、ソート後のファイルを元の名前にしましょう。

sort  < xp.vmx > xp2.vmx

(5). vmx ファイルをエディタで開きます

(6). ide0:0 から始まる行の先頭に '#' を入力してコメント行にします。
また、scsi0 のvmdkファイル名を、IDEで使用しているvmdkファイルに変更します。

変更前

ide0:0.fileName = "xp.vmdk"
ide0:0.present = "TRUE"
ide0:0.redo = ""

scsi0:0.fileName = "xp2-scsi.vmdk"

変更後

#ide0:0.fileName = "xp.vmdk"
#ide0:0.present = "TRUE"
#ide0:0.redo = ""

scsi0:0.fileName = "xp.vmdk"

これで、IDEのHDDをSCSIのHDDに変更し、ダミーで追加したSCSI HDDは取り外したことになります。

(7). WindowsXPを起動します。
バイスマネージャを見て、プライマリIDEチャンネルの下にはHDDは無く、PVSCSIの下にHDDが入っていることを確認してください。

f:id:ruruucky:20201025152851p:plain

(8). WindowsXPをシャットダウンします。

4.4 ダミーで追加したSCSI HDDを削除

(1). ダミーで追加したSCSIのvmdkファイルを削除します。

以上で、完了です。