Article ID: 123371, created on Nov 5, 2014, last review on Nov 5, 2014

  • Applies to:
  • Virtuozzo
  • Virtuozzo containers for Linux
  • Virtuozzo hypervisor

症状

CentOS/Redhat コンテナの tzdata パッケージを更新後、コンテナ内で時刻が自動調整されませんでした。

原因

/etc/localtime ファイルが更新されなかったため、時刻が自動調整されませんでした。/etc/localtime が更新されなかった理由は、/etc/sysconfig/clock ファイルが存在しないためです。このファイルには、サーバで /etc/localtime の自動更新に用いるタイムゾーンが含まれています。

この問題はバグとして確認されております。バグ ID は #PSBM-29853 になります。

解決策

既存のコンテナに対して問題を修正するには、ハードウェアノードから /etc/sysconfig/clock をコピーする必要があります。

[root@pcs ~]# cp -fp /etc/sysconfig/clock /vz/root/<CTID>/etc/sysconfig/clock

注記: <CTID> は、該当するコンテナ ID に変更します。

コピー完了後、コンテナに tzdata パッケージを再インストールしてください。

[root@container ~]# yum reinstall tzdata -y

永久的な修正を OS テンプレート post-cache スクリプトに適用する必要があります。
/vz/template/<OS>/<RELEASE>/<ARCH>/config/os/default/post-cache ファイルに、以下の行を追加してください。

[ -f /etc/sysconfig/clock ] && cp -fp /etc/sysconfig/clock etc/sysconfig/clock
  • <OS> は、該当する OS に変更します(例:centosredhat...)。
  • <RELEASE> は、該当するリリースに変更します(例:56...)。
  • <ARCH> は、該当するアーキテクチャに変更します(例:x86 または x86_64)。

この行は、"localtime" ファイルをコピーする行の直後に追加してください。例:

# diff -pruN post-cache.original post-cache
--- post-cache.original 2014-11-01 15:57:23.294445979 +0600
+++ post-cache  2014-11-01 15:58:00.181968471 +0600
@@ -23,6 +23,7 @@ fi
pushd $rootdir > /dev/null

 [ -f /etc/localtime ] && cp -fp /etc/localtime etc/localtime
+[ -f /etc/sysconfig/clock ] && cp -fp /etc/sysconfig/clock etc/sysconfig/clock
 [ -f /etc/sysconfig/i18n ] && cp -fp /etc/sysconfig/i18n etc/sysconfig/i18n

 popd > /dev/null

行を追加した後で、テンプレートキャッシュを更新する必要があります。

# vzpkg update cache <TEMPLATE_NAME>

a26b38f94253cdfbf1028d72cf3a498b 2897d76d56d2010f4e3a28f864d69223 d02f9caf3e11b191a38179103495106f e8e50b42231236b82df27684e7ec0beb 0dd5b9380c7d4884d77587f3eb0fa8ef

Email subscription for changes to this article