SUSE Linux 時間同步與 BIOS RTC 管理指南
準確的系統時間對於日誌記錄、排程作業、安全認證及分散式應用至關重要。本指南針對 openSUSE 及 SUSE Linux Enterprise (SLE) 平台,說明如何設定時間同步(NTP/Chrony)、管理硬體 BIOS 實時時鐘 (RTC) 以及常用工具與 YaST2 介面。
目錄
- 系統時鐘與硬體時鐘概念
- 設定時區 (Time Zone)
- 使用 YaST2 管理時間
- 使用
timedatectl
工具 - Chrony 與 NTP 同步
- 手動校時與硬體時鐘 (hwclock)
- BIOS/UEFI RTC 設定建議
- 故障排除與驗證
- 結語
系統時鐘與硬體時鐘概念
- System Clock (系統時鐘):由作業系統維護,運行於記憶體中,精度依賴內核計時器。
- Hardware Clock / RTC (實時時鐘):獨立於系統供電的電池驅動時鐘,開機時用來初始化系統時鐘。
通常建議:
- 在 Linux 中以 UTC 作為 RTC 時間。
- 系統時鐘同步 NTP,以維持與互聯網時間伺服器的一致。
設定時區 (Time Zone)
- 列出可用時區:
timedatectl list-timezones
- 設定時區(例如台北):
sudo timedatectl set-timezone Asia/Taipei
- 驗證:
timedatectl status
使用 YaST2 管理時間
圖形介面 (GUI)
- 開啟 YaST2 → System → Date and Time。
- 在 Time Zone 分頁選擇城市/區域。
- 在 Time Synchronization 分頁啟用「Synchronize with NTP Server」並指定伺服器(例如
time1.cloud.tencent.com
)。 - 點擊 Next → Finish。
文字模式
sudo yast2 time
- 使用方向鍵切換選項,空白鍵勾選或輸入 NTP 伺服器清單。
- 確認後選擇 Accept。
使用 timedatectl
工具
- 顯示時間詳細狀態:
timedatectl status
- 啟用系統時鐘 NTP 同步:
sudo timedatectl set-ntp true
- 停用同時同步:
sudo timedatectl set-ntp false
- 設定本地 RTC 為 UTC 或本地時間:
sudo timedatectl set-local-rtc 0 # RTC = UTC sudo timedatectl set-local-rtc 1 # RTC = 本地時區
Chrony 與 NTP 同步
openSUSE/SLE 預設使用 Chrony 作為 NTP 客戶端,可提供更快速的收斂速度與更強的漂移校正。
- 安裝
chrony
(如未安裝):sudo zypper install -y chrony
- 編輯
/etc/chrony.conf
,在server
區段指定 NTP 伺服器:server clock.stdtime.gov.tw iburst server tick.stdtime.gov.tw iburst
- 啟用並重啟服務:
sudo systemctl enable --now chronyd
- 檢查同步狀態:
chronyc tracking chronyc sources
可使用 chronyc sourcestats
與 chronyc activity
進一步診斷。
手動校時與硬體時鐘 (hwclock)
- 讀取 RTC 時間:
sudo hwclock --show
- 將系統時鐘寫入 RTC(同步到硬體時鐘):
sudo hwclock --systohc
- 將 RTC 時鐘寫入系統時鐘(用硬體時鐘覆蓋系統時鐘):
sudo hwclock --hctosys
- 建議在關機或維護模式下執行
--systohc
,確保 RTC 與 UTC 保持一致。
BIOS/UEFI RTC 設定建議
- 設定 RTC 為 UTC:在 BIOS/UEFI 選單中確認 RTC 時間模式為 UTC(許多廠商預設為本地時間,本指南建議設定為 UTC)。
- 停用 RTC 校準功能(若有):部分系統有「Auto RTC Sync」功能,可能與 Chrony 等同步衝突,可視情況停用。
- 確認 BIOS 正確時間:因為系統啟動後會讀取 RTC 時間,請定期檢查並手動校正。
故障排除與驗證
- 檢查服務狀態:
sudo systemctl status chronyd
- 查看系統日誌:
sudo journalctl -u chronyd -e
- 驗證 NTP 連線:
chronyc sources -v
- 檢查時間偏差:
chronyc tracking
- 確認 RTC 模式:
timedatectl | grep 'RTC in local TZ'
結語
本指南介紹了 SUSE Linux 上常見的時間管理實務,涵蓋 時區設定、YaST2、timedatectl、Chrony/NTP、hwclock 及 BIOS RTC。透過正確設定與定期驗證,可確保系統時間準確穩定,提升伺服器安全性與運作可靠度。