Skirtingi laikai windows ir ubuntu. Laikas prarastas naudojant Ubuntu ir Windows

Kartais taip nutinka diegiant antrą sistemą Linux, laikas sistemose pradeda klysti, pavyzdžiui, dirbote pagal savo Linux ir nusprendė persikelti į langai, ir nustatėme, kad laikas ir data yra visiškai neteisingi, arba atvirkščiai, taip yra dėl laiko formato skirtumų, šios operacinės sistemos su juo veikia skirtingai, šiek tiek teorijos ir taip, pradėkime nuo Linux, šios operacinės sistemos veikia su UTC
UTC- tiek techninės, tiek programinės įrangos laikrodžiai yra pagrįsti Grinvičo laiku. Tai yra, laikrodis duoda visuotinį laiką nulinėje laiko juostoje. Pavyzdžiui, jei jūsų laiko juosta yra GMT+3, Maskva, laikrodis atsiliks trimis valandomis. Ir vartotojai vietoje šio laiko prideda laiko juostos pataisymą, pavyzdžiui, plius +3. Kiekvienas vartotojas prideda jam reikalingą pataisą. Tai atliekama serveriuose, kad kiekvienas vartotojas galėtų gauti tinkamą laiką pagal savo laiko juostą.
langai savo ruožtu dirba su vietinis laikas
vietinis laikas- šioje versijoje programinės įrangos laikrodis taip pat veikia pagal Grinvičo laiką, tačiau aparatinės įrangos laikrodis veikia pagal vietinės laiko juostos laiką. Naudotojui nėra jokio skirtumo; vis tiek turite pakoreguoti savo laiko juostą. Tačiau įkeliant ir sinchronizuojant laiką „Windows“ iš aparatinės įrangos laiko atima 3 valandas (arba kitą laiko juostos koregavimą), kad programinės įrangos laikas būtų teisingas.
Taigi, atrodo, sutvarkėme teoriją, dabar pereikime prie praktikos, taigi, pradžioje apkrausime savo langai, paleiskite konsolę kaip administratorių ir vykdykite komandas 32 bitų sistemai
Reg pridėti HKLM\SYSTEM\CurrentControlSet\Control\TimeZoneInformation /v RealTimeIsUniversal /t REG_DWORD /d 1
arba 64 bitams
Reg pridėti HKLM\SYSTEM\CurrentControlSet\Control\TimeZoneInformation /v RealTimeIsUniversal /t REG_QWORD /d 1
bet laikrodis vis tiek bus sinchronizuojamas su serverio laiku; norėdami tai padaryti, išjunkite laikrodžio sinchronizavimo paslaugą
sc config w32time start= išjungta
Dabar iš naujo paleidžiame sistemą ir paleidžiame Linux prisijunkite prie terminalo žemiau šaknis ir vykdyti komandas
timedatectl set-local-rtc 1 --adjust-system-clock
Ir
sed -i "s/UTC=yes/UTC=no/" /etc/default/rcS
pažiūrėkite į aparatinės įrangos laikrodžio būseną
sudo timedatectl
Dabar vėl paleidžiame iš naujo, įvedame BIOS ir nustatome datą bei laiką, patikriname...
jei dėl kokių nors priežasčių mums reikia visa tai išjungti, tada vykdome komandas Linux
timedatectl set-local-rtc 0
Ir
sed -i "s/UTC=no/UTC=yes/" /etc/default/rcS
Windows, konsolėje kaip administratorius
Reg pridėti HKLM\SYSTEM\CurrentControlSet\Control\TimeZoneInformation /v RealTimeIsUniversal /t REG_DWORD /d 0
Ir
sc config w32time start = paklausa
Kitas variantas būtų toks, „Linux Debian“ ir išvestinėse versijose
paleiskite komandą vietiniam laikui nustatyti
sudo hwclock --localtime --adjust
jei norime grąžinti atgal
sudo hwclock --utc --adjust
dabar patikrinkime
timedatectl | grep vietinis
jei atsakymas
RTC vietiniame TZ: ne
tada mūsų laikas tiksi pagal Grinvičą, bet jei atsakymas
RTC vietiniame TZ: taip
tai reiškia, kad mūsų laikas tiksi pagal nustatytą sistemą
tai viskas, manau, jums tai buvo naudinga

UEFI režimu (saugi įkrova). Mano BIOS laikas yra teisingas.

Kai paleidžiu Ubuntu, o paskui įkeliu į Windows 10, rodomas netinkamas laikas. Turiu taisyti rankiniu būdu arba internetu sistemoje „Windows 10“, o iš naujo paleidus į „Windows 10“ tai nėra problema. Laikrodis rodo teisingą laiką. Ir tada, kai perkraunu į Linux, laikrodis yra teisingas, bet grįžus į Windows 10 laikrodis vėl pradeda veikti.

