Rôzne časy pre windows a ubuntu. V Ubuntu a Windowse sa stráca čas

Sú chvíle, keď sa to zvyčajne stáva pri inštalácii druhého systému linux, čas v systémoch sa začína kaziť, napríklad ste pracovali pod svojím linux a rozhodol sa presťahovať okná, a zistili, že čas a dátum sú úplne nesprávne, alebo naopak, je to spôsobené rozdielmi vo formáte času, tieto operačné systémy s ním pracujú inak, trochu teórie, a tak začnime linux, tieto operačné systémy pracujú s UTC
UTC- hardvérové ​​aj softvérové ​​hodiny sú založené na greenwichskom strednom čase. To znamená, že hodiny dávajú univerzálny čas v nulovom časovom pásme. Napríklad, ak je vaše časové pásmo GMT+3, Moskva, hodiny budú o tri hodiny pozadu. A používatelia lokálne pridávajú k tomuto času opravu pre časové pásmo, napríklad plus +3. Každý používateľ pridá zmenu, ktorú potrebuje. Deje sa tak na serveroch, aby každý používateľ mohol získať správny čas pre svoje časové pásmo.
okná zasa pracuje s miestny čas
miestny čas- v tejto verzii softvérové ​​hodiny tiež bežia podľa greenwichského času, ale hardvérové ​​hodiny bežia podľa času miestneho časového pásma. Pre používateľa v tom nie je žiadny rozdiel; stále musíte pridať úpravu svojho časového pásma. Pri načítavaní a synchronizácii času však systém Windows odpočítava 3 hodiny (alebo iné nastavenie časového pásma) od hardvérového času, aby bol softvérový čas správny.
zdá sa, že sme si utriedili teóriu, teraz prejdime k praxi, a tak na začiatku naložíme okná, spustite konzolu ako správca a vykonajte príkazy pre 32-bitový systém
Reg add HKLM\SYSTEM\CurrentControlSet\Control\TimeZoneInformation /v RealTimeIsUniversal /t REG_DWORD /d 1
alebo pre 64 bit
Reg add HKLM\SYSTEM\CurrentControlSet\Control\TimeZoneInformation /v RealTimeIsUniversal /t REG_QWORD /d 1
ale hodiny budú stále synchronizované s časom na serveri; ak to chcete urobiť, vypnite službu synchronizácie hodín
sc config w32time start= vypnuté
Teraz reštartujeme náš systém a spustíme ho linux prihláste sa do terminálu pod koreň a vykonajte príkazy
timedatectl set-local-rtc 1 --adjust-system-clock
A
sed -i "s/UTC=áno/UTC=nie/" /etc/default/rcS
pozrite sa na stav hardvérových hodín
sudo timedatectl
Teraz znova reštartujeme, vstúpime do biosu a nastavíme dátum a čas, skontrolujeme...
ak z nejakého dôvodu potrebujeme toto všetko zakázať, vykonáme príkazy v systéme Linux
timedatectl set-local-rtc 0
A
sed -i "s/UTC=nie/UTC=áno/" /etc/default/rcS
vo Windows, konzola ako správca
Reg add HKLM\SYSTEM\CurrentControlSet\Control\TimeZoneInformation /v RealTimeIsUniversal /t REG_DWORD /d 0
A
sc config w32time start= dopyt
Ďalšia možnosť by bola nasledujúca, v linuxe debian a derivátoch
spustite príkaz na nastavenie miestneho času
sudo hwclock --localtime --adjust
ak ho chceme vrátiť
sudo hwclock --utc --adjust
teraz skontrolujme
timedatectl | grep miestne
ak odpoveď
RTC v miestnom TZ: č
potom nám čas tiká podľa Greenwicha, ale ak odpoveď
RTC v miestnom TZ: áno
to znamená, že náš čas tiká podľa zavedeného systému
to je všetko, myslím, že to bolo pre vás užitočné

V režime UEFI (Secure Boot). Čas v systéme BIOS je správny.

Keď spustím Ubuntu a potom spustím Windows 10, zobrazuje sa nesprávny čas. Musím to opraviť ručne alebo online v systéme Windows 10 a keď reštartujem systém Windows 10, nie je to problém. Hodiny ukazujú správny čas. A potom, keď reštartujem Linux, hodiny sú správne, ale keď sa vrátim do systému Windows 10, hodiny začnú znova fungovať.

