C5.XPモードをトラブルなく動かす

2015- 1-15初版  2017-10-26更新 

1. 事前検討
2. XPモード環境のインストール
3. BIOS設定
4. アプリのインストール
5. HDDアクセス部分をUSB接続HDDに変更して高速化
6. トラブルシューティング
7. XPモードがまともに動くまでの経緯
8. XPモードの運用
9. 参考情報

      PageMill3.0Jを正常にXPモードで動かすことができたのでどのようにしたのかを紹介します。
      PageMill3.0Jではページ間の相互リンクを維持するために相互リンクに変更があった場合に
     複数のページを変更するのでHTMLファイルへのアクセス速度が遅いとエラーで処理中断になり
     XPモードが落ちる結果になる。 当初、ファイルをUSBメモリに置き換えてトラブルが仮解消した。
      
2016-9にシステムディスクをSSD化して動きが良くなり問題点が次々に明確化、XPモード用に
     2.5インチ7200rpm SATA HDDをPCケース内にXPモード用HDDとして設定した。
     
(USBメモリではI/O時間のタイミングに問題があるためHDDに置き換え)

      
WinXPに対するウイルス対策ソフトのサポートが2015年4月で終了するため、外部接続しないと
     してウイルス対策ソフトをアンインストール、ネットワークアダプタ数「1」で内部ネットワークに設定。
      
ネットワークアダプタをなしに設定するとドライバが読み込まれないためにイベント ビューアに
     多数のエラー表示が出る。 ネットワークアダプタの数を「1」にして「内部ネットワーク」に設定して
     外部接続しないが内部ネットワークの通信を可能にした。
      これでもイベント ビューアーにエラー表示されるが「XPモードを再インストールして」のような
     メッセージが出なくなるので以後はエラー表示を無視することにした。(エラー表示の数が激減)
     
その後、Win7のネットワークと共有センターのローカル エリア接続のプロパティ内にVirtual PC
     ネットワーク フィルタードライバーの設定をしてから状況が大幅に改善(速度向上)した。
   
 
