De onde 'data' foi recuperada?

2

Em um novo notebook, configurei o Ubuntu para sincronizar automaticamente o tempo. O fuso horário está definido para UTC +8. Não há problema com a data em que o notebook está conectado à Internet.

Mas quando iniciei o notebook no modo air gap (offline), notei que a data exibida pelo Ubuntu está incorreta. Posso confirmar que date e date -u retornaram uma data incorreta. Nenhum TZ definido no terminal. A data no menu UEFI ainda é a correta. Eu acredito que date não está usando data do relógio do notebook. Como date resolve a data neste caso?

Tentei definir o tempo no menu UEFI para 07/09/2016 21:04:xx e executei os seguintes comandos:

$ date
Ahd Jul 10 05:04:25 MYT 2016
$ date -u
Sab Jul  9 21:04:26 UTC 2016
$ sudo hwclock
Ahad 10 Jul 2016 05:04:35  MYT  .057058 seconds
$ sudo hwclock --localtime
Sabtu 09 Jul 2016 09:04:39  MYT  .813741 seconds

A data que eu configurei no UEFI agora se torna o resultado para date -u , enquanto deveria ser o resultado para date . Isso tem algo a ver com o serviço de horário EUFI?

    
por newbie 09.07.2016 / 10:47

2 respostas

2

Como você já mencionou, existem dois relógios diferentes:

  1. O relógio do software é definido e usado pelo kernel do linux e fornece o tempo para todos os programas
  2. O relógio de hardware (relógio de tempo real (RTC)) tem energia de backup de bateria (por exemplo, está sempre em execução) e é usado para ajustar o relógio do sistema durante a inicialização

A UEFI não tem acesso ao relógio do sistema e, portanto, usa o RTC. date usa o relógio do sistema. A razão pela qual ele está funcionando corretamente quando há uma conexão com a Internet pode ser um serviço ntp em execução que ajusta o tempo na inicialização?

Você pode querer usar sudo dpkg-reconfigure tzdata para uma opção baseada em texto para definir a hora do sistema corretamente. Se o Ubuntu ainda exibir sua última data de login (realmente?) Após a reinicialização, parece haver um problema com a inicialização do relógio do sistema baseado em RTC na inicialização.

Origem: man rtc

    
por Marcus 09.07.2016 / 11:40
0

Parece que o Ubuntu (desde a versão 15?) assume que o RTC está no UTC por padrão. Aqui está o resultado do comando timedatectl :

$ timedatectl
      Local time: Ahd 2016-07-10 16:07:28 MYT
  Universal time: Ahd 2016-07-10 08:07:28 UTC
        RTC time: Ahd 2016-07-10 08:07:28
       Time zone: Asia/Kuala_Lumpur (MYT, +0800)
 Network time on: yes
NTP synchronized: no
 RTC in local TZ: no

Preciso garantir que o restante dos sistemas operacionais instalados no sistema tratem o RTC no UTC.

    
por newbie 10.07.2016 / 10:17