iT邦幫忙

0

ubuntu 改local time 重開機

版本:ubuntu 16.04
時區:台北
Network time on:no
NTP synchronized:no

ubuntu的時間更改為以下
timedatectl set-time "20:10:10"
即更改local time時間
但ubuntu重開機後local time會自行校時
需求是重開機維持上次更改的時間,要怎麼修改呢?

圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

1 個回答

4
bizpro
iT邦大師 1 級 ‧ 2017-05-11 14:26:41
最佳解答

您的資訊不足部份:

  1. RTC in local TZ: 是yes或no?
  2. 您的Ubuntu是在跑在Windows下的虛擬機中? 或者是和Windows雙開機?

基本原理是:

  1. 開機時, 讀取主機板時間, 也就是Read-Time Clock, RTC
  2. 運作中間, 如果作業系統時間Local time, 也就是本地中央標準時間(Central Standard Time, CST)有同步NTP, 那就同步, 如果沒有, 那就CST一直跑. 可能會和RTC有時間差.
  3. 關機時, 作業系統將本地時間CST寫到到硬體時間RTC中.
  4. 為了跨時區運作與因應日光節約時間, 通常RTC時間要等於UTC(Coordinated Universal Time, 也就是格林威治時間).

所以您說時間會跑掉, 可能的猜測是:

  1. 主機板時間會跑, 這就要看是否電池沒電了. 當然, 以下指令可以檢查看看硬體時間(RTC)是如何取得的和取得的時間:
    $ sudo hwclock --debug
  2. 您的系統有Windows在, 關於Windows, 這是惱人的事, 您也應該猜到, 微軟就是不要用UTC時間, 而用Windows的系統本地時間(CST)來重設硬體時間(RTC)...當然, 您可以修改Windows的設定...只要幾個步驟就可以了, 但, 就隨他去吧. 山不轉路轉, 就自己改Ubuntu的設定, 有效又可靠多了:
    $ sudo timedatectl set-local-rtc 1
    打完收工.
$ timedatectl status
      Local time: 四 2017-05-11 13:36:23 CST
  Universal time: 四 2017-05-11 05:36:23 UTC
        RTC time: 四 2017-05-11 13:36:23
       Time zone: Asia/Taipei (CST, +0800)
 Network time on: yes
NTP synchronized: yes
 RTC in local TZ: yes

Warning: The system is configured to read the RTC time in the local time zone.This mode can not be fully supported. It will create various problems with time zone changes and daylight saving time adjustments. The RTC time is never updated, it relies on external facilities to maintain it. If at all possible, use RTC in UTC by calling 'timedatectl set-local-rtc 0'.

您會看到輸出的後面有一堆"忠言", 建議您不要這樣做. 出乎無奈, 就認了吧. 這時 就應該啟用NTP來校正系統本地時間(CST), 讓它能自動校正時間.

我要發表回答

立即登入回答