Operacinės sistemos laiko ir nuskaito laiką pagrindinėje plokštėje esančiame aparatūros laikrodyje, kad galėtų sekti laiką net tada, kai sistema neįjungta. Dauguma operacinių sistemų („Linux“ / „Unix“ / „Mac“) pagal numatytuosius nustatymus išsaugo aparatinės įrangos laikrodį kaip UTC, nors kai kurios sistemos (ypač „Microsoft Windows“) išsaugo laiką aparatinės įrangos laikrodyje kaip „vietinį“ laiką. Dėl to kyla problemų dvigubos įkrovos sistemoje, jei abi sistemos skirtingai traktuoja aparatūros laikrodį.

Aparatinės įrangos laikrodžio kaip UTC naudojimo pranašumas yra tas, kad jums nereikia keisti aparatinės įrangos laikrodžio, kai judate tarp laiko juostų arba kai prasideda arba baigiasi vasaros laikas (DST), nes UTC neturi laiko ar laiko poslinkių.

Pakeisti „Linux“ naudoti vietinį laiką yra lengviau ir patikimiau nei pakeisti „Windows“ į UTC, todėl dvigubos įkrovos „Linux“ / „Windows“ sistemos paprastai naudoja vietinį laiką.

Kadangi Intrepid (8.10), UTC = taip yra numatytasis.

Priverskite Windows naudoti UTC

Pastaba. Šis metodas iš pradžių nebuvo palaikomas „Windows Vista“ ir „Server 2008“, bet grąžintas su „Vista SP2“, „Windows 7“, „Server 2008 R2“ ir „Windows 8/8.1“.

Kad MS Windows skaičiuotų laiką pagal aparatūros laikrodį UTC formatu.

Sukurkite failą pavadinimu WindowsTimeFixUTC.reg su šiuo turiniu, tada dukart spustelėkite jį, kad sujungtumėte turinį į registrą:

„Windows“ registro rengyklės versija 5.00 „RealTimeIsUniversal“=dword:00000001

Pastaba. „Windows Time“ paslauga vis tiek įrašys vietinį laiką į RTC, nepaisant anksčiau pateikto registro nustatymo, kai išjungta, todėl patogu išjungti „Windows“ laiko paslaugą naudojant šią komandą (jei reikia sinchronizuoti laiką, kai „Windows“ naudoja trečiosios šalies laiko sinchronizavimą ):

Sc config w32time start= išjungta

Atšaukti pakeitimą

Galite sukurti failą su šiuo turiniu ir dukart spustelėti jį, kad sujungtumėte pirminius pakeitimus, kaip nurodyta aukščiau:

„Windows“ registro rengyklės versija 5.00 „RealTimeIsUniversal“=-

Jei „Windows“ laiko paslauga buvo išjungta, įjunkite ją dar kartą naudodami komandą:

Sc config w32time start = paklausa

Padarykite „Linux“ „vietiniu“ laiku

Norėdami pranešti savo Ubuntu sistemai, kad aparatinės įrangos laikrodis nustatytas pagal „vietinį“ laiką:

  1. pakeisti /etc/default/rcS
  2. pridėti arba pakeisti kitą skyrių

    # Nustatyti UTC=taip, jei aparatinės įrangos laikrodis nustatytas į UTC (GMT) UTC=ne

