VMware ESXi 仮想マシンをvSphere ClientからRemote Consoleを使って開く場合に、Remote Console(実際にはローカルのVMware Workstation)のウィンドウサイズに合わせ、仮想マシンの 解像度 が動的に追随してくれない時があります。仮想マシンによってFit to Windowしてくれたり、小ぢんまり固定だったり決まっている傾向にあるので、設定を横並び比較して原因を究明します。
仮想マシンをRemote Consoleの大きなウィンドウやフルスクリーンで表示させる際、このように仮想マシンの解像度が動的に大きくなってくれることを期待するでしょう。
しかし仮想マシンによっては、低めの解像度のままなことがあります。このような場合、vSphere Clientには関連するエラーが提起されているのですが、そこから解決の糸口を得ることは難しそうです。
調べてみるとこれは、仮想マシンに設定した2DグラフィックのビデオRAMが少なすぎるために起こるようです。仮想マシン製作時に特に意識したことは無かったので、GUI操作も想定されるWindows Serverでの設定をこの機会に総点検してみます。
1. svga.autodetect【推奨】
自動検出は以前は無かったような気がするのですが、便利になりました。経常的に比較的大きな解像度を持つデスクトップが欲しいWindows Serverでは、自動設定にしておくのが無難。これを有効にしておけば、以降の項目全て無視して構いません。vmxファイル内では、
1 |
svga.autodetect = "TRUE" |
であり、vSphere Client上では「設定の自動検出」に相当し、次のようになります。仮想マシン起動中(設定参照のみ可)、シャットダウン中(設定変更可)で「ビデオメモリの合計」欄の数値が違っていて謎ですが、数値は設定出来ないのが正解なので、「0」表記が正しいと言えます。
2. svga.vramSize【カスタム時必須】
上の項目で設定の自動検出ではなくカスタム設定にした場合、ここで2Dグラフィックのビデオメモリ値を明示的に設定する必要があります。vmxファイル内にこの項目が無い場合、それはデフォルト4MBで、これでは大きなウィンドウ時に解像度が足りません。図02の仮想マシンは正にこの状態で、言わば「カスタム設定を選択したのに、ビデオメモリの値が未設定」という中途半端な設定でした。
自分の環境では、8MBあれば1920×1080フルスクリーン表示出来ました。vmxファイル内の値を直接編集する場合は、以下の要領で実際のバイト数を入力する必要があります。
- 4MB: “4194304” 1280×800 MAX
- 8MB: “8388608” 1920×1080 MAX
- 16MB: “16777216” 2560×1600 MAX
ヘッドレスでコンソール前提なLinuxサーバでは、ビデオメモリを自動設定にしても意味がないので、カスタムとしてここで4MBにしておけば良さそうです。
3. vmotion.checkpointSVGAPrimarySize / vmotion.checkpointFBSize【参考】
これらの項目と次の項目は比較的最近定義されたと思われ、普通に使う分には無用なようです。試しに空白にして項目を消すと、起動時にシステムが上記s vga.vramsize の値を拾って追加します。しかし、 svga.vramsize の値を変えても vmotion.checkpointSVGAPrimarySize の値は適宜更新されますが、 vmotion.checkpointFBSize はそのまま。
4. svga.guestBackedPrimaryAware【参考】
これも有っても無くても今回の命題には関係無いのですが実験してみます。vmxファイル中の
1 |
svga.guestBackedPrimaryAware = "TRUE" |
を”FALSE”にしても、起動時にシステムによって”TRUE”へと上書きされてしまいます。また、vmxファイル中の当該行を丸ごと消去したり、vSphere Client上で当該項目の値を空白にして保存することでも項目は削除されますが、再起動後確認してみると”TRUE”でシステムにより自動補完されています。気にせず放っておきましょう。
参考と鳴謝 Great Tnx! )