Linux și Windows în momente diferite. Timp pierdut? Alt motiv…. Soluție folosind Mac OS X

Mulți utilizatori noi care tocmai au trecut la Linux din sistemul de operare Windows și încă mai rulează acest sistem din când în când, se confruntă cu problema că, după încărcarea Windows în Ubuntu, timpul merge înainte sau înapoi cu câteva ore, apoi după mai multe reporniri. este deja greu de înțeles cât este ceasul acum. Toate acestea se întâmplă din cauza diferențelor în formatul de stocare a timpului în aceste sisteme de operare. Și se va întâmpla de fiecare dată când reporniți, indiferent cât de mult ați setat ora corectă. Dar această problemă poate fi rezolvată. Și chiar în mai multe feluri. În acest articol ne vom uita la cum să rezolvăm problema pierderii timpului în Ubuntu și Windows.

CONFIGURARE WINDOWS PENTRU A FUNCȚIONA CU UTC

Deci, dacă întâmpinați probleme de sincronizare Windows și Linux atunci când comutați între sisteme de operare, cel mai bun mod este să forțați Windows să funcționeze într-un format mai corect și mai logic. Pentru a face acest lucru, trebuie doar să adăugați o cheie de registry. Puteți face acest lucru cu o singură comandă în consolă. Pentru a deschide consola în Windows 10, mutați mouse-ul în colțul din stânga jos, apoi faceți clic pe butonul din dreapta. Din meniul contextual, selectați Linie de comandă (administrator):

> Reg add HKLM\SYSTEM\CurrentControlSet\Control\Ti meZoneInformation /v RealTimeIsUniversal /t REG_DWORD /d 1

Și pentru 64 de biți, trebuie să utilizați tipul de valoare REG_QWORD:

> Reg add HKLM\SYSTEM\CurrentControlSet\Control\Ti meZoneInformation /v RealTimeIsUniversal /t REG_QWORD /d 1

Target="_blank">https://losst.ru/wp-content/uploads/2016/10/utc-windows-600x139-300x70.png 300w" width="600" />

Aproape gata, dar serviciul de oră Windows, indiferent de această setare, va scrie ora în format local atunci când o va actualiza prin Internet, deci este convenabil să dezactivați acest serviciu. Pentru a face acest lucru, rulați:

> sc config w32time start= dezactivat

CUM SA REVENI INApoi?

Dacă doriți să readuceți totul la modul în care a fost, atunci acest lucru se poate face cât mai ușor posibil. Mai întâi readucem cheia de registry în poziția corectă:

> Reg add HKLM\SYSTEM\CurrentControlSet\Control\Ti meZoneInformation /v RealTimeIsUniversal /t REG_DWORD /d 0

Și porniți serviciul de sincronizare înapoi:

> sc config w32time start= cerere

CONFIGURARE LINUX PENTRU LOCALTIME

În mod implicit, Linux folosește formatul de oră UTC, dar dacă Ubuntu 16.04 se încurcă cu ora Windows, puteți forța foarte ușor sistemul să stocheze ora locală în cronometrul hardware. Pe toate distribuțiile care folosesc Systemd, inclusiv Ubuntu 16.04, tot ce trebuie să faceți este să rulați comanda:

Sudo timedatectl set-local-rtc 1 --adjust-system-clock

Pentru a vedea starea curentă a ceasurilor hardware și software, rulați:

Sudo timedatectl

Target="_blank">https://losst.ru/wp-content/uploads/2016/10/rtc-localtime-600x242-300x121.jpg 300w" width="600" />

Gata, acum puteți reporni computerul și porni Windows pentru a vă asigura că timpul nu se pierde la repornire. Pe sistemele Ubuntu mai vechi, trebuie să editați fișierul /etc/default/rcS și să înlocuiți UTC=yes cu UTC=no. Puteți face acest lucru cu comanda:

Sudo sed -i "s/UTC=yes/UTC=no/" /etc/default/rcS

CUM SA REVENI INApoi?

Din nou, puteți returna totul așa cum a fost cu o singură comandă:

Sudo timedatectl set-local-rtc 0

Și în distribuțiile mai vechi Ubuntu:

Sudo sed -i "s/UTC=no/UTC=yes/" /etc/default/rcS

CONCLUZII

Asta e tot. Acum, dacă întâmpinați o problemă în Windows 10 - timpul este pierdut pe Ubuntu sau orice altă distribuție Linux, veți ști deja cum să o rezolvați folosind două metode complet de lucru.

