Windows ve ubuntu için farklı zamanlar. Ubuntu ve Windows'ta zaman kaybedildi

İkinci bir sistem kurarken bazen bu olur, bu genellikle olur Linux, sistemlerdeki zaman yanlış gitmeye başlar; örneğin, kendi emrinizde çalışıyordunuz. Linux ve taşınmaya karar verdim pencereler, ve saat ve tarihin tamamen yanlış olduğunu veya bunun tam tersinin zaman formatındaki farklılıklardan kaynaklandığını tespit ettim, bu işletim sistemleri bununla farklı çalışıyor, küçük bir teori, o halde başlayalım Linux, bu işletim sistemleri UTC ile çalışır
UTC- hem donanım hem de yazılım saatleri Greenwich Ortalama Saatine dayanmaktadır. Yani saat, sıfır zaman diliminde evrensel zamanı verir. Örneğin, saat diliminiz GMT+3, Moskova ise saat üç saat geride olacaktır. Ve kullanıcılar bu zamana yerel olarak saat dilimi için bir düzeltme ekler (örneğin artı +3). Her kullanıcı ihtiyaç duyduğu değişikliği ekler. Bu, her kullanıcının kendi saat dilimine göre doğru saati alabilmesi için sunucularda yapılır.
pencereler sırayla birlikte çalışır Yerel zaman
Yerel zaman- bu versiyonda yazılım saati de Greenwich Ortalama Saatine göre çalışır, ancak donanım saati yerel saat diliminin saatine göre çalışır. Kullanıcı açısından hiçbir fark yoktur; yine de saat diliminize bir ayarlama eklemeniz gerekir. Ancak saati yüklerken ve senkronize ederken Windows, yazılım saatinin doğru olması için donanım saatinden 3 saat (veya başka bir saat dilimi ayarlaması) çıkarır.
yani teoriyi çözmüş gibiyiz, şimdi pratiğe geçelim ve böylece başlangıçta pencereler, konsolu yönetici olarak başlatın ve 32 bit sistem için komutları yürütün
Kayıt ekle HKLM\SYSTEM\CurrentControlSet\Control\TimeZoneInformation /v RealTimeIsUniversal /t REG_DWORD /d 1
veya 64 bit için
Kayıt ekle HKLM\SYSTEM\CurrentControlSet\Control\TimeZoneInformation /v RealTimeIsUniversal /t REG_QWORD /d 1
ancak saat yine de sunucu saatiyle senkronize olacaktır; bunu yapmak için saat senkronizasyon hizmetini kapatın
sc config w32time start=devre dışı
Şimdi sistemimizi yeniden başlatıyoruz ve başlatıyoruz Linux altındaki terminale giriş yapın kök ve komutları yürütün
timedatectl set-local-rtc 1 --ayar-sistem saati
Ve
sed -i "s/UTC=evet/UTC=hayır/" /etc/default/rcS
donanım saatinin durumuna bakın
sudo timedatectl
Şimdi yeniden başlatıyoruz, bios'a girip tarih ve saati ayarlıyoruz, kontrol ediyoruz...
herhangi bir nedenle tüm bunları devre dışı bırakmamız gerekirse, komutları Linux'ta yürütürüz
timedatectl set-yerel-rtc 0
Ve
sed -i "s/UTC=hayır/UTC=evet/" /etc/default/rcS
Windows'ta yönetici olarak konsol
Kayıt ekle HKLM\SYSTEM\CurrentControlSet\Control\TimeZoneInformation /v RealTimeIsUniversal /t REG_DWORD /d 0
Ve
sc config w32time start=talep
Başka bir seçenek de linux debian ve türevlerinde aşağıdaki olabilir
yerel saati ayarlamak için komutu çalıştırın
sudo hwclock --localtime --adjust
eğer onu geri döndürmek istersek
sudo hwclock --utc --adjust
şimdi kontrol edelim
timedatectl | yerel grep
cevap ise
Yerel TZ'de RTC: hayır
o zaman zamanımız Greenwich'e göre işliyor, ama eğer cevap
Yerel TZ'de RTC: evet
yani zamanımız kurulan sisteme göre geçiyor
hepsi bu, sanırım işinize yaradı

UEFI modunda (Güvenli Önyükleme). BIOS zamanım doğru.

Ubuntu'ya ve ardından Windows 10'a önyükleme yaptığımda yanlış zamanı gösteriyor. Windows 10'da manuel veya çevrimiçi olarak düzeltmem gerekiyor ve Windows 10'u yeniden başlattığımda sorun olmuyor. Saat doğru zamanı gösteriyor. Ve sonra Linux'u yeniden başlattığımda saat doğru, ancak Windows 10'a döndüğümde saat yeniden çalışmaya başlıyor.

