Windows XP Windows 7 Windows 2003 Windows Vista Windows 綜合教學 Linux 系統教學
Windows 10 Windows 8 Windows 2008 Windows NT Windows Server 電腦軟體教學
您现在的位置: Windows教程網 >> Windows教程 >  >> Linux 系統教學 >> Linux 教學

Linux hwclock 指令詳解:硬體時鐘與系統時間同步、顯示、設定

編輯:Linux 教學

hwclock (Hardware Clock) 用於讀取/設定主機板 BIOS/UEFI 的**硬體時鐘**(RTC, Real Time Clock),並與核心**系統時間**同步。理解兩者關係是解決重開機時間錯亂的關鍵。

兩種時鐘關係

  • 硬體時鐘 (RTC):主機板晶振電池維持,斷電也走動,BIOS 設定畫面即操作此時鐘。
  • 系統時間:核心啟動時從 RTC 讀取初始化,之後由核心定時器獨立計數,所有 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。

/etc/adjtime 檔案說明

0.000000 1710484205 0.000000
UTC
  • 第 1 行:系統時間與硬體時間的平均偏差(秒)、上次校準 Unix 時間戳、校準次數。
  • 第 2 行:UTC 或 LOCAL,指示硬體時鐘時間標準。

systemd 現代替代指令

timedatectl               # 顯示狀態
timedatectl set-time "2024-03-15 14:30:00"
timedatectl set-local-rtc true|false
timedatectl set-ntp true  # 啟用 NTP 同步
Copyright © Windows教程網 All Rights Reserved