hwclock (Hardware Clock) 用於讀取/設定主機板 BIOS/UEFI 的**硬體時鐘**(RTC, Real Time Clock),並與核心**系統時間**同步。理解兩者關係是解決重開機時間錯亂的關鍵。
date、應用程式讀取的皆為系統時間。| 指令 | 作用 |
|---|---|
hwclock --show 或 hwclock -r | 顯示硬體時鐘時間 |
hwclock --hctosys | **硬體 → 系統**(核心啟動時自動執行) |
hwclock --systohc | **系統 → 硬體**(設定時間後必須執行,寫入 BIOS) |
hwclock --set --date="2024-03-15 14:30:00" | 直接設定硬體時鐘 |
hwclock --adjust | 根據 /etc/adjtime 歷史偏差自動校準 |
hwclock --utc | 硬體時鐘採用 UTC(建議),配合 /etc/adjtime |
hwclock --localtime | 硬體時鐘採用本地時間(Windows 相容) |
hwclock --debug | 顯示詳細除錯資訊 |
hwclock --test | 測試模式,不實際寫入 |
# 1. 設定系統時間(需 root)
date -s "2024-03-15 14:30:00"
# 2. 同步寫入硬體時鐘
hwclock --systohc
# 3. 驗證
hwclock --show
date
Windows 預設 RTC 為**本地時間**,Linux 預設為 **UTC**。導致切換系統後時間相差時區時數。
方案 A:Linux 改用本地時間(相容 Windows)
timedatectl set-local-rtc 1 --adjust-system-clock
# 或舊版
hwclock --systohc --localtime
方案 B:Windows 改用 UTC(推薦,避免夏令時問題)
Windows 註冊表:HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\TimeZoneInformation 新增 DWORD RealTimeIsUniversal=1。
0.000000 1710484205 0.000000
UTC
UTC 或 LOCAL,指示硬體時鐘時間標準。timedatectl # 顯示狀態
timedatectl set-time "2024-03-15 14:30:00"
timedatectl set-local-rtc true|false
timedatectl set-ntp true # 啟用 NTP 同步