ikegami
2019年1月22日 14時58分
お世話になっております。
overlayfs中に下記の順で動作を行ったところ、
日時が大幅にずれておりました。
・RTCのバックアップ電池を装着
・date -sコマンドで日時設定(2019年を設定)
・Armadilloの通電OFF
・5分経過
・Armadilloの通電ON
・dateコマンドで日時が正しいことを確認
・Armadilloの通電OFF
・2,3日経過
・Armadilloの通電ON
・dateコマンドで日時が2016年と表示される
RTCのバックアップ電池は装着後一度も外しておりませんが、
日時が大幅にずれる可能性はあるのでしょうか?
コメント
ikegami
中村様、ご回答ありがとうございます。
> この表示になったとき、
> ブート時のRTCのメッセージのはどうなっていますか?
> 次のようなものが表示されていると思います。
> bmic_rtc 3-0011: setting system clock to 2019-01-22 09:34:43 UTC (1548149683)
一度発生後、何回か確認しましたが再現できておりません。
先ほど起動した場合は正しい日時がセットされておりました。
bmic_rtc 3-0011: setting system clock to 2019-01-23 00:45:31 UTC (1548204331)
> G3のOSはDebian9(stretch)でしょうか?
Debian9(stretch)を使用しております。
> Debian9(stretch)の場合、標準状態ならば、
> /var/lib/systemd/clockというファイルがあると思います。
> このファイルのoverlayfsの元の
> /overlay/system/var/lib/systemd/clock
> のタイムスタンプはどうなってますか?
-rw-r--r-- 1 systemd-timesync systemd-timesync 0 Nov 4 2016 /overlay/system/var/lib/systemd/clock
-rw-r--r-- 1 systemd-timesync systemd-timesync 0 Nov 4 2016 /var/lib/systemd/clock
となっております。
以上、よろしくお願いいたします。
y.nakamura
中村です。
> 一度発生後、何回か確認しましたが再現できておりません。
> 先ほど起動した場合は正しい日時がセットされておりました。
なんでしょうかね。原因が気になりますよね。
> -rw-r--r-- 1 systemd-timesync systemd-timesync 0 Nov 4 2016 /overlay/system/var/lib/systemd/clock
> -rw-r--r-- 1 systemd-timesync systemd-timesync 0 Nov 4 2016 /var/lib/systemd/clock
最初の質問にあった
>> ・dateコマンドで日時が2016年と表示される
は、このファイルの時刻だと思います。
Debian9(stretch)のG3ではsystemd-timesyncdというのが動いていて
(Debian8/jessieのG3にもsystemd-timesyncdがインストールされて
いましたが、Enableされていませんでした)、
systemd-timesyncdが起動時に、現在時刻がこのファイルの
タイムスタンプよりも過去のとき(RTCがバックアップされてない
などのときです)、このファイルのタイムスタンをシステムに
設定しているようです。
systemd-timesyncdは定期的にNTPで時刻同期をしていて、
その最終時刻がこのファイルのタイムスタンプとして保存され、
(シャットダウンのときにもファイルのタイムスタンプを
更新しているのかもしれませんが、調べてません)
再起動時に上に書いたように使われるのですが、
overlayfsのときはファイルのタイムスタンプが再起動で戻ってしまいます。
この動作を確認は、RTCのバッテリを外して(ネットも非接続で)、
/overlay/system/var/lib/systemd/clockのタイムスタンプを
touchコマンドなどで変更して再起動すればいいと思います。
--
なかむら
ikegami
中村様、ご回答ありがとうございます。
> なんでしょうかね。原因が気になりますよね。
今度は通電OFFの時間を長くして何回か実施し、再現するか確認してみます。
> systemd-timesyncdが起動時に、現在時刻がこのファイルの
> タイムスタンプよりも過去のとき(RTCがバックアップされてない
> などのときです)、このファイルのタイムスタンをシステムに
> 設定しているようです。
上記の仕様から、RTCの日時が2016年以降に戻ってしまったと考えられます。
dateコマンドでの古い日時のセットやRTCのバックアップ電池を外す以外に
RTCの日時が2016年よりも古くなることはあり得るのでしょうか?
以上、よろしくお願いいたします。
y.nakamura
ikegami
y.nakamura
中村です。
> 事象が発生したArmadilloを確認しておりましたところ、
> Debian9(stretch)を使用しているのにもかかわらず、「hwclock-save.service」のファイルが存在しておりました。
> (元々Debian8を使用しており、Debian9を展開したときに古いファイルが残ったままとなっておりました。)
私のG3(Debian9/stretch)で systemctl list-unit-files を見てみたところ、
hwclock.serviceは存在しています。
存在はしていますが、maskedになっています。
> Debian9にて「hwclock-save.service」を使用すると今回の事象が発生する可能性はあるのでしょうか?
存在していても動作していなければ影響はないと思いますが、
動作している場合にどうなるかは、知りません。
Debian8/jessieで起動して systemctl list-unit-files を見てみると、
hwclock関連は次の3つがありました。
hwclock-save.service enabled hwclock.service masked hwclockfirst.service masked
--
なかむら
ikegami
中村様、ご回答ありがとうございます。
>
> Debian8/jessieで起動して systemctl list-unit-files を見てみると、
> hwclock関連は次の3つがありました。
>
> hwclock-save.service enabled > hwclock.service masked > hwclockfirst.service masked >
>
私の環境(Debian9/Stretch)で「systemctl list-unit-files」を実行したところ
hwclock-save.service enabled
hwclock.service masked
hwclockfirst.service masked
となっておりましたので、動作してしまっております。
Debian9で「hwclock-save.service」がなくなっており、
デフォルトのRTCへの保存方法が変更されております。
「Debian9」では何か問題があるので、デフォルトの保存方法が変更となったのでしょうか?
以上、よろしくお願いいたします。
y.nakamura
中村です。
> Debian9で「hwclock-save.service」がなくなっており、
> デフォルトのRTCへの保存方法が変更されております。
> 「Debian9」では何か問題があるので、デフォルトの保存方法が変更となったのでしょうか?
その理由が何なのかは知りません。
--------------------------
1つ前の私の投稿で、hwclock-save.serviceとhwclock.serviceとが
ごっちゃになっていたところがありましたので、訂正しておきます。
(言いたかったことはご理解いただけているようですが)
>> 私のG3(Debian9/stretch)で systemctl list-unit-files を見てみたところ、
>> hwclock.serviceは存在しています。
>> 存在はしていますが、maskedになっています。
この最後の2行のところを次のように訂正します。
hwclock-save.serviceは存在しませんでした。
hwclock.serviceというものが存在していますが、maskedになっています。
--
なかむら
y.nakamura
2019年1月22日 18時56分
中村です。
> overlayfs中に下記の順で動作を行ったところ、
> 日時が大幅にずれておりました。
...
> ・dateコマンドで日時が2016年と表示される
この表示になったとき、
ブート時のRTCのメッセージのはどうなっていますか?
次のようなものが表示されていると思います。
bmic_rtc 3-0011: setting system clock to 2019-01-22 09:34:43 UTC (1548149683)
G3のOSはDebian9(stretch)でしょうか?
Debian9(stretch)の場合、標準状態ならば、
/var/lib/systemd/clockというファイルがあると思います。
このファイルのoverlayfsの元の
/overlay/system/var/lib/systemd/clock
のタイムスタンプはどうなってますか?
--
なかむら