Operačné systémy ukladajú a získavajú čas v hardvérových hodinách umiestnených na základnej doske, aby mali prehľad o čase, aj keď systém nie je napájaný. Väčšina operačných systémov (Linux/Unix/Mac) štandardne ukladá čas na hardvérových hodinách ako UTC, hoci niektoré systémy (najmä Microsoft Windows) ukladajú čas na hardvérových hodinách ako „miestny“ čas. To spôsobuje problémy v systéme s dvojitým zavádzaním, ak oba systémy zaobchádzajú s hardvérovými hodinami odlišne.

Výhodou používania hardvérových hodín ako UTC je, že nemusíte meniť hardvérové ​​hodiny pri pohybe medzi časovými pásmami alebo keď sa začína alebo končí letný čas (DST), pretože UTC nemá žiadny čas ani časové posuny.

Zmena systému Linux na používanie miestneho času je jednoduchšia a spoľahlivejšia ako zmena systému Windows na používanie UTC, takže systémy Linux/Windows s dvojitým zavádzaním zvyčajne používajú miestny čas.

Od Intrepid (8.10) je predvolené UTC = áno.

Nastavte systém Windows na používanie UTC

Poznámka. Táto metóda pôvodne nebola podporovaná v systémoch Windows Vista a Server 2008, ale vrátila sa s balíkom Vista SP2, Windows 7, Server 2008 R2 a Windows 8/8.1.

Aby MS Windows vypočítal čas z hardvérových hodín vo formáte UTC.

Vytvorte súbor s názvom WindowsTimeFixUTC.reg s nasledujúcim obsahom a potom naň dvakrát kliknite, aby ste zlúčili obsah do registra:

Editor databázy Registry systému Windows, verzia 5.00 "RealTimeIsUniversal"=dword:00000001

Poznámka. Služba Windows Time bude stále zaznamenávať miestny čas v RTC bez ohľadu na vyššie uvedené nastavenie registra, keď je vypnutá, takže je vhodné vypnúť službu Windows Time pomocou tohto príkazu (ak je potrebná synchronizácia času, zatiaľ čo systém Windows používa synchronizáciu času tretej strany ):

Sc config w32time start= vypnuté

Zrušiť zmenu

Môžete vytvoriť súbor s nasledujúcim obsahom a potom naň dvakrát kliknúť, aby ste zlúčili pôvodné zmeny, ako je uvedené vyššie:

Editor databázy Registry systému Windows, verzia 5.00 "RealTimeIsUniversal"=-

Ak bola služba Windows Time zakázaná, znova ju povoľte pomocou príkazu:

Sc config w32time start= dopyt

Urobte z Linuxu „miestny“ čas

Ak chcete svojmu systému Ubuntu povedať, že hardvérové ​​hodiny sú nastavené na „miestny“ čas:

  1. zmeniť /etc/default/rcS
  2. pridajte alebo zmeňte nasledujúcu časť

    # Nastavte UTC=áno, ak sú vaše hardvérové ​​hodiny nastavené na UTC (GMT) UTC=nie

