Timp diferit pentru windows și ubuntu. Timpul este pierdut în Ubuntu și Windows

Există momente când la instalarea unui al doilea sistem, acest lucru se întâmplă de obicei linux, timpul în sisteme începe să meargă prost, de exemplu, lucrați sub dvs linuxși a decis să se mute la ferestre, și a constatat că ora și data sunt complet greșite, sau invers, acest lucru se datorează diferențelor în formatul orei, aceste sisteme de operare funcționează cu ea diferit, puțină teorie și așadar, să începem cu linux, aceste sisteme de operare funcționează cu UTC
UTC- atât ceasurile hardware cât și cele software se bazează pe Greenwich Mean Time. Adică, ceasul oferă ora universală în fusul orar zero. De exemplu, dacă fusul tău orar este GMT+3, Moscova, atunci ceasul va fi în urmă cu trei ore. Iar utilizatorii adaugă local la această oră o corecție pentru fusul orar, de exemplu, plus +3. Fiecare utilizator adaugă amendamentul de care are nevoie. Acest lucru se face pe servere, astfel încât fiecare utilizator să poată obține ora corectă pentru fusul său orar.
ferestre la rândul său lucrează cu ora locala
ora locala- în această versiune, ceasul software rulează și în funcție de Greenwich Mean Time, dar ceasul hardware rulează în funcție de ora fusului orar local. Nu există nicio diferență pentru utilizator; trebuie totuși să adăugați o ajustare la fusul orar. Dar atunci când încărcați și sincronizați ora, Windows scade 3 ore (sau o altă ajustare a fusului orar) din ora hardware, astfel încât ora software-ului să fie corectă.
deci, se pare că am rezolvat teoria, acum să trecem la practică și, la început, ne vom încărca ferestre, lansați consola ca administrator și executați comenzi pentru un sistem pe 32 de biți
Reg add HKLM\SYSTEM\CurrentControlSet\Control\TimeZoneInformation /v RealTimeIsUniversal /t REG_DWORD /d 1
sau pentru 64 de biți
Reg add HKLM\SYSTEM\CurrentControlSet\Control\TimeZoneInformation /v RealTimeIsUniversal /t REG_QWORD /d 1
dar ceasul va fi în continuare sincronizat cu ora serverului; pentru a face acest lucru, dezactivați serviciul de sincronizare a ceasului
sc config w32time start= dezactivat
Acum repornim sistemul și lansăm linux conectați-vă la terminalul de sub rădăcinăși executați comenzile
timedatectl set-local-rtc 1 --adjust-system-clock
Și
sed -i "s/UTC=yes/UTC=no/" /etc/default/rcS
uitați-vă la starea ceasului hardware
sudo timedatectl
Acum repornim din nou, intrăm în bios și setăm data și ora, verificăm...
dacă dintr-un motiv oarecare trebuie să dezactivăm toate acestea, atunci executăm comenzile în Linux
timedatectl set-local-rtc 0
Și
sed -i "s/UTC=nu/UTC=da/" /etc/default/rcS
in windows, consola ca administrator
Reg add HKLM\SYSTEM\CurrentControlSet\Control\TimeZoneInformation /v RealTimeIsUniversal /t REG_DWORD /d 0
Și
sc config w32time start= cerere
O altă opțiune ar fi următoarea, în linux debian și derivate
rulați comanda pentru a seta ora locală
sudo hwclock --localtime --adjust
dacă vrem să-l returnăm înapoi
sudo hwclock --utc --adjust
acum hai sa verificam
timedatectl | grep local
dacă răspunsul
RTC în TZ local: nr
atunci timpul nostru curge conform Greenwich, dar dacă răspunsul
RTC în TZ local: da
asta înseamnă că timpul nostru curge conform sistemului stabilit
asta e tot, cred ca ti-a fost de folos

În modul UEFI (Secure Boot). Ora mea de BIOS este corectă.

Când pornesc în Ubuntu și apoi pornesc în Windows 10, arată momentul greșit. Trebuie să-l repar manual sau online în Windows 10 și când repornesc în Windows 10 nu este o problemă. Ceasul arată ora corectă. Și apoi, când repornesc în Linux, ceasul este corect, dar când mă întorc la Windows 10, ceasul începe să funcționeze din nou.