1.事前検討
   Windows 7にはXPモードがあるのでWindows XPで使っていたアプリでWindows 7では動かせないものを
  XPモードで動かせるという話だが実際にやってみるとうまく動かない。 1つにはMSの初心者用の説明
  ページのインストール手順が間違っている。 インストール手順の間違いはWindows 7とXPモード間での
  ソフトのリンクがとれないでその時の状況まかせになってしまう。(うまくいく時もあればダメな時もある)
   もう1つの根本的な問題は仮想マシン環境なのでその環境に合わせた使い方をしなければならないが、
  XPモードではWindows XPのハード環境とはかけ離れたハード構成と仮想化方法になっている。
  ● Win7側へのHDDアクセスは通信手順を利用して実行されるので一定時間内に完了するという条件が
    あるものに対しては対応できない。 アプリ内でこのような条件チェック(HDD I/O 完了時間の監視、
    特定の処理の完了時間の監視など)をやっていたら簡単にエラーが発生する。
  ● CPUが1個しか割り付けられないので高速なCPU環境が必要です。(
パワー不足でのエラー発生あり
    
(注) Windows Media Playerの再生中にウインドウサイズを変更すると再生が停止する例が紹介されているがその良い例。
  ● XPモードのCドライブはWin7内HDDの120GB 仮想ディスクなのでHDDでのアクセスは遅い。
    XPモードの処理速度を上げるにはシステム ディスクをHDDでなくSSDにした方が速い。
  ● 統合機能のドライブ設定は重要でWin7側のHDD以外はUSB接続のドライブで排他的使用にすると
    高速アクセスが可能。 高速アクセスが必要なファイルはこれらのドライブに置くと実現できます。
    (統合機能のUSB接続はXPモードでの排他的使用になり、Win7側で使うには切り離しが必要です)
    
(注) USB接続デバイスだけが統合機能で直接アクセスが可能、Win7側HDDは通信手順利用になるため遅い。
    かなりのアプリがWin7で動かせるのでWin7で動かせない制約条件は何なのかが分かるとXPモードの
   不具合への対応がしやすくなります。

 
2.XPモード環境のインストール (順序が重要)
    これは先にWindows Virtual PCをインストールして仮想マシン環境インターフェイスを設定する。
    続いてXPモードをインストールしてWin7側とリンクさせます。 XPモードをインストール後にXPモード
    の環境を設定する。
    (参考) http://technet.microsoft.com/ja-jp/windows/dd920318.aspx | TechNet

   <XPモード環境のインストール順序を間違えないこと> (トラブルになります)
    
ユーザ向け説明ページではXPモードを先に、次にWindows Virtual PCとなっていたが間違った手順。
    XPモードを使うとWin7(
ホスト側)とリンクしていないので色々おかしな動きになります。
    (言語バーがタスクバーに入らない、I/O起動が正常にスタートしないなどが起きる)

   <XPモードの環境設定>
    (1) 画面表示はクラシック表示にした方が画面がきびきびとした動きになります。(効果大)
       パフォーマンス優先でアニメーションほかオーバーヘッドになるものはすべて停止する。
       XPモードはできるだけ負荷が少ない方が軽く動くので対応できるなら不要なサービスを停止
       させる方が良い。(Win7とは通信機能でつながっていることを考慮する必要がある部分あり)
       ネットワーク接続はNATにすると直接WAN接続しているイメージになる。(通常設定)
       
LANアダプタにつなぐとつながり難くなるがつながる。(ドライバなしでつながるが動きが悪い)
       (参考) Windows XPサービス設定説明と設定例(SP3 Home Edition)


    (2)
Win7レジストリ 設定変更
      
・SessionPoolSizeとSessionViewSizeを自動設定 [Memory Management]: (XPモード動作改善)
      HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management
       
SessionPoolSize: 0 (設定する場合は 64。 変更前:4 )
       
SessionViewSize: 0 (設定する場合は104。 変更前:48)
       XPモードの画面操作レスポンス改善、休止状態からの起動が速くなる。

      
・GDIProcessHandleQuota値をアップ [Windows]: (XPモード側のUSB接続HDD書込みエラー激減)
      HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Windows
       
GDIProcessHandleQuota: 16383 (変更前:10000)
      (参考)
Windows7を20日ぐらい連続稼働すると描画異常が発生する - めざせ地球征服

      
・ヒープメモリをアップ [SubSystems]: (Win7操作の行き詰まり現象発生の抑制・・・効果不明)
      HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Session Manager\SubSystems のWindows
       SharedSection=1024,20480,
768 → SharedSection=1024,20480,1024 (MSの調整レベル)
     (参 考)
デスクトップ ヒープ メモリ不足エラーが表示される - Microsoft
     旧参考ヒープメモリを増やす [Win2000,XP] - Diary on wind (古い環境で内容が具体的でなく間違って解釈していたため訂正)

      <XPモード側
・GDIProcessHandleQuota、SessionPoolSizeをアップ (XPモード動作改善)
      HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Windows
       
GDIProcessHandleQuota: 16383 (変更前:10000) (描画速度がアップしたがまだ遅い
      HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management
       
SessionPoolSize: 32 (変更前:4)
       XPモードが画面操作不能になる状況が改善、ほぼ無くなった。

      (参考)
ターミナル サービス環境でアプリケーションが正しく動作しない場合がある - Microsoft


    (3) Win7側のネットワークと共有センター内のローカル エリア接続のプロパティ内の
Virtual PC
       ネットワーク フィルタードライバー
の設定を有効にする。(XPモード インストールで設定可能になる?
       XPモードのネットワーク設定には外部接続をしない場合でもネットワーク アダプタを1つ設定し、
       
内部ネットワーク 設定しておかないとイベントビューアにイベントが多数記録される。
       (XPモードで外部接続する場合は
共有ネットワーク(NAT)に設定すればつながる)

    (4) XPモードでインターネット接続して作業するためにはウイルス対策ソフトが必要です。
       必ず有効なウイルス対策ソフトをインストールします。
       
銀行系のRapportを2番目のウイルス対策ソフトとして入れたらブロックされたIPアドレスが1件ログ表示された。

    (5) XPモードをインストール後にWindows Updateを行うとインストール環境に対応した更新が
       インストールされます。(2015年1月実施時に約130、 2015年1月のアップデートもあった)
       XPモードのインストール直後はIEだがWindows Updateを行うとIEになります。
       また、別ブラウザの表示確認用にFirefoxをインストールした。

 
3.BIOS設定 (Intel VT/AMD-V、およびIntel VT-d)
   XPモードを動かす前にBIOS設定を確認します。 仮想化支援機能についてはCPUのIntel VT、または
  AMD-Vという機能に対してBIOS設定が行われていることを確認します。
   更により新しいCPUについては、I/Oについても仮想化支援のサポートがありインテルの場合はBIOS設定の
  拡張設定の中にIntel VT-dがサポートされています。 BIOSの拡張設定にIntel VT-dの設定があるのはどの
  CPUからかは分からないが2013年5月に購入したi7-3820用のマザーボードP9X79には設定があったので
  第三世代以後の高性能CPU対応マザーボードはほぼ対応しているものと思われます。
   Intel VT-dをEnabledに設定することでI/Oの動作が改善した。(Intel VT-dはVMMのパフォーマンス向上ほかに効果
  (注) BIOS設定にIntel VT-d(相当)がなく設定がない場合でもソフトサポートだけで正常に動くと思われます。
  (参考) インテルの仮想化テクノロジーの説明を転載
(リンク表示できなくなったため)
  仮想化には下記の2種類があります。
  以下のようなバーチャライゼーション・プラットフォームの主要な機能を活用することにより、従来のソフトウェア・ベースの
 仮想化ソリューションの基本的な柔軟性および安全性を改善します。
インテルRバーチャライゼーション・テクノロジー
(インテルR VT)
・ゲスト・オペレーティング・システム (OS) と仮想マシン・マネージャー (VMM)/ハイパーバイザー間でのプラットフォーム制御の移動を高速化する
・VMM が I/O デバイスをゲスト OS に一意に割り当てることができる
・アダプターベースのアクセラレーションにより、ネットワークを仮想化に最適化する
  インテルR VT-d は VMM に以下の機能を持たせることによって、パフォーマンス、セキュリティー、柔軟性の向上を実現します。
ダイレクト I/O 向けインテルRバーチャライゼーション・
テクノロジー (インテルR VT-d)
・I/O デバイスの割り当て
・DMA リマッピング
・割り込みのリマッピング
・信頼性


 
4.アプリのインストール
   XPモードを起動してWinXPと同じようにインストールします。(通常はCドライブにだけインストール可能)
   統合機能が自動有効化でCD/DVDドライブにチェックが入っていればCD/DVDからインストーラを読ませて
  インストールできるようになります。(統合機能は初期値が自動有効化になっています)
  (注) MS Officeアプリをインストールした場合はWindows Updateで更新ファイルがインストールされます。

 
5.HDDアクセス部分をUSB接続HDDに変更して高速化
   最初はWin7のDドライブにサイトのHTMLファイルを置いていたがPageMillのファイルアクセス時にエラー
  が起きる、それもXPモードを再インストールしてから高い確率で起きるようになったのでファイルアクセスを
  速くすれば解決する筈と考えUSBメモリに入れ替えて一次解決、以後エラーが起きなくなった。(仮解決)

   当初はUSB3.0接続メモリに置き換えて一見うまく動いていたように見えたが非常に低い確率で異常な
  HTMLになる場合があることが分った。 最初のうちは何が原因で起きるのかが分らず異常な現象が起きる
  という認識だけだったが、2016年9月にシステムディスクをSSD化して環境変更設定のチェック中に同じ現象
  が発生してUSBメモリとHDDのハード構成の違いで異常な現象が起きることが分った。

   USBメモリでなくUSB接続HDDに置き換えることでXPモードでのPageMillアプリの実行中エラーの発生を
  抑えることにした。 PCケース内に2.5インチ7200rpm SATA HDDをSATA-USB変換ケーブルを使いUSB
  に変換してUSB2.0接続で設定した。(USB3.0接続はXPモードで使えないので採用できず

     XPモードでCrystalDiskMark3.0.3を実行して速度をチェックした結果

USB2.0接続HDD
HTS722010K9SA00
 (SATA 7200rpm)
サイト保管用 (2016-9-28)

USB3.0メモリ
Transcend TS32GJF710S
(32GB、USB2.0接続で使用ntfs
旧サイト保管環境

HTS722010K9SA00
(参考) SATA 7200rpm HDD
外付けUSB2.0接続
HDDケース


 
6.トラブルシューティング
   何をした時にエラーが起きるか、どんな処理をした時にエラーになるかの傾向が分かると対策が可能に
  なります。 また、エラーメッセージもただエラーになっただけでなくエラーの内容がどのような種類のもの
  かを集めて起きたエラーの傾向をつかめるとどこを改善すれば良いかを判断できます。
   WinXPの時はエラーが出なかったが全く別の有り得ないエラーが起きてXPモードの参照している場所が
  全く別の場所なのではないかと判断したが当たっていました。(統合機能の再設定でそのエラーは正常復帰した

 
7.XPモードがまともに動くまでの経緯
 1) 全般的にXPモードの動きがおかしかった (2014-7 〜 2015-1)
    最初はPageMillでサイト読込みが正常にスタートせず、全般的に動きが不安定だった。
    PageMillで頻繁にエラーが起きて処理を中断してしまうがエラーになる傾向がつかめず。
    (XPモードのインストールミスでWin7とXPモード間が正常にリンクしていなかったこと、およびBIOS設定ミスがあった

 2) BIOS設定でIntel VT-dを有効に設定していなかったミスを発見 (2015-1-9)
    PageMillのサイト読込みが改善してエラーの起きる頻度が下がったが、PageMillの処理に関係する
   エラーが起きるようになった。(XPモードのインストールミスの疑いが出てきた
    (ブログ 2015-1- 9) Win 7 XPモードとBIOS設定
    (ブログ 2015-1-11) Win 7 XPモードとBIOS設定(その後)

 3) XPモードを再インストールした結果Win7 HDDへのアクセスが遅いことが原因と判る (2015-1-12)
    Win7 HDDへのアクセスが通信手順で行われていて時間がかかり過ぎていることに問題があると
   分かったのでサイトデータ(ファイル)の場所をWin7 HDDからUSBメモリに変更して仮解決した。
   (USB3.0接続メモリにサイトデータを置くようにしたのでサイト読込みが一段と速くなり異常が起きなくなる
    (ブログ 2015-1-12) XPモードはHDDよりUSB接続デバイスの方が速い

 4) PageMillを正常に動かすにはHDDと同等性能がないと異常なHTMLが作られる場合がある (2016-9-28)
    サイトの保存場所をUSBメモリに変更してメモリのパフォーマンスが上がったが稀に異常なHTMLが
   書込まれることがあり長い間 原因を見付けられなかった。 システム ディスクをSSD化した時にSSDの
   領域がサイト保存場所に使えればディスク環境のバックアップほかで運用が楽になる。
    このテスト中に異常なHTMLが書込まれたので原因不明だった異常な現象が起きる原因が分かった。
    XPモードでUSB3.0メモリよりも更に性能が良くディスクと同等の動作が必要と分かった。
    2.5インチ7200rpm SATA HDDをSATA-USB3.0変換ケーブルを使ってUSB2.0接続でケース内に設置。
   (参考) XPモード対応でPCケース内にUSB2.0接続HDDを設定

 
8.XPモードの運用
   XPモードが動いてからトラブルなく動かす(運用する)ためのノウハウがあります。
 (1) レスポンスが悪くなったら、XPモードをシャットダウンして仮想ディスク(vhdファイル)を圧縮する。
    画面を拡大表示した後でウインドウを閉じて下さい。(圧縮以外のボタン(領域)を押すと画面が進みます

スタートメニューから[Windows Virtual PC]を選択。

[Windows XP Mode.vmcx]を右クリックメニューから[設定]をクリックすると仮想マシンの設定画面になる。

仮想ハードディスクファイル:Windows XP mode 1.vhdを選択。

[変更]ボタンをクリックして[仮想ハードディスクの圧縮]を選択。

[圧縮]ボタンをクリックして実行する。
プログレスメーターを表示して圧縮操作を実行する。

(処理完了)
[仮想ハードディスクの変更]に「仮想ハードディスクは正しく圧縮されました。」が表示される。
[仮想ハードディスクの変更]ウインドウ閉じて[Windows Virtual PCの設定]画面に戻り[OK]で圧縮操作が完了する。
 仮想ディスク(vhdファイル)を圧縮した後でXPモードを使うと操作レスポンスが改善していることが分かります。

 (2) Windows UpdateでWin7をセキュリティ更新した場合はXPモードをシャットダウンして再起動する。
    Windows UpdateによりXPモード関連ソフトが更新される場合があり、動作が変わった時は再起動する。

(参考) 2015年12月にXPモードがシャットダウンできなくなる
  XPモードを起動して終了することが正常にできる場合はXPモード内の問題だが起動・終了が完了する途中の
 段階でトラブルになった場合はXPモードの外の問題になるので注意が必要でシステムのバックアップが必要です。
  XPモード環境は通常Cドライブ内の仮想ディスクに保存されているので起動途中のトラブルは仮想ディスク内に
 固定されてしまい抜けられなくなります。(シャットダウンしていないと設定画面に入れず何もできなくなる)
 (ネット検索でトラブル解決事例が出ていたので別の対応策もあります)
 (窮余策) XPモードの仮想ディスクファイルを正常に動いていたディスクイメージからコピペして正常復帰できた。(単純な異常の場合)
        C・D・EパーティションをSSD化してディスク書込みサイズを抑えたかったので単純にコピペしただけ。(書込みエラーは無視)
      [仮想マシン ファイルが格納されている場所]   
<ユーザー名> は Windows7 ユーザー アカウントの名前。
       %systemdrive%\Users\<ユーザー名>\AppData\Local\Microsoft\Windows Virtual PC\仮想マシン
       仮想マシンと同じ名前を持つ次の拡張子のファイル .vhd、 .vmc、.vmc.vpcbackup、.vsv をコピペする。(日付で確認可能)
       場合によってはロックされていることもあり、XPモードのインストール時に設定したパスワードを入力してロックを解除する。
      
(参考) Windows XP Mode.vsv (状態保存ファイル)を削除するだけでも不具合脱出ができます、自己責任でトライ。

 
9.参考情報 
   XPモード側、Win7側ともにかなりうまく動いているが、外部接続しようとしてフリーのAVASTをインストール
  しようとしたがインストールできないのが問題。(インストール中に外部アクセスして確認動作?するのが問題らしく中断
  (注) フリーのAVASTがインストールできる条件が不明(ネット検索できず)、インストールログの解読が面倒なので作業を中断した。
   Windows Updateは時間がかかるのでやらなかったがFirefoxは最新版まで5回ほどでアップデートできた。
   (Windows UpdateはMicrosoft Updateに更新、重要更新はなしの結果、追加更新はインストールを失敗した
   外部接続のためにはウイルス対策ソフトが必要なので8/17時点の状態に復元した。
   (2017-8-16にチューニング実施して設定を更新した、Windows Update可能というページあり)
    XPモードからネット接続でWindows UpdateできなかったKB4012598(2017-5-15:セキュリティ更新)
   をダウンロードしたファイルをXPモード側にコピーして実行させアップデートできた。

   以下はXPモード設定の参考情報としてまとめたものです。

  (基本事項)
  ・XPモード側の使わない機能(ソフト)は削除・停止しておくと負荷が軽くなる、UIも軽い設定を選択する。
  ・XPモード側はリモートデスクトップの子側、Win7側は親になっていることを考慮して設定する。
   (ホストOSとゲストOSでつながっているのでスタンドアローンのPCとは考え方が違う
  ・DCOM関係はXPモード側でも必須機能、停止すると復元操作が面倒になる。
  ・Win7のネットワークと共有センターのローカル エリア接続のプロパティ内にVirtual PCネットワーク フィルター
   ドライバー
の設定がありこのドライバーを動かす必要がある。(Win7側の意味の難解な通信関係エラー
   Virtual PC ID:19エラー Virtual PCはエミュレートされたイーサネット スイッチ ドライバーを開くことができなかった・・・

  (動作確認)
  ・正常に動いていることを確認するにはXPモード側のイベントビューアをチェックする。(システム、アプリ
   [スタート]-[プログラム]-[管理ツール]-[イベントビューア] (スタートメニュー設定で管理ツールを表示させる
  ・まともに動いてきたらWin7側のイベントビューアーも確認する。(管理イベント
   [スタート]-[管理ツール]-[イベントビューアー] デスクトップカスタマイズ内の設定でシステム管理ツールを表示させる

  (チューニング) シャットダウンと起動を繰り返して状況を確認する
  ・サービス設定([プログラム]-[管理ツール]-[サービス])はかなり適当でも動くが徐々に内部調整される
   ように見える。 設定を動かしてから外すと起動できなくなることもある。
  ・余計なサービスを活かすとサービス停止して不具合が起きることがある。(状態ファイルを削除して回復起動が可能
  ・XPモード側のPrint Spooler関連エラーを出ないようにするにはPrint Spoolerを自動、開始にしておく。
   XPモード側にプリンタ接続の必要がないのでそのようなソフトが入っていないがWin XPで勝手にチェックしてエラーを吐き出す。
    (エラーを無視するとリソースが使われるとのこと)


  (その他)
  ・XPモード側のネットワーク設定のMicrosoftネットワーク用ファイルとプリンタ共有は設定不要。
   (無くても統合機能でWin7側の環境を参照可能、直接のファイルアクセスではなく通信手順でアクセス)
   (Microsoftネットワーク用クライアント、インターネット プロトコル(TCP/IP) の2つがあれば良い
  ・XPモード側の Computer Browser、Workstation、Server サービスは起動しない方が安全。
  ・外部ネット接続が不要なので設定でネットワークアダプタを1個(内部ネットワーク に設定)にしている。
   (外部ネット接続する場合は共有ネットワーク(NAT)にすればつながるがウイルス対策ソフトが必要
  ・パーティションをバックアップ出来ると作業に便利。(当方はAcronis True Imageを保存・復元に使用)
   仮想マシン部分だけをコピペしてうまく動いていた時点に復元。(完全ではないがほぼ動く)
  

  (終り)
 
(更新履歴)   ブラウザのボタンで戻る

17-10-26: 1.項 事前検討の説明を更新。
17- 9-19: 2.項内のXPモードの環境設定を更新。
17- 8-18: 9.項 参考情報を追加。
16-12-12: 2.項のレジストリ設定に更に設定を追加。
16-12- 6: 2.項にレジストリのSessionPoolSize、SessionViewSizeの設定値変更を追加。
16- 9-28: 5.項、7.項を更新して説明を現状の新しい環境に見直し。
16- 4- 1: 8.項 XPモードの運用からUSBメモリのパフォーマンス設定を削除。(トラブルが起きる)
15-12-25: 8.項 XPモードの運用を追加。
15- 3-21: 2.項 再編集、7.項 XPモードがまともに動くまでの経緯を追加。
15- 2-22: 5.項の中のXPモードでCrystalDiskMarkの速度チェック結果を現在の状態に更新。
15- 2- 1: 3.項 BIOS設定を追加。
15- 1-27: 1.項 事前検討、2.項 XPモード環境のインストールの説明を更新。
15- 1-17: 4.項 XPモードでCrystalDiskMark3.0.3を実行して速度をチェックした結果を更新。
15- 1-16: 4.項 XPモードでCrystalDiskMark3.0.3を実行して速度をチェックした結果を追加。
15- 1-15: 初版

(Top)ぶらり旅行写真集