2015年8月9日日曜日

[XenServer 6.1] Windows8のインストールが、0x0000005D エラーで失敗する場合の対処


XenServer6.1では、Widows8が試験的にサポートされており、仮想マシンのテンプレートが用意されています。



この仮想マシンのテンプレートを使用して Windows8(32bit)(評価版)をインストールしようとしたのですが、下図のような 0x0000005D エラーが表示されインストールできませんでした。



Googleで検索してみると、仮想マシンのパラメータ(platform:viridian)を変更したら成功したとういう記事が、たくさんありました。
試しに、以下のように、"win8"という名称の仮想マシンのパラメータを変更してみました。
# xe vm-list name-label=win8
uuid ( RO)           : xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
name-label ( RW): win8
power-state ( RO): halted

# xe vm-param-set uuid=xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx platform:viridian=false
しかし、私の環境では、パラメータ(platform:viridian)を変更しても、同じエラーでインストールに失敗しました。
そこで、こんどは、Citrix の Knowledge Center で調べたところ、以下の「Windows Server 2012 での 0x0000005D エラーの対処方法」が見つかりました。
これによると、XenServerをインストールしたホストマシンのBIOS設定を変更する必要があるそうです。
変更するパラメータは、CPU の "No-Execute Memory Protection" で、設定値を "Enable" にします。
私のマシンのBIOS設定を確認してみると、"No-Execute Memory Protection" が "Disable" になっていました。
そこで、"No-Execute Memory Protection"を"Enable" に変更したところ、Windows8のインストールに成功しました。
ちなみに、仮想マシンのパラメータ(platform:viridian)は変更していません。
なお、参考までに、Windows8をインストールしたXenServer6.1には、以下のようなパッチをインストールしています。
# xe patch-list | grep name-label
              name-label ( RO): XS61E001
              name-label ( RO): XS61E004
              name-label ( RO): XS61E003
              name-label ( RO): XS61E008
              name-label ( RO): XS61E006
              name-label ( RO): XS61E009
              name-label ( RO): XS61E010
              name-label ( RO): XS61E013
              name-label ( RO): XS61E012
              name-label ( RO): XS61E014