Sistemele de operare stochează și recuperează timpul într-un ceas hardware situat pe placa de bază pentru a ține evidența timpului chiar și atunci când sistemul nu este alimentat. Majoritatea sistemelor de operare (Linux/Unix/Mac) stochează ora pe ceasul hardware ca UTC în mod implicit, deși unele sisteme (în special Microsoft Windows) stochează ora pe ceasul hardware ca oră „locală”. Acest lucru cauzează probleme pe un sistem de pornire dublă dacă ambele sisteme tratează ceasul hardware în mod diferit.

Avantajul utilizării unui ceas hardware ca UTC este că nu trebuie să schimbați ceasul hardware atunci când vă deplasați între fusurile orare sau când începe sau se termină ora de vară (DST), deoarece UTC nu are decalaje de oră sau oră.

Schimbarea Linux pentru a utiliza ora locală este mai ușoară și mai fiabilă decât schimbarea Windows pentru a utiliza UTC, astfel încât sistemele Linux/Windows cu pornire dublă folosesc de obicei ora locală.

Deoarece Intrepid (8.10), UTC = da este implicit.

Faceți ca Windows să folosească UTC

Notă. Această metodă nu a fost acceptată inițial în Windows Vista și Server 2008, dar a revenit cu Vista SP2, Windows 7, Server 2008 R2 și Windows 8/8.1.

Pentru ca MS Windows să calculeze ora din ceasul hardware în format UTC.

Creați un fișier numit WindowsTimeFixUTC.reg cu următorul conținut, apoi faceți dublu clic pe el pentru a îmbina conținutul în registry:

Editorul de registru Windows versiunea 5.00 „RealTimeIsUniversal”=dword:00000001

Notă. Serviciul Windows Time va înregistra în continuare ora locală în RTC, indiferent de setarea de registry de mai sus, atunci când este dezactivat, deci este convenabil să dezactivați serviciul Windows Time folosind această comandă (dacă este necesară sincronizarea orei în timp ce Windows utilizează o sincronizare a oră terță parte). ):

Sc config w32time start= dezactivat

Anulează modificarea

Puteți crea un fișier cu următorul conținut și apoi faceți dublu clic pe el pentru a îmbina modificările originale ca mai sus:

Editorul de registru Windows versiunea 5.00 „RealTimeIsUniversal”=-

Dacă serviciul Windows Time a fost dezactivat, activați-l din nou utilizând comanda:

Sc config w32time start= cerere

Faceți Linux oră „locală”.

Pentru a spune sistemului Ubuntu că ceasul hardware este setat la ora „locală”:

  1. schimbați /etc/default/rcS
  2. adăugați sau modificați următoarea secțiune

    # Setați UTC=da dacă ceasul dvs. hardware este setat la UTC (GMT) UTC=nu