İşletim sistemleri, sisteme güç verilmediğinde bile zamanı takip etmek için zamanı anakartınızda bulunan bir donanım saatinde saklar ve alır. Çoğu işletim sistemi (Linux/Unix/Mac) donanım saatindeki saati varsayılan olarak UTC olarak saklar, ancak bazı sistemler (özellikle Microsoft Windows) donanım saatindeki saati "yerel" saat olarak kaydeder. Bu, her iki sistemin de donanım saatini farklı işlemesi durumunda ikili önyükleme sisteminde sorunlara neden olur.

Donanım saatini UTC olarak kullanmanın avantajı, UTC'nin zaman veya saat farkları olmadığından, saat dilimleri arasında geçiş yaparken veya Yaz Saati Uygulaması (DST) başladığında veya bittiğinde donanım saatini değiştirmenize gerek olmamasıdır.

Linux'u yerel saati kullanacak şekilde değiştirmek, Windows'u UTC kullanacak şekilde değiştirmekten daha kolay ve daha güvenilirdir, bu nedenle çift önyüklemeli Linux/Windows sistemleri genellikle yerel saati kullanır.

Intrepid'den (8.10) beri UTC = evet varsayılandır.

Windows'un UTC kullanmasını sağlayın

Not. Bu yöntem başlangıçta Windows Vista ve Server 2008'de desteklenmiyordu ancak Vista SP2, Windows 7, Server 2008 R2 ve Windows 8/8.1 ile geri döndü.

Böylece MS Windows, zamanı donanım saatinden UTC formatında hesaplar.

Aşağıdaki içeriğe sahip WindowsTimeFixUTC.reg adlı bir dosya oluşturun ve ardından içeriği kayıt defteriyle birleştirmek için bu dosyaya çift tıklayın:

Windows Kayıt Defteri Düzenleyicisi Sürüm 5.00 "RealTimeIsUniversal"=dword:00000001

Not. Windows Saati hizmeti, kapatıldığında yukarıdaki kayıt defteri ayarından bağımsız olarak RTC'deki yerel saati kaydetmeye devam edecektir; bu nedenle, bu komutu kullanarak Windows Saati hizmetini devre dışı bırakmak uygundur (Windows bazı üçüncü taraf saat senkronizasyonunu kullanırken zaman senkronizasyonu gerekiyorsa) ):

Sc config w32time start= devre dışı

Değişikliği iptal et

Aşağıdaki içeriğe sahip bir dosya oluşturabilir ve ardından yukarıdaki gibi orijinal değişiklikleri birleştirmek için bu dosyaya çift tıklayabilirsiniz:

Windows Kayıt Defteri Düzenleyicisi Sürüm 5.00 "RealTimeIsUniversal"=-

Windows Saati hizmeti devre dışı bırakıldıysa şu komutu kullanarak hizmeti yeniden etkinleştirin:

Sc config w32time start=talep

Linux'u "yerel" saat yap

Ubuntu sisteminize donanım saatinin "yerel" saate ayarlandığını söylemek için:

  1. /etc/default/rcS'yi değiştir
  2. aşağıdaki bölümü ekleyin veya değiştirin

    # Donanım saatiniz UTC (GMT) olarak ayarlanmışsa UTC=evet'i ayarlayın UTC=hayır

