Ačkoli se může zdát, že by se o to mělo systém postarat automaticky, nastavení času v Linuxu může být někdy problematické nebo nesprávně nakonfigurované. Pro běžného uživatele může být oprava nastavení času v Linuxu matoucí, proto si rozebereme a vysvětlíme, jak v tomto operačním systému nastavit synchronizaci času pomocí sítě.
Kromě konfigurace NTP si objasníme, jak eliminovat časové problémy, které mohou nastat při duálním spouštění systémů Linux a Windows.
Konfigurace Network Time Protocol
Synchronizace softwarových hodin vašeho počítače se systémem Linux s časovými servery je nejběžnějším způsobem, jak zajistit přesný čas. Ve většině distribucí Linuxu k tomu dochází automaticky. Nicméně ne všechny distribuce Linuxu používají NTPd. Navíc, i ty, které jej používají, jej mohou mít nesprávně nastavený. Abychom tento problém vyřešili, ukážeme si, jak snadno lze ručně nakonfigurovat démona Network Time Protocol v Linuxu.
Nejprve otevřete terminál a nainstalujte NTP, pokud jej váš systém ještě nemá. Je velmi pravděpodobné, že už jej máte, ale pro jistotu uvádíme příkazy pro instalaci v nejrozšířenějších moderních distribucích Linuxu.
Ubuntu
sudo apt install ntp
Debian
sudo apt-get install ntp
Arch Linux
sudo pacman -S ntp
Fedora
sudo dnf install ntp
OpenSUSE
sudo zypper install ntp
Po instalaci softwaru je nutné se připojit k serveru NTP. Standardně má většina distribucí Linuxu své vlastní servery NTP konfigurované v souboru /etc/ntp.conf. Pokud však tyto servery považujete za nespolehlivé, můžete je nahradit důvěryhodnějším serverem, například oficiálním serverem Google NTP.
Pro přidání serveru Google NTP upravte soubor ntp.conf.
sudo nano /etc/ntp.conf
Můžete odstranit všechny existující záznamy a nahradit je následujícími (i když to nedoporučujeme). Nejlepších výsledků dosáhnete, pokud záznamy pro Google NTP vložíte na začátek souboru.
Důležitá poznámka: Je nezbytné, aby na konci každého nového záznamu byl parametr iburst. Tato volba odesílá „shluk“ paketů na servery pouze v případě, že máte potíže s připojením k časovému serveru.
server time.google.com iburst server time2.google.com iburst server time3.google.com iburst
Po provedení změn uložte konfigurační soubor v editoru Nano stisknutím Ctrl + O a ukončete editor pomocí Ctrl + X.
Nastavení časového pásma
NTP dokáže automaticky synchronizovat čas ze serverů, ale nejdříve potřebuje znát časové pásmo. Obvykle během počátečního nastavení operační systém Linux požádá o nastavení časového pásma a nastaví ho. Pokud se během instalace něco pokazilo, je nutné to opravit ručně pomocí nástroje tzselect.
Otevřete terminál a spusťte nástroj pro konfiguraci časového pásma:
tzselect
Nástroj tzselect vás provede konfigurací správného časového pásma. Po dokončení budete moci spustit NTPd.
Spuštění NTP
Nyní, když máte všechna připojení k časovým serverům nastavená, dalším krokem v procesu je použití inicializačního systému Systemd k načtení NTP při spuštění. Pokud váš operační systém Linux nepoužívá Systemd, což je případ většiny moderních distribucí, budete muset najít alternativu k těmto příkazům.
Nejprve spusťte NTPd:
sudo systemctl start ntpd.service
Poté jej povolte při spouštění pomocí příkazu enable:
sudo systemctl enable ntpd.service
Spuštění výše uvedených příkazů by mělo okamžitě nastavit čas, protože čas UTC ve vašem BIOSu je nyní správný (díky nástroji tzselect).
Použití místního času
Kromě NTP existují i další způsoby, jak nastavit čas v Linuxu. Nejpopulárnější alternativou je použití „místního času“. Místní čas říká Linuxu, aby si udržoval čas, ale nesynchronizoval se s ničím. V podstatě si bude uchovávat čas sám pro sebe a nebude do toho nic zasahovat. Je to sice méně spolehlivé, ale funguje to. Otázkou je, proč by to někdo chtěl dělat?
Hlavním důvodem, proč by někdo mohl preferovat místní čas oproti NTP, je fakt, že duální spouštění systémů může narušit čas. Pokud jste někdy spustili Linux a poté restartovali Windows 10, všimnete si časových nesrovnalostí. Je to proto, že oba operační systémy mají službu pro synchronizaci času a dochází mezi nimi ke konfliktům. Hlavním způsobem, jak tomu zabránit, je zakázat synchronizaci času v Linuxu.
Důležitá poznámka: I když nastavíte Linux na používání místního času, Windows mohou stále mít problémy. Nezapomeňte zkontrolovat nastavení času ve Windows, abyste se ujistili, že mezi oběma operačními systémy nedochází ke konfliktům.
Spuštění příkazu timedatectl by to mělo napravit:
sudo timedatectl set-local-rtc 1
Po přepnutí na místní čas budete možná muset restartovat počítač. Po opětovném přihlášení by vše mělo používat místní čas.
Chcete místní čas znovu vypnout? Pokud ano, budete muset znovu spustit příkaz timedatectl. Zkuste následující:
sudo timedatectl set-local-rtc 0
Stejně jako předtím, restartujte počítač se systémem Linux pro jistotu. Při příštím přihlášení by se již neměl používat místní čas.