Ubuntu 15.04 și sisteme superioare (de exemplu Ubuntu 16.04 LTS):

    deschideți un terminal și rulați următoarea comandă

    Dacă doriți să vedeți pe site-ul nostru răspunsuri la întrebările dvs. despre tot ce ține de tehnologia Apple, sistemul de operare Mac OS X (și lansarea acestuia pe un PC), scrieți-ne prin sau.

    Am primit următoarea întrebare:

    bună ziua!
    Hackintosh rulează Snow Leopard, Windows 7 și Ubuntu. Timpul se pierde în mod constant după o repornire ((Mac OS îl setează întotdeauna înapoi cu 4-5 ore! Spune-mi cum să rezolv problema

    O problemă cu sincronizare de timp este relevant nu numai pentru Hackintosh-uri, ci și pentru Mac-uri reale, pe care Windows rulează prin Boot Camp. Motivul pentru aceasta este foarte simplu: Mac OS X presupune întotdeauna că timpul înregistrat în BIOS (sau EFI) este scris acolo în format UTC- cu alte cuvinte, conform Greenwich. La aceasta ea adaugă corecția corespunzătoare pentru fusul orar.

    Dar Windows face lucrurile altfel: ea citește direct timp din BIOS. Și dacă modificați această oră, sau este sincronizată automat, atunci va fi înregistrată în BIOS în formatul corectat: UTC+corecție.

    Cum să rezolvi această contradicție? Există două abordări: una din partea Mac OS, cealaltă din partea Windows și Linux.

    Soluție folosind Mac OS X

    Să spunem imediat că acesta nu este cel mai bun mod. Concluzia este că pentru Mac OS X am setat fusul orar la Greenwich Mean Time. De exemplu, în setări (telecomandă data si ora, fila Fus orar) selectați ca localitate Reykjavik.

    În plus, pe fila "Data si ora" Asigurați-vă că dezactivați sincronizarea automată a orei, altfel se va dovedi și mai rău decât înainte.

    După acești pași, ora în Windows va fi întotdeauna corectă, iar Mac OS X nu o va da peste cap. Dar de ce nu este aceasta cea mai bună cale? Faptul este că, dacă sincronizați un gadget cu Mac OS X - de exemplu, un iPhone, atunci fusul orar greșit va distorsiona multe date importante. De exemplu, ora SMS-urilor primite va fi și Greenwich.

    Soluție folosind Windows și Linux

    O altă modalitate este ca Windows și Linux să citească ora din BIOS la fel cum face Mac OS. Din fericire, o astfel de oportunitate este într-adevăr oferită, dar este ascunsă foarte adânc.

    Pe Windows, va trebui să rulați programul din fereastra Run regeditEditor de registru. Apoi mergi la fir \HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\TimeZoneInformationși creați o valoare DWORD acolo cu numele Timpul real este universalși o valoare egală cu unu:

    Pe Linux (cel puțin pe Ubuntu), trebuie să editați fișierul /etc/default/rcSîn orice editor de text și înlocuiți conținutul parametrului "UTC=nu" pe „UTC=da”.

    După aceasta, reporniți în Mac OS X și setați fusul orar nativ, în același timp puteți activa sincronizarea automată a orei prin Internet. După repornirea în Windows și Ubuntu, veți vedea exact în același timp.

    Utilizarea mai multor sisteme de operare pe același computer le face uneori să intre în conflict între ele atunci când folosesc același lucru. Uneori este vorba despre ceva la fel de simplu ca timpul. Chiar și sistemele de operare pentru PC atât de populare, cum ar fi Windows și Ubuntu, nu se pot înțelege și își schimbă constant timpul unul celuilalt la cel incorect.

    Motivele acestui fenomen sunt de fapt simple: Windows percepe ora sistemului (care este afișată în setările CMOS) ca fiind locală (ținând cont de fusul orar), iar Ubuntu - conform UTC (Greenwich Mean Time, fără a ține cont de fus orar). Din această cauză, ei ajustează ora sistemului pentru a se potrivi cu logica lor, încălcându-se reciproc logica.

    Soluția problemei este, de asemenea, simplă: fie forțează Windows să adauge un offset de fus orar la ora sistemului, fie împiedică Ubuntu să adauge acest offset.

    Setări în Ubuntu

    Începând cu versiunea 16.04, setările de afișare a timpului pot fi schimbate folosind două comenzi.

    Activarea afișării orei locale:
    sudo hwclock --localtime --adjust

    Activarea afișajului UTC:
    sudo hwclock --utc --adjust

    În versiunile mai vechi de Ubuntu trebuie să editați fișierul rtC:

    sudo nano /etc/default/rcS

    Trebuie să adăugați (pentru a afișa ora locală) sau să eliminați această linie (pentru a afișa ora UTC):

    Setări în Windows

    În Windows, aproape toate setările de sistem sunt editate în registry; TimeZoneInformation, care este necesar în această situație, nu face excepție. Se află în registru la această adresă:

    HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\TimeZoneInformation

    Aici trebuie să adăugați sau să modificați parametrul RealTimeIsUniversal. Tipul său este DWORD. Pentru ca ora sistemului să fie citită în UTC, trebuie să setați valoarea la 1; pentru a o recunoaște ca fiind locală, trebuie să setați valoarea la 0 sau să eliminați complet acest parametru.

    Editorul de registru poate fi lansat folosind comanda regedit.