GNU/Linux >> Znalost Linux >  >> Linux

Nesprávný čas zobrazený v nastavení duálního spouštění systému Windows-Linux? Zde je návod, jak to opravit

Pokud duálně zavádíte Windows a Ubuntu nebo jakoukoli jinou distribuci Linuxu, možná jste si všimli časového rozdílu mezi těmito dvěma operačními systémy.

Když používáte Linux, ukazuje správný čas. Ale když spustíte systém Windows, zobrazí se nesprávný čas. Někdy je to naopak a Linux ukazuje nesprávný čas a Windows má správný čas.

To je zvláštní zejména proto, že jste připojeni k internetu a vaše datum a čas jsou nastaveny tak, aby se používaly automaticky.

nebojte se! Nejste jediný, kdo čelí tomuto problému. Můžete to opravit pomocí následujícího příkazu v terminálu Linux:

timedatectl set-local-rtc 1

Znovu, nebojte se. Podrobně vysvětlím, jak výše uvedený příkaz řeší problém se špatným časem ve Windows po duálním spouštění. Ale předtím mi dovolte, abych vám řekl, proč narazíte na časový rozdíl v nastavení duálního spouštění.

Proč Windows a Linux ukazují rozdílný čas při duálním spouštění?

Počítač má dvě hlavní hodiny:systémové hodiny a hardwarové hodiny.

Hardwarové hodiny, které se také nazývají RTC (hodiny reálného času) nebo CMOS/BIOS hodiny. Tyto hodiny jsou mimo operační systém, na základní desce vašeho počítače. Funguje i po vypnutí systému.

Systémové hodiny jsou to, co vidíte uvnitř operačního systému.

Když je počítač zapnutý, načtou se hardwarové hodiny a použijí se k nastavení systémových hodin. Poté se pro sledování času použijí systémové hodiny. Pokud váš operační systém provede nějaké změny systémových hodin, jako je změna časového pásma atd., pokusí se tyto informace synchronizovat s hardwarovými hodinami.

Ve výchozím nastavení Linux předpokládá, že čas uložený v hardwarových hodinách je v UTC, nikoli v místním čase. Na druhou stranu si Windows myslí, že čas uložený na hardwarových hodinách je místní čas. Tam začíná problém.

Dovolte mi to vysvětlit na příkladech.

Vidíte, že jsem v časovém pásmu Kalkata, což je UTC+5:30. Po instalaci, když nastavím časové pásmo v Ubuntu na časové pásmo Kalkata, Ubuntu synchronizuje tyto časové informace s hardwarovými hodinami, ale s offsetem 5:30, protože hardwarové hodiny (RTC) musí být pro Linux v UTC.

Řekněme, že aktuální čas v časovém pásmu Kalkata je 15:00, což znamená, že čas UTC je 09:30.

Nyní, když vypnu systém a spustím Windows, mají hardwarové hodiny čas UTC (v tomto příkladu 09:30). Ale Windows si myslí, že hardwarové hodiny uložily místní čas. A tak změní systémové hodiny (které by měly ukazovat 15:00), aby jako místní čas použily čas UTC (09:30). A proto systém Windows zobrazuje 09:30 jako čas, který je o 5:30 hodin za skutečným časem (v tomto příkladu 15:00).

Znovu, pokud nastavím správný čas ve Windows přepnutím automatického časového pásma a tlačítek času, víte, co se stane? Nyní bude v systému zobrazovat správný čas (15:00) a synchronizovat tyto informace (všimněte si možnosti „Synchronizovat vaše hodiny“ na obrázku) s hardwarovými hodinami.

Pokud zavedete Linux, přečte čas z hardwarových hodin, které jsou v místním čase (15:00), ale protože Linux věří, že je to čas UTC, přidá k systémovým hodinám posun o 5:30. Nyní Linux ukazuje čas 20:30, což je o 5:30 hodin více než skutečný čas.

Nyní, když chápete hlavní příčinu problémů s časovým rozdílem při duálním spouštění, je čas podívat se, jak problém vyřešit.

Oprava nesprávného zobrazení času v systému Windows v nastavení duálního spouštění v systému Linux

Existují tři způsoby, jak tento problém vyřešit:

  1. Nechte Ubuntu i Windows automaticky kontrolovat datum, čas a časové pásmo přes internet
  2. Nastavte Linux, aby pro hardwarové hodiny používal místní čas
  3. Umožněte systému Windows používat pro hardwarové hodiny čas UTC

Proberu dva z nich, které jsou jednodušší.

Metoda 1:Nastavte svůj operační systém na automatické nastavení času a data

V tomto případě se stane, že ačkoli váš operační systém (ať už je to Windows nebo Linux) zobrazí na minutu nesprávný čas, a poté automaticky nastaví správný čas, pokud jste připojeni k internetu.

Chcete-li, aby váš systém Ubuntu Linux automaticky kontroloval datum a čas, přejděte do Nastavení systému -> Datum a čas a povolte obě možnosti.

Podobnou změnu nastavení byste měli provést také pro Windows.

Metoda 2:Umožněte Ubuntu používat místní čas pro hardwarové hodiny

Je snazší provádět změny v Linuxu, a proto doporučuji použít druhou metodu.

Ubuntu a většina ostatních linuxových distribucí dnes používá systemd, a proto můžete ke změně nastavení použít příkaz timedatectl.

To, co děláte, je říct svému systému Linux, aby používal místní čas pro hardwarové hodiny (RTC). Uděláte to pomocí set-local-rtc (nastavení místního času pro RTC) možnost:

timedatectl set-local-rtc 1

Jak si můžete všimnout na obrázku níže, RTC nyní používá místní čas.

Pokud nyní spustíte systém Windows, hardwarové hodiny budou jako místní čas, který je ve skutečnosti tentokrát správný. Když spustíte Linux, váš systém Linux ví, že hardwarové hodiny používají místní čas, nikoli UTC. A proto se tentokrát nepokouší přidat offset.

To opravuje problém s časovým rozdílem mezi Linuxem a Windows v duálním spouštění.

Zobrazí se varování o nepoužívání místního času pro RTC. U nastavení desktopu by to nemělo způsobovat žádné problémy. Přinejmenším mě nenapadá žádný.

Doufám, že jsem vám to vysvětlil. Pokud máte další otázky, zanechte prosím komentář níže.



Linux
  1. Opravte nesprávný čas ve Windows 11, že duální spouštění s Ubuntu Linux

  2. Jak duální spouštění Windows Xp a Ubuntu?

  3. Jak nakonfigurovat dual boot NixOS s Mac OS X na (U)EFI MacBooku?

  1. Jak duální bootování Manjaro a Windows 10

  2. Jak duální bootování Windows 10 a MX Linux

  3. Jak Linux používá hodiny reálného času?

  1. Jak duální boot Kali Linux a Windows 10

  2. Jak duální bootování Windows 10 a Debian 10

  3. Jak předat hodnotu vestavěnému modulu jádra Linuxu při spouštění?