Virtual PC上のCentOSの時刻を同期する

備忘録(メモ)のエントリです。

会社で使用しているPC(WindowsXP SP3)にローカル・テスト環境が欲しくて、Virutal PC 2007 に CentOS5 を入れて使用しています。導入したときは、いろいろ分からないことがあり、ネット上でその都度調べたりして、Virtual Serverではないのでログオン時に手動で起動しなければならない・・・こと以外は特に問題もなく安定動作してきました。
 

いえ、安定動作していると、ちょっと前までそう思い込んでいただけのようです。。。
 

「時刻がスゲェ~ずれている・・・」 50分以上も・・・。
 

いえ、もちろん、時刻合わせのため、1時間毎に ntpdate を実行するように crond に登録済み・・・なのですが・・・それでも・・・

「時刻がスゲェ~ずれている・・・」 のです。。。
 

なんで?
 

ネットで検索したら、マイクロソフトが配布しているLinux向けの修正?を導入すると、時刻同期が取れるようです。しかも・・・これは、FAQのようです。。。お恥ずかし・・・。
でも、クリック一発でインストール・・・できるはずもなく、いろいろ試行錯誤した結果、やっと CentOS 5(on VirtualPC 2007)が正しく時を刻んでくれるようになりました。。。
 

前準備

マイクロソフトのダウンロードセンター(英語)から、下記のファイルをダウンロードする。
 

Virtual Machine Additions for Linux
 

ダウンロードしたインストーラ(msiファイル)を実行すると、%ProgramFiles%Microsoft Virtual ServerVirtual Machine Additions ディレクトリにISOファイルが出来ています。まず、それをVirtualPC 2007のメニュー >> CD >> ISOイメージのキャプチャ、する。
 

なお、このファイルは本来CentOSは動作対象外ですが、RHEL5が動作対象に入っているので問題ないでせう。

ゲストOS(CentOS)での作業

ゲストOS(CentOS5)上で、以下を実行

前準備とリンクの張りなおし?

$ su -
$ yum install gcc
$ yum install kernel-devel

$ cd /lib/modules/2.6.18-164.15.1.el5
$ rm build
$ ln -s ../../../usr/src/kernels/2.6.18-194.8.1.el5-i686 build

なにわともわれ、ルートユーザで作業です。
で、よく分からんけど、Linuxカーネルをビルドする環境が必要なんだとか。
 

真の?Linuxユーザーではないので、カーネルモジュールのビルドとか、RPMとか言われてもチンプンカンプン。
・・・で、buildっていうシンボリックリンクが、存在しないディレクトリを指していて、一旦削除して、リンクしなおしてます。
 

で、次です。

$ mount -o ro /dev/dvd /media
$ rpm -ivh vmadd-kernel-module-RHEL-2.0-1.i386.rpm
$ rpm -ivh vmadd-timesync-2.0-1.i386.rpm
$ rpm -ivh vmadd-heartbeat-2.0-1.i386.rpm
$ rpm -ivh vmadd-shutdown-2.0-1.i386.rpm

前準備でVirtualPCでキャプチャしておいたISOファイルをマウントして、その中にあるRPMパッケージをインストールします。僕の場合は、X-Window関連とSCSI関連のものは必要ないので、省いています。時刻を同期させるためだけなら、kernel-module-RHELとtimesyncだけで良さそうですが・・・なんとなく他の二つも入れときます。どういう役割かは、ググれば出てきそう。。。あんまり関係なさそうな感じもします。
 

ここまで作業終了。
起動確認します。

$ service vmadd start
$ service vmadd-timesync start
$ service vmadd-shutdown start
$ service vmadd-heartbeat start

エラーが出なかったら終了。

一応確認。

$ chkconfig --list | grep '^vmadd' 

rebootコマンドで再起動して再確認。
 

Linuxについて詳しいパワーユーザーなら、なんてことない作業だと思いますが・・・
あーでもない、こーでもない、と午前中はずっとコレばっかり調べては、トライして、失敗。
結局、午前中いっぱい昼休憩までかかりました(ーー;;
 

ですが、おかげでさまで、やっと仮想環境内のCentOSは正確に時間を刻むようになりましたとさ。
 

・・・それと、今までは、CentOSを「状態を保存して終了」してから、「再開」すると、再開するまでの間、ずっと時計が止まったままになるので(当たり前か!)、かならず poweroff コマンドで終了してたんですが、試しに・・・、

1.「状態を保存して終了」
2. 数分待つ。
3.「再開 」

すると、ちゃんと時刻の同期が取れてるぞ! お、これは便利だ・・・。これでPCの電源を落とすとき、いちいちPoweroffコマンドをうつ手間が省けます~~ぅ。