2011/01/17

VMware vSphere4: 「The Execute Disable/No Execute CPU feature is not enabled for this machine」の対応

現象:

VMware vSphere 4.1 をHP ProLiant サーバーにインストールしたところ

VMware vSphere 4.1 の起動時画面に以下のメッセージが表示されていた

TSC: 6391191395 cpu0:0) Init: 431: The Execute Disable/No Execute CPU feature is not enabled for this machine

 

内容:

「No Execute」とは、 CPUの「NX (No eXecute)」機能です。

「CPU機能「NX」がこのマシンでは有効になっていない」というメッセージです、NXを有効にします

 

対応:

BIOSでNXを有効設定にします

HP ProLiant サーバーの場合、

起動時「F9」、BIOS画面で[Advanced Options] - [Processor Options] - [No-Execute Memory Protection] を 「enable」に設定

 

参考:

NX No-Executeとは?(No-Execute Memory Protection 機能とは)

従来のx86プロセッサでは、ページテーブル(仮想アドレスから物理アドレスへの変換表)のエントリで読み取りと実行の許可属性を1つのフラグで制御しているため、読み取り可能なアドレス領域は、常に実行可能でもありました。

 

これに対して、NX機能を搭載したプロセッサでは、コード実行許可用フラグをページテーブルの変換エントリに設定するように機能拡張できるため、データ領域を実行不可能に設定することで、それらの領域上に上書きされた不正コードを実行できなくなります。

 

そんなわけで、メモリというキーワードも出ますがCPU機能になります。

0 件のコメント:

コメントを投稿