Ubuntu 15.04 a vyššie systémy (napr. Ubuntu 16.04 LTS):

    otvorte terminál a spustite nasledujúci príkaz

    Ak chcete na našej stránke vidieť odpovede na vaše otázky o všetkom, čo súvisí s technológiou Apple, operačným systémom Mac OS X (a jeho spustením na PC), napíšte nám cez príp.

    Dostali sme nasledujúcu otázku:

    dobrý deň!
    Hackintosh používa Snow Leopard, Windows 7 a Ubuntu. Čas sa po reštarte neustále stráca ((Mac OS ho vždy vráti o 4 až 5 hodín! Povedzte mi, ako problém vyriešiť

    Problém s synchronizácia času je relevantný nielen pre Hackintoshe, ale aj pre skutočné Macy, na ktorých Windows beží cez Boot Camp. Dôvod je veľmi jednoduchý: Mac OS X vždy predpokladá, že čas zaznamenaný v systéme BIOS (alebo EFI) je tam zapísaný vo formáte UTC– inými slovami, podľa Greenwicha. K tomu pridáva príslušnú korekciu pre časové pásmo.

    Ale Windows robí veci inak: to číta priamočas z BIOSu. A ak tento čas zmeníte, alebo sa automaticky zosynchronizuje, tak sa v BIOSe zaznamená v opravenom formáte: UTC+korekcia.

    Ako vyriešiť tento rozpor? Existujú dva prístupy: jeden zo strany Mac OS, druhý zo strany Windows a Linux.

    Riešenie pomocou Mac OS X

    Hneď si povedzme, že to nie je najlepšia cesta. Pointa je, že pre Mac OS X nastavíme časové pásmo na Greenwich Mean Time. Napríklad v nastaveniach (vzdialené dátum a čas, tab Časové pásmo) vyberte ako svoju lokalitu Reykjavík.

    Okrem toho na tab "Dátum a čas" Určite si vypnite automatickú synchronizáciu času, inak to dopadne ešte horšie ako predtým.

    Po týchto krokoch bude čas vo Windowse vždy správny a Mac OS X to nepokazí. Ale prečo to nie je ten najlepší spôsob? Faktom je, že ak synchronizujete nejaký gadget s Mac OS X - napríklad iPhone, nesprávne časové pásmo skreslí veľa dôležitých údajov. Napríklad čas prichádzajúcich SMS bude tiež Greenwich.

    Riešenie využívajúce Windows a Linux

    Ďalším spôsobom je nechať Windows a Linux čítať čas z BIOSu rovnakým spôsobom ako Mac OS. Našťastie je takáto príležitosť skutočne poskytnutá, ale je skrytá veľmi hlboko.

    V systéme Windows budete musieť spustiť program z okna Spustiť regeditEditor registra. Potom prejdite na vlákno \HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\TimeZoneInformation a vytvorte tam hodnotu DWORD s názvom RealTimeIsUniversal a hodnotu rovnajúcu sa jednej:

    V systéme Linux (aspoň na Ubuntu) musíte súbor upraviť /etc/default/rcS v ľubovoľnom textovom editore a nahradiť obsah parametra "UTC=nie" na "UTC=áno".

    Potom reštartujte Mac OS X a nastavte svoje prirodzené časové pásmo, zároveň môžete povoliť automatickú synchronizáciu času cez internet. Po reštarte systému Windows a Ubuntu uvidíte presne rovnaký čas.

    Používanie viacerých operačných systémov na tom istom počítači niekedy spôsobuje ich vzájomné konflikty, keď používajú to isté. Niekedy sa to týka niečoho tak jednoduchého, ako je čas. Ani také populárne operačné systémy pre PC ako Windows a Ubuntu sa nevedia zladiť a neustále si navzájom menia čas na nesprávny.

    Dôvody tohto javu sú vlastne jednoduché: Windows vníma systémový čas (ktorý sa zobrazuje v nastaveniach CMOS) ako lokálny (s ohľadom na časové pásmo) a Ubuntu - podľa UTC (Greenwich Mean Time, bez ohľadu na časové pásmo). Z tohto dôvodu upravujú systémový čas tak, aby vyhovoval ich logike, čím navzájom porušujú logiku.

    Riešenie problému je tiež jednoduché: buď prinútiť Windows pridať posun časového pásma k systémovému času, alebo zabrániť Ubuntu pridať tento posun.

    Nastavenia v Ubuntu

    Od verzie 16.04 je možné prepínať nastavenia zobrazenia času pomocou dvoch príkazov.

    Povolenie zobrazenia miestneho času:
    sudo hwclock --localtime --adjust

    Povolenie zobrazenia UTC:
    sudo hwclock --utc --adjust

    V starších verziách Ubuntu musíte upraviť súbor rtC:

    sudo nano /etc/default/rcS

    Tento riadok musíte pridať (na zobrazenie miestneho času) alebo odstrániť (na zobrazenie času UTC):

    Nastavenia v systéme Windows

    V systéme Windows sa takmer všetky systémové nastavenia upravujú v registri, výnimkou nie sú ani TimeZoneInformation, ktoré sú v tejto situácii nevyhnutné. Nachádza sa v registri na tejto adrese:

    HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\TimeZoneInformation

    Tu je potrebné pridať alebo zmeniť parameter RealTimeIsUniversal. Jeho typ je DWORD. Aby sa systémový čas čítal v UTC, musíte nastaviť hodnotu na 1, aby ste ho rozpoznali ako lokálny, musíte nastaviť hodnotu na 0 alebo tento parameter úplne odstrániť.

    Editor databázy Registry je možné spustiť pomocou príkazu regedit.