Zegar na moim komputerze Mac zmienia się po uruchomieniu systemu Windows

17

Korzystam z komputera iMac z systemem OS X Leopard i kandydatem do wydania wersji Windows 7 (za pomocą bootcamp). Czasami po uruchomieniu systemu Windows, a następnie ponownym uruchomieniu systemu OSX, okazuje się, że system Windows zmienił zegar systemu, aby używał niepoprawnego czasu. Miałem ten problem również podczas używania Vista z bootcamp.

Jak temu zapobiec?

Brian Willis
źródło

Odpowiedzi:

17

Edycja: Po kilku dniach korzystania z metody, którą pierwotnie opublikowałem, odkryłem, że RealTimeIsUniversalflaga, jako nie zachowana pozostałość po Windows NT, jest w rzeczywistości dość niestabilna i ogólnie niepraktyczna. Co jakiś czas, w pozornie przypadkowych odstępach czasu, zegar Windows wracał z czasu UTC do czasu lokalnego, co było bardzo denerwujące (i powodowało kilka zatwierdzeń git, które wyglądają, jakby były z przyszłości w dzienniku zatwierdzeń). To sprawiło, że szukałem kolejnej poprawki…

Zasadniczo problem polega na tym, że, jak wspomniał John Fouhy w komentarzu, system Windows utrzymuje zegar w czasie lokalnym, podczas gdy OS X utrzymuje zegar w UTC (używając określonej strefy czasowej jako modyfikatora, aby podać prawidłowy czas). Aby to naprawić, jeden z systemów operacyjnych będzie musiał pochylić się do tyłu i śledzić czas przy użyciu metody drugiego systemu.

Teraz najbardziej niezawodną metodą, jaką znalazłem do tej pory, aby rozwiązać ten problem, jest po prostu przełączenie zegara OS X na czas lokalny z czasu UTC przy każdym wyłączeniu, a następnie przełączenie go z powrotem przy każdym uruchomieniu. Dokładną metodę tego można znaleźć na wiki projektu OSx86 , co ciekawe. (Mała uwaga: jest kilka rzeczy, które wydają się być specyficzne dla OSx86, a mianowicie plist LaunchDaemon do instrukcji Leoparda. Jednak wypróbowałem dosłownie metodę Leoparda na moim MacBooku Pro i działa dobrze. Innymi słowy, po prostu postępuj zgodnie ze wskazówkami dokładnie tak, jak napisano, i nie przejmuj się odniesieniami do OSx86 w plikach - nie mają one znaczenia).

Oto stare rozwiązanie, jeśli chcesz je wypróbować. Ostrzegam: nigdy nie zostało to zaktualizowane, aby działało poprawnie z nowszymi wersjami systemu Windows, więc jest to bardzo zawodne, ponieważ dowiedziałem się na własnej skórze…

Innym sposobem synchronizacji zegarów jest wymuszenie na systemie Windows korzystania z UTC przez hack rejestru (sztuczkę, którą znalazłem w Mac OS X Hints ):

  1. Uruchom RegEdit ( Start -> Uruchom ... , wpisz regedit)
  2. Przejdź do „ HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\TimeZoneInformation”.
  3. Z menu Edycja wybierz Nowy -> Wartość DWORD .
  4. Nazwij tę wartość „ RealTimeIsUniversal”.
  5. Kliknij dwukrotnie RealTimeIsUniversali wprowadź 1dane wartości.

Przy następnym uruchomieniu systemu Windows zegar powinien być zgodny z zegarem systemu Mac OS X, a strefa czasowa systemu Windows może być zgodna ze strefą czasową ustawioną w systemie Mac OS X.

Grubaski
źródło
Wow, świetna wskazówka dla sytuacji podwójnego rozruchu!
Greg Hewgill
Używam hacka rejestru pod Windows 7 od kilku tygodni. Jak na razie dobrze. Nawet zmienił się prawidłowo podczas przełączania z czasu letniego.
kdmurray
3

Sprawdź ustawienia synchronizacji zegara w systemie Windows. Może to być regulacja zegara za pomocą źródła internetowego i zmiana zegara.

JP Alioto
źródło
Miałem ten problem - OS X był ustawiony na GMT + 1 i zapomniałem, że Windows wciąż jest ustawiony na GMT + 9.5 ..
dbr
0

Sprawdź, czy używasz tej samej strefy czasowej w obu systemach operacyjnych. Jeśli ktoś ma inną strefę czasową, może zmienić zegar systemowy, aby pokazywał swoją strefę czasową, która byłaby inna niż czas drugiego systemu operacyjnego.

Dan Walker
źródło
2
Komputery Mac (takie jak Linux / Unix) utrzymują zegar systemowy na UTC i stosują strefę czasową jako modyfikator wyświetlania. System Windows utrzymuje zegar systemowy w czasie lokalnym. Dlatego jeśli system Windows zda sobie sprawę, że jego zegar jest „zły”, naprawi go. Dlatego jednym z obejść byłoby celowe ustawienie strefy czasowej systemu Windows na UTC.
John Fouhy,
0

Mam skrypt logowania po stronie Maca - w moim przypadku Leopard - to prosty skrypt powłoki, który ustawia zegar przez Internet:

#!/bin/sh
ntpdate -uvs time.apple.com
exit 0

Kiedy więc uruchamiasz system Windows, wysyła zegar o 5 godzin do przodu, jeśli jesteś na wschodnim wybrzeżu, a po ponownym uruchomieniu systemu Mac OS X ustawia zegar z powrotem na UTC.

Twoje zdrowie...

Jim Ferr


źródło
Jak ustawić automatyczne uruchamianie przy logowaniu?
Brian Willis