「最後の再開」との負の時間差

「最後の再開」との負の時間差

last reboot | head -3次の結果が得られます。

reboot   system boot  5.7.10-201.fc32. Fri Jul 31 11:29   still running
reboot   system boot  5.7.10-201.fc32. Fri Jul 31 11:22 - 09:29  (-1:53)
reboot   system boot  5.7.10-201.fc32. Tue Jul 28 23:14 - 09:21 (2+10:07)

最初は時間と日付が「on-off」と表示されることが分かりましたが、負の時差を表す2行目を考えると言えません。

procinfo正しい開始時間を返します。

$ procinfo | grep Bootup
Bootup: Fri Jul 31 09:29:39 2020    Load average: 0.01 0.06 0.06 1/1071 28719

ハードウェア時計は正確な時間を表示します。

$ date; sudo hwclock --show
Fri 31 Jul 2020 11:55:17 AM CEST
2020-07-31 11:55:17.436472+02:00

last reboot問題は次のとおりですwho -b

$ date; uptime; who -b
Fri 31 Jul 2020 11:55:43 AM CEST
 11:55:43 up  2:26,  2 users,  load average: 0.00, 0.04, 0.05
         system boot  2020-07-31 11:29

/var/run/utmpデフォルトのリーダーはwho -b私のシステムには存在せず、/var/log/wtmpリーダーにはlast reboot次の権限があります。

$ ll /var/log/wtmp
-rw-rw-r--. 1 root utmp 39K Jul 31 11:23 /var/log/wtmp

これらの違いが現れるのはなぜですか?

編集する

正確な締め切りは09:29 UTC+2です。 11:29と11:22の時間はlast rebootそれぞれ09:29と09:22でなければなりません。 @telcoMが観察したように、早期リリースにはUTCタイムゾーンを使用できると考えることができますが、11:29は07:29でなければなりません...

もう一つの詳細:私は単純なFedora 32物理マシンを実行しています。

答え1

あなたのタイムゾーンはCESTなので、現在のUTCオフセットはUTCより2時間早くなければなりません。

09:21が実際に11:21を意味し、09:29が11:29を意味すると仮定すると、タイムスタンプは意味がありますか?

その場合、初期リリースでは最初にUTCタイムゾーンを使用しましたが、リリースタイムスタンプ値が決定された後、特定の時点でタイムゾーンをCESTに変更した可能性があります。

Fedoraはまだ古典的なRedHatスタイルを使用していますか/etc/sysconfig/clock?その場合は、ハードウェア時計にUTCを使用するかどうかを示す設定がある可能性があります。同じ情報を表示する別の場所があります。 3行目には、ハードウェアクロックに保存されている時間を指定する「OR」が/etc/adjtime表示されます。 2つの位置が互いに一致しない場合、これらの動作を見たことがあります。ここでバグが見つかったら、修正を含めるようにinitramfsを再構築してください。UTCLOCAL

ファイルへの/etc/localtimeシンボリックリンクですか/usr/share/zoneinfo/your/timezone、それともファイルの実際のコピーですか? initramfsジェネレータに影響を与える可能性があります。 initramfsジェネレータが物理ファイルをコピーせずに単にシンボリックリンクをinitramfsにコピーする場合、シンボリックリンクはinitramfsブートフェーズで削除されるため、実際のルートファイルシステムがマウントされるまで、システムはデフォルトでUTCに設定できます。

(エラーが見つかりませんでしたが、/etc/localtime、/etc/adjtime、または/etc/sysconfig/clockにinitramfsよりも最新の修正タイムスタンプがある場合は、誰かが変更を忘れた可能性があるため、initramfsを再構築してください。設定されている場合)。

また、仮想マシンまたはブレードハードウェアの物理マシンの場合は、ブート時に仮想マシン/ブレードの時間をハイパーバイザー/ブレードシャーシの時計と同期させるメカニズムがあります。通常、このメカニズムはWindowsシステムに有利な現地時間を提供します。 NTP同期を使用している場合、システムは現地時間をUTCとして使用し始めるか、その逆を開始できますが、ネットワークインターフェイスが表示されるとNTPサーバーから有効なUTC時間を取得するため、2時間ジャンプが発生する可能性があります。

関連情報