Ubuntu 15.04 ir naujesnės sistemos (pvz., Ubuntu 16.04 LTS):

    atidarykite terminalą ir paleiskite šią komandą

    Jei norite mūsų svetainėje pamatyti atsakymus į savo klausimus apie viską, kas susiję su Apple technologija, Mac OS X operacine sistema (ir jos paleidimu asmeniniame kompiuteryje), rašykite mums per arba.

    Gavome tokį klausimą:

    Laba diena!
    „Hackintosh“ veikia „Snow Leopard“, „Windows 7“ ir „Ubuntu“. Laikas nuolat prarandamas po paleidimo iš naujo ((Mac OS visada atstato jį 4–5 val.! Pasakykite man, kaip išspręsti problemą

    Problema su laiko sinchronizavimas yra aktualus ne tik Hackintoshes, bet ir tikriems Mac kompiuteriams, kuriuose Windows veikia per Boot Camp. Priežastis labai paprasta: „Mac OS X“ visada daro prielaidą, kad BIOS (arba EFI) įrašytas laikas ten įrašytas tokiu formatu UTC– kitaip tariant, pagal Grinvičą. Prie jos ji prideda atitinkamą laiko juostos pataisą.

    Tačiau „Windows“ viską daro kitaip: tai skaito tiesiogiai laikas nuo BIOS. Ir jei pakeisite šį laiką, arba jis automatiškai sinchronizuojamas, tada jis bus įrašytas į BIOS pataisytu formatu: UTC+korekcija.

    Kaip išspręsti šį prieštaravimą? Yra du būdai: vienas iš Mac OS pusės, kitas iš Windows ir Linux pusės.

    Sprendimas naudojant Mac OS X

    Iš karto pasakykime, kad tai nėra pats geriausias būdas. Esmė ta, kad „Mac OS X“ laiko juostą nustatėme į Grinvičo laiką. Pavyzdžiui, nustatymuose (nuotolinis data ir laikas, skirtukas Laiko zona) pasirinkite kaip savo vietovę Reikjavikas.

    Be to, skirtuke "Data ir laikas" Būtinai išjunkite automatinį laiko sinchronizavimą, kitaip jis pasirodys dar blogesnis nei anksčiau.

    Atlikus šiuos veiksmus, „Windows“ laikas visada bus teisingas, o „Mac OS X“ jo nesugadins. Bet kodėl tai nėra geriausias būdas? Faktas yra tas, kad jei sinchronizuojate kokią nors programėlę su „Mac OS X“, pavyzdžiui, „iPhone“, netinkama laiko juosta iškraipys daug svarbių duomenų. Pavyzdžiui, įeinančių SMS laikas taip pat bus Grinvičas.

    Sprendimas naudojant Windows ir Linux

    Kitas būdas – „Windows“ ir „Linux“ nuskaityti laiką iš BIOS taip pat, kaip tai daro „Mac OS“. Laimei, tokia galimybė tikrai yra suteikta, tačiau ji slepiama labai giliai.

    „Windows“ sistemoje turėsite paleisti programą iš lango Vykdyti regeditRegistro redaktorius. Tada eikite į giją \HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\TimeZoneInformation ir sukurkite DWORD reikšmę su pavadinimu RealTimeIsUniversal ir vertė lygi vienetui:

    „Linux“ (bent jau „Ubuntu“) turite redaguoti failą /etc/default/rcS bet kuriame teksto rengyklėje ir pakeiskite parametro turinį "UTC=ne"įjungta "UTC = taip".

    Po to iš naujo paleiskite „Mac OS X“ ir nustatykite vietinę laiko juostą, tuo pačiu metu galėsite įjungti automatinį laiko sinchronizavimą internetu. Iš naujo paleidę „Windows“ ir „Ubuntu“ pamatysite lygiai tą patį laiką.

    Naudojant kelias operacines sistemas tame pačiame kompiuteryje, jos kartais konfliktuoja, kai naudoja tą patį dalyką. Kartais tai susiję su tokiu paprastu dalyku kaip laikas. Net tokios populiarios kompiuterių operacinės sistemos kaip Windows ir Ubuntu negali susitvarkyti ir nuolat keisti viena kitos laiką į netinkamą.

    Šio reiškinio priežastys iš tikrųjų yra paprastos: „Windows“ sistemos laiką (kuris rodomas CMOS nustatymuose) suvokia kaip vietinį (atsižvelgiant į laiko juostą), o „Ubuntu“ - pagal UTC (Grinvičo laikas, neatsižvelgiant į laiko zona). Dėl šios priežasties jie koreguoja sistemos laiką, kad atitiktų jų logiką, pažeisdami vienas kito logiką.

    Problemos sprendimas taip pat paprastas: arba priversti Windows pridėti laiko juostos poslinkį prie sistemos laiko, arba neleisti Ubuntu pridėti šio poslinkio.

    Ubuntu nustatymai

    Nuo 16.04 versijos laiko rodymo nustatymus galima perjungti naudojant dvi komandas.

    Vietinio laiko rodymo įjungimas:
    sudo hwclock --localtime --adjust

    UTC rodymo įjungimas:
    sudo hwclock --utc --adjust

    Senesnėse Ubuntu versijose reikia redaguoti rtC failą:

    sudo nano /etc/default/rcS

    Turite pridėti (kad būtų rodomas vietinis laikas) arba pašalinkite šią eilutę (kad būtų rodomas UTC laikas):

    „Windows“ nustatymai

    „Windows“ sistemoje beveik visi sistemos nustatymai yra redaguojami registre; „TimeZoneInformation“, kuri yra būtina šioje situacijoje, nėra išimtis. Jis yra registre šiuo adresu:

    HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\TimeZoneInformation

    Čia reikia pridėti arba pakeisti parametrą RealTimeIsUniversal. Jo tipas yra DWORD. Kad sistemos laikas būtų skaitomas UTC, turite nustatyti reikšmę į 1; norėdami atpažinti ją kaip vietinę, turite nustatyti reikšmę į 0 arba visiškai pašalinti šį parametrą.

    Registro rengyklę galima paleisti naudojant komandą regedit.