Ubuntu 15.04 ve üzeri sistemler (örn. Ubuntu 16.04 LTS):

    bir terminal açın ve aşağıdaki komutu çalıştırın

    Web sitemizde Apple teknolojisi, Mac OS X işletim sistemi (ve PC'de başlatılması) ile ilgili her şey hakkındaki sorularınızın yanıtlarını görmek istiyorsanız, bize veya aracılığıyla yazın.

    Şu soruyu aldık:

    tünaydın!
    Hackintosh, Snow Leopard, Windows 7 ve Ubuntu'yu çalıştırıyor. Yeniden başlatmanın ardından zaman sürekli kayboluyor ((Mac OS her zaman 4-5 saat geriye ayarlar! Sorunu nasıl çözeceğimi söyle)

    ile ilgili bir sorun zaman senkronizasyonu yalnızca Hackintosh'lar için değil aynı zamanda Windows'un Boot Camp aracılığıyla çalıştığı gerçek Mac'ler için de geçerlidir. Bunun nedeni çok basit: Mac OS X her zaman BIOS'ta (veya EFI'de) kaydedilen saatin orada şu formatta yazıldığını varsayar: UTC- başka bir deyişle Greenwich'e göre. Buna saat dilimi için uygun düzeltmeyi ekler.

    Ancak Windows işleri farklı şekilde yapıyor: doğrudan okur BIOS'tan zaman. Ve bu zamanı değiştirirseniz veya otomatik olarak senkronize edilirse, BIOS'a düzeltilmiş formatta kaydedilecektir: UTC+düzeltme.

    Bu çelişki nasıl çözülür? İki yaklaşım var: Biri Mac OS tarafından, diğeri Windows ve Linux tarafından.

    Mac OS X kullanarak çözüm

    Hemen bunun en iyi yol olmadığını söyleyelim. Sonuç olarak Mac OS X için saat dilimini Greenwich Ortalama Saati'ne ayarladık. Örneğin, ayarlarda (uzaktan kumanda) tarih ve saat, sekme Saat dilimi) bulunduğunuz yer olarak seçin Reykjavík.

    Ayrıca sekmede "Tarih ve saat" Otomatik zaman senkronizasyonunu devre dışı bıraktığınızdan emin olun, aksi takdirde durum eskisinden daha da kötü olacaktır.

    Bu adımlardan sonra Windows'taki saat her zaman doğru olacak ve Mac OS X bunu bozmayacaktır. Ama neden bu en iyi yol değil? Gerçek şu ki, bazı gadget'ları Mac OS X ile (örneğin bir iPhone) senkronize ederseniz, yanlış saat dilimi birçok önemli veriyi bozacaktır. Örneğin gelen SMS'in saati de Greenwich olacaktır.

    Windows ve Linux kullanarak çözüm

    Başka bir yol da Windows ve Linux'un, Mac OS'un yaptığı gibi BIOS'tan saati okumasını sağlamaktır. Neyse ki böyle bir fırsat gerçekten sağlanıyor ama çok derinlerde gizleniyor.

    Windows'ta programı Çalıştır penceresinden çalıştırmanız gerekecektir. regeditKayıt düzenleyici. Daha sonra konuya gidin \HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\TimeZoneInformation ve orada adı taşıyan bir DWORD değeri oluşturun Gerçek ZamanEvrenseldir ve bire eşit bir değer:

    Linux'ta (en azından Ubuntu'da), dosyayı düzenlemeniz gerekir /etc/default/rcS herhangi bir metin düzenleyicide parametrenin içeriğini değiştirin "UTC=hayır" Açık "UTC=evet".

    Bundan sonra Mac OS X'i yeniden başlatın ve yerel saat diliminizi ayarlayın; aynı zamanda İnternet üzerinden otomatik saat senkronizasyonunu da etkinleştirebilirsiniz. Windows ve Ubuntu'da yeniden başlattıktan sonra tam olarak aynı saati göreceksiniz.

    Aynı bilgisayarda birden fazla işletim sisteminin kullanılması bazen aynı şeyi kullanırken birbirleriyle çakışmalarına neden olur. Bazen zaman kadar basit bir şeyle ilgilidir. Windows ve Ubuntu gibi popüler PC işletim sistemleri bile anlaşamıyor ve birbirlerinin zamanını sürekli olarak yanlış olana değiştiremiyor.

    Bu olgunun nedenleri aslında basittir: Windows, sistem saatini (CMOS ayarlarında görüntülenen) yerel olarak (saat dilimini dikkate alarak) ve Ubuntu'yu - UTC'ye göre (Greenwich Ortalama Saati, saat dilimini hesaba katmadan) algılar. saat dilimi). Bu nedenle birbirlerinin mantığını ihlal ederek sistem zamanını kendi mantıklarına göre ayarlarlar.

    Sorunun çözümü de basit: ya Windows'u sistem zamanına bir saat dilimi farkı eklemeye zorlayın ya da Ubuntu'nun bu farkı eklemesini engelleyin.

    Ubuntu'daki ayarlar

    16.04 sürümünden itibaren zaman ekranı ayarları iki komut kullanılarak değiştirilebilir.

    Yerel saat gösteriminin etkinleştirilmesi:
    sudo hwclock --localtime --adjust

    UTC gösterimini etkinleştirme:
    sudo hwclock --utc --adjust

    Ubuntu'nun eski sürümlerinde rtC dosyasını düzenlemeniz gerekir:

    sudo nano /etc/default/rcS

    Bu satırı eklemeniz (yerel saati görüntülemek için) veya kaldırmanız (UTC saatini görüntülemek için) gerekir:

    Windows'taki ayarlar

    Windows'ta neredeyse tüm sistem ayarları kayıt defterinde düzenlenir; bu durumda gerekli olan TimeZoneInformation bir istisna değildir. Kayıt defterinde şu adreste bulunur:

    HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\TimeZoneInformation

    Burada RealTimeIsUniversal parametresini eklemeniz veya değiştirmeniz gerekir. Türü DWORD'dur. Sistem saatinin UTC olarak okunabilmesi için değeri 1 olarak ayarlamanız, local olarak tanıması için ise değeri 0 olarak ayarlamanız veya bu parametreyi tamamen kaldırmanız gerekmektedir.

    Kayıt Defteri Düzenleyicisi regedit komutu kullanılarak başlatılabilir.