Î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ă

    În acest articol, am vorbit despre motivele și soluțiile lor dacă se pierde data și ora de pe computer. Acest articol a tratat probleme comune, indiferent de numărul de sisteme de operare instalate pe laptop și pe unitatea de sistem.

    Astăzi vom vorbi despre problema când ora, și anume ceasul, merge prost cu câteva ore, ca și cum fusul orar s-ar schimba. Această problemă a apărut pentru mine după ce am început să folosesc două sisteme de operare Linux și Windows pe computerul meu în același timp.

    Această problemă se dovedește a nu fi atât de nouă. Pentru a rezolva această problemă, multe probleme au fost scrise pe Internet.

    Esența problemei este dacă ora este greșită.

    Există două sisteme de operare pe PC, și anume Linux și Windows.

    Eu rulez Linux - timpul este normal.

    Am lucrat ceva și am repornit în Windows - ora arată cu câteva ore mai devreme (sau mai târziu, nu îmi amintesc exact).

    Am setat ora, am configurat sincronizarea automată cu Internetul, dar nimic nu a ajutat. Problema nu poate fi rezolvată într-un mod simplu. Am căutat pe internet și se dovedește că problema este că computerul are două tipuri de ceasuri, hardware și software.

    Ceasul hardware funcționează întotdeauna, chiar și atunci când computerul este oprit, există o baterie suplimentară, un acumulator pe placă. Menține trecerea timpului și salvează setările.

    Durata programului, este înregistrată în program când este pornită și apoi luată de acolo.

    Windows și Linux funcționează diferit cu aceste ceasuri, de unde și erorile de sincronizare la repornirea de la un sistem de operare la altul.

    Aici. Ce se scrie despre asta pe alte site-uri despre asta:

    Cum se rezolvă această problemă?

    Faceți ca Windows și Linux să funcționeze la fel cu acest ceas hardware.

    Pe Internet, la subiectul „timpul este pierdut”, este scris că soluția potrivită ar fi ca Windows să funcționeze corect. Linux funcționează corect, potrivit multor oameni.

    Aceasta înseamnă că Windows trebuie făcut să funcționeze ca Linux în timp.

    Procesul de rezolvare a problemei în sine.

    Trebuie să adăugați cheia în registrul sistemului dvs. de operare Windows.

    Există modalități de a adăuga această cheie folosind o comandă, folosind linia de comandă. Vom face totul manual, în ordine. Și ne va fi clar ce am făcut, iar creierul nostru va funcționa puțin.

    Apelați fereastra Execute folosind o comandă rapidă de la tastatură +R. Sau selectați executare din meniu.

    Tastați regedit și faceți clic pe OK.

    Se va deschide Editorul Registrului.

    Accesați filiala de registru de-a lungul căii HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\TimeZoneInformation

    Acolo, în jumătatea stângă a editorului, faceți clic dreapta și faceți clic pe create parameter

    Pentru sistemele DWORD x32 biți

    Pentru sistemele QWORD x64 de biți

    Dați-i numele RealTimeIsUniversal

    Mulți utilizatori noi care tocmai au trecut la Linux din sistemul de operare Windows și încă mai rulează acest sistem din când în când, se confruntă cu problema că, după încărcarea Windows în Ubuntu, timpul merge înainte sau înapoi cu câteva ore, apoi după mai multe reporniri. este deja greu de înțeles cât este ceasul acum.

    Toate acestea se întâmplă din cauza diferențelor în formatul de stocare a timpului în aceste sisteme de operare. Și se va întâmpla de fiecare dată când reporniți, indiferent cât de mult ați setat ora corectă. Dar această problemă poate fi rezolvată. Și chiar în mai multe feluri. În acest articol ne vom uita la cum să rezolvăm problema pierderii timpului în Ubuntu și Windows.

    După cum am spus deja, problema este în diferite formate pentru stocarea și restaurarea timpului. Există două tipuri de ceasuri pe computer. Ceasurile hardware rulează mereu, chiar și atunci când computerul este oprit și ceasul software este încorporat în nucleu. Când computerul este pornit, valoarea ceasului hardware este scrisă în ceasul software și, ulterior, sistemul de operare ia timpul de acolo. Dar Windows și Linux funcționează diferit cu aceste două ceasuri. Există două moduri de a lucra:

    • 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, Kiev, 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.
    • 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, de ce se pierde timpul Ubuntu și Windows? Să presupunem că Windows rulează și, în timp, totul este bine acolo, este salvat în format localtime. Dar când reporniți în Linux, sistemul de operare ia Ora locală și crede că este UTC. Astfel, utilizatorul va lua ora deja corectă și va adăuga la aceasta o corecție pentru fusul orar. Prin urmare, ora nu va mai fi corectă.

    Apoi, ați corectat ora, iar acum ceasul hardware funcționează în UTC. Dar apoi încărcați Windows. Sistemul crede că aceasta este Ora locală și, pentru a seta ora corectă a software-ului, adaugă o corecție de fus orar hardware-ului, de exemplu, în cazul nostru +3. Apoi fiecare utilizator aplică din nou această corecție și timpul este deja oprit, din nou.

    Singura modalitate sigură de a rezolva această problemă este de a face ambele sisteme să funcționeze folosind același format, iar acest lucru nu este deloc dificil. Mai mult, puteți merge în două moduri: fie să faceți Windows să funcționeze în UTC, fie Linux în formatul Localtime, ceea ce nu este în întregime corect, dar destul de posibil. Deci, să trecem la rezolvarea problemei pierderii timpului în Ubuntu.

    Configurarea Windows pentru a funcționa în UTC

    Deci, dacă întâmpinați probleme de sincronizare Windows și Linux atunci când comutați între sisteme de operare, cel mai bun mod este să forțați Windows să funcționeze într-un format mai corect și mai logic. Pentru a face acest lucru, trebuie doar să adăugați o cheie de registry. Puteți face acest lucru cu o singură comandă în consolă. Pentru a deschide consola în Windows 10, mutați mouse-ul în colțul din stânga jos, apoi faceți clic pe butonul din dreapta. Din meniul contextual, selectați Linie de comandă (administrator):

    > Reg add HKLM\SYSTEM\CurrentControlSet\Control\TimeZoneInformation /v RealTimeIsUniversal /t REG_DWORD /d 1

    Și pentru 64 de biți, trebuie să utilizați tipul de valoare REG_QWORD:

    > Reg add HKLM\SYSTEM\CurrentControlSet\Control\TimeZoneInformation /v RealTimeIsUniversal /t REG_QWORD /d 1

    Aproape gata, dar serviciul de oră Windows, indiferent de această setare, va scrie ora în format local atunci când o va actualiza prin Internet, deci este convenabil să dezactivați acest serviciu. Pentru a face acest lucru, rulați:

    > sc config w32time start= dezactivat

    Cum pot să-l recuperez?

    Dacă doriți să readuceți totul la modul în care a fost, atunci acest lucru se poate face cât mai ușor posibil. Mai întâi readucem cheia de registry în poziția corectă:

    > Reg add HKLM\SYSTEM\CurrentControlSet\Control\TimeZoneInformation /v RealTimeIsUniversal /t REG_DWORD /d 0

    Și porniți serviciul de sincronizare înapoi:

    > sc config w32time start= cerere

    Configurarea Linux pentru a rula la ora locală

    În mod implicit, Linux folosește formatul de oră UTC, dar dacă Ubuntu 16.04 se încurcă cu ora Windows, puteți forța foarte ușor sistemul să stocheze ora locală în cronometrul hardware. Pe toate distribuțiile care folosesc Systemd, inclusiv Ubuntu 16.04, tot ce trebuie să faceți este să rulați comanda:

    sudo timedatectl set-local-rtc 1 --adjust-system-clock

    Pentru a vedea starea curentă a ceasurilor hardware și software, rulați:

    sudo timedatectl

    Gata, acum puteți reporni computerul și porni Windows pentru a vă asigura că timpul nu se pierde la repornire. Pe sistemele Ubuntu mai vechi, trebuie să editați fișierul /etc/default/rcS și să înlocuiți UTC=yes cu UTC=no. Puteți face acest lucru cu comanda:

    sudo sed -i "s/UTC=yes/UTC=no/" /etc/default/rcS

    Cum pot să-l recuperez?

    Din nou, puteți returna totul așa cum a fost cu o singură comandă:

    sudo timedatectl set-local-rtc 0

    Și în distribuțiile mai vechi Ubuntu:

    sudo sed -i "s/UTC=no/UTC=yes/" /etc/default/rcS

    concluzii

    Asta e tot. Acum, dacă întâmpinați o problemă în Windows 10 - timpul este pierdut pe Ubuntu sau orice altă distribuție Linux, veți ști deja cum să o rezolvați folosind două metode complet de lucru. Dacă aveți întrebări, întrebați în comentarii!
    Ne-am dat seama cum să setăm ora corectă în Ubuntu și Windows, astfel încât fusurile orare să nu fie confundate, dar care sunt fusurile orare și de ce sunt necesare? Să terminăm videoclipul despre asta:

    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