GNU/Linux >> Znalost Linux >  >> Linux

Místní čas Windows vs Linux?

Nedávno jsem čelil stejnému problému a takto jsem to vyřešil. Musíte udělat malou změnu v obou OS.

Nejprve jsem začal s Linuxem. Spusťte následující příkazy jako root.

ntpdate pool.ntp.org

Toto aktualizuje váš čas, pokud není nastaven správně.

Nyní tímto příkazem nastavte hardwarové hodiny na UTC.

hwclock --systohc --utc

Zdroj

Nyní spusťte systém Windows a přidejte následující registr. Jednoduše vytvořte soubor .reg pomocí níže uvedeného kódu v poznámkovém bloku. Uložte jej a spusťte.

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\TimeZoneInformation]
"RealTimeIsUniversal"=dword:00000001

Zdroj

Od příštího spuštění vám oba OS budou ukazovat správný čas.


Ani jedno není špatné, ale používat UTC je správnější. RTC nemá časové pásmo; jsou to jen hloupé nástěnné hodiny. Pokud vaše místní časové pásmo dodržuje letní čas (kterého existuje mnoho variant a pravidla se libovolně mění), musíte to dvakrát ročně změnit. OS to udělá za vás, ale pokud je RTC UTC, OS stejně překládá UTC->místní – proč se hrabat s hodinami? Kromě toho vám během přechodu DST „fall back“ RTC nemůže říct, kolik je hodin! Je 1:30 CDT nebo CST?

Windows 8 zjevně podporuje UTC pro RTC. Windows 7 také ano, ale vyskytly se problémy.

Když lidé nastavovali hodiny BIOSu ručně, existoval proti tomu lepší argument, ale nyní mnohem převládá čas založený na serveru.


Normálním případem je, že systémy Linux mají RTC (hodiny reálného času) nastavené na UTC a převod na místní čas se provádí v uživatelském prostoru na základě údajů o časovém pásmu a TZ proměnná prostředí. To je "méně špatné", protože to udržuje systémový RTC monotónně rostoucí a později aplikuje jakékoli kouzlo časového pásma, což například zajišťuje, že žádné soubory nebudou mít v budoucnu běžně časové razítko (což se může snadno stát alespoň jednou ročně, pokud systém RTC je nastaven na místní čas). Jak poukázal Ken, samotné RTC nemá žádnou koncepci časového pásma, pouze času.

Jak jste zjistili, to způsobuje problémy při duálním spouštění se systémem, který normálně takto nefunguje, jako je rodina operačních systémů Microsoft, které obecně očekávají, že RTC bude nastaveno na místní čas. Ano, Windows NT (myslím, že se vrátíme až k NT 4) může pracovat s RTC nastaveným na UTC, ale alespoň jsem koukal, že to není ve skutečnosti podporovaná konfigurace a bylo tam několik upozornění.

Snadným řešením ve vašem případě je pravděpodobně nastavit RTC na místní čas, sdělit vašemu systému Linux, že RTC je nastaven na místní čas (přesná mechanika toho se liší podle distribuce a verze vydání, ale zjevně v Ubuntu nastavíte UTC=no v /etc/default/rcS) a poté nakonfigurujte operační systémy tak, aby byl pouze jeden z nich (nejlépe ten, který používáte nejčastěji, protože čas zobrazený ve všech ostatních bude dvakrát ročně nesprávný, dokud nebude nabootován a nebude mít možnost jej opravit) zvládá změny letního času. A žijte s nevýhodami, které by mělo být možné spravovat v systému pro jednoho uživatele.

Také můžete nastavte stranu Windows tak, aby používala UTC jako časové pásmo a vypněte automatické změny letního času ve Windows a ponechte Linux nastavený tak, aby měl RTC v UTC a zobrazoval čas převedený podle jeho zvyklostí. To však způsobí, že systém Windows zobrazí datum a čas v UTC, což nemusí být to, co skutečně chcete. Pro nás Evropany, kteří jsme nanejvýš tři hodiny mimo UTC, to není velký problém, ale může to být problém spíše v USA. Tato možnost je pravděpodobně realističtější, pokud Windows používáte jen příležitostně a váš primární operační systém je Linux nebo jiný OS podporující RTC-UTC.


Linux
  1. Rychlejší spouštění Linuxu

  2. 10 DŮVODŮ PRO ZMĚNU WINDOWS 10 NA LINUX

  3. Stavy procesu Linuxu

  1. Linux – Jak odinstalovat Grub?

  2. Linux vs Windows hosting

  3. Zásady místní skupiny Windows

  1. Linux Time Command

  2. Poslední příkaz v Linuxu

  3. exFAT vs NTFS na Linuxu