VMware で Linux を動かした際の時刻のずれを解消する
今日は、VMware の時刻遅れ対策を考えてみました。その成果を確かめていたんで、投稿が夜になってしまいましたよ(笑)。
少し前に気づいていたのですが、VMware 上で Linux を動かしていると、どんどん時刻が遅れていきます。ひどい時は、1日で半日分以上遅れます。これは尋常ではありません。NTP で時刻同期とか、それ以前の問題です。
これでは使い物にならないのでなんとかならないかと思っていたところ、カーネルコンパイルなどで負荷をかけ続けておくと時刻のずれが少ないことに気づきました。
もしやということで、APM を OFF にしてカーネルを再コンパイルしてみることにしました。インストール後、初のカーネルコンパイルなので、その手順を書いておこうと思います。
※より有効な解決方法が見つかりましたので、こちらの記事でご紹介しています。
カーネルコンフィギュレーションの変更
カーネルソースのディレクトリに移動し、menuconfig を実行します。
cd /usr/src/linux make menuconfig
変更するのは以下のオプションです。とりあえずすべての PowerManagement 機能を無効にしておきます。
Power management options (ACPI, APM) ---> ACPI (Advanced Configuration and Power Interface) Support ---> [ ] ACPI Support APM (Advanced Power Management) BIOS Support ---> < > APM (Advanced Power Management) BIOS Support CPU Frequency scaling ---> [ ] CPU Frequency scaling
上記の設定をしたら、menuconfig を抜けてカーネルコンフィギュレーションを保存します。
カーネルのコンパイル
カーネルをコンパイルします。最初に "make clean" を実行して古い中間ファイルを削除するのが無難です。
make ckean make && make modules_install
古いカーネルをバックアップした後に、新しいカーネルをコピーします。
mount /boot cp /boot/kernel-2.6.14-gentoo-r5 /boot/kernel-old cp /boot/config-2.6.14-gentoo-r5 /boot/config-old cp arch/i386/boot/bzImage /boot/kernel-2.6.14-gentoo-r5 cp .config /boot/config-2.6.14-gentoo-r5
バックアップしたカーネルを起動できるように、"/boot/grub/grub.conf" に設定を追加します。以下の記述を最後に追加すれば OK です。
title Gentoo Linux (backup) root (hd0,0) kernel /boot/kernel-old root=/dev/sda3
そして、再起動。
shutdown -r now
うまく起動すれば OK です。もし起動しなかった場合は、バックアップしておいた古いカーネルで起動しましょう。モジュールをバックアップしていないので保障はありませんが、たぶん起動できるでしょう(^^;。VMware ならUSB 機器を除いてハードウェアが変わることはないので、必要な機能はなるべくカーネルに含めてしまったほうがよいと思います。
成果
試しに、この状態で時計合わせして会社に行き、帰ってきたとき(14時間後くらいでしょうか)の時刻は 8 分前後進んでいました。この程度なら NTP などで修正できる範囲かな・・・(´ー`;。だいぶ改善されたのは間違いありません。
時刻がずれる原因ははっきりとは分かりませんが、Linux はハードウェアクロックとは別に時刻管理をしており、そのあたりの処理が原因かもしれません。できれば VMware 側でなんとかしてほしいところです。
詳しくはこちらの記事をどうぞ!
この記事にコメントする