仮想マシンの設定

最近判明した仮想マシンの設定方法をご紹介します。

ワイド画面に設定

最近はワイド画面の液晶が普及しているため、需要がありそうです。

vmware-config-tools.pl で選択できる解像度は以下の通り。

[1] “640×480”
[2] “800×600”
[3] “1024×768”
[4] “1152×864”
[5] “1280×800”
[6] “1152×900”
[7] “1280×1024”
[8] “1376×1032”
[9] “1400×900”
[10] “1400×1050”
[11] “1440×900”
[12] “1680×1050”
[13] “1600×1200”
[14] “1920×1200”
[15] “2364×1773”

この中でワイド画面は以下の通り。

[5] “1280×800” 16:10
[11] “1440×900” 16:10
[12] “1680×1050” 16:10
[14] “1920×1200” 16:10

今回は 1280×800 のディスプレイ上で仮想マシンを操作したいため、1024×600 か 1024×640 を実現したい。

設定するファイルは /etc/X11/xorg.conf です。
結論として、Monitor セクションに以下の行を追加することで可能でした。

ModeLine “1024×640” 70.000 1024 1100 1200 1300 640 700 800 900

この行を追加しないと、巨大な画面となります。
また、指定できる解像度には一定のルールがある様です。

CentOS 5 で vmhgfs を使わない

(1) /etc/vmware-tools/locations

以下の行を yes から no に修正します。

answer VMHGFS_CONFED yes

(2) /etc/fstab

vmware-config-tools.pl の実行後に追加される最後の3行を削除します。

動作速度を安定させる

開発・保守に、最近は VMware Player を使っています。
軽快な動作が気に入っています。

ところが、しばらく使っていると、仮想マシンのBIOSレベルで極端に実行速度が低下する現象に悩まされるようになりました。
ネットを検索しても、仮想マシンのOSレベルの対策しか見つからず、困っていました。

とりあえず、アンインストール・再インストールをすると元に戻るのですが、時間と手間がかかります。
仮想マシンが原因ではなく、VMware自体の問題ということははっきりしているのですが、対策がわかりませんでした。

もしかしてVMwareがクロックを誤って検出するのが原因かと思い、フリーソフトの WCPUID でクロック数をモニタしてみました。
すると、クロックがかなり変動している事が判明しました。

AMD Athlon(tm) 64 X2 4000+ なので、BIOS で Cool & Quiet を無効にしてみましたが、まだかなり変動します。

その他にクロックが変動する要因がないか調べてゆくと、Spread Spectrum が原因ではないかと見当がつきました。
BIOS で Spread Spectrum を無効にすると、クロックが ±10kHz の範囲で安定しました。
これくらいは誤差として許容範囲でしょう。

Spread Spectrum は無効にしない方が良いようですが、今のところ安定動作しているので良しとしています。

仮想マシン(CentOS 5, Vine Linux 4.2)を10時間程放置しましたが、時間のずれはほぼありませんでした。

Vine Linux の仮想マシンをコピー

メインマシンがクラッシュしましたが、KNOPPIX を使って復旧作業は順調に進みました。

しかし、問題が発生しました。
Vine Linux の仮想マシンをコピーすると eth0 を認識しません。

原因は、/etc/sysconfig/network-scripts/ifup-eth0 に HWADDR が記述されているためでした。

仮想マシンをコピーすると、VMware は仮想NICのハードウェアアドレスを作成し直します。
このため Vine Linux は、該当する HWADDR の NIC が無いと判断していました。

対策は HWADDR の行を削除するか、仮想マシンの vmx ファイルを参照して修正します。

Linux の場合、複数の NIC がある場合、検出順が安定しないという問題が発生しやすく、このため HWADDR を基準に検索させる必要があります。

頻繁にコピーを行う場合は HWADDR を指定しない方が楽です。
反対に、複数の NIC を使う場合は HWADDR を設定した方が安定します。