Odkąd zacząłem używać Linuksa w trybie podwójnego rozruchu w systemie Windows, zauważyłem, że kiedy ponownie uruchomiłem komputer, czas w innym systemie operacyjnym był zły, np. W Linuksie była godzina 12:00, następnie zrestartowałem się, aw systemie Windows 18:00, i kiedy sprawdziłem BIOS, RTC ustawiono na 18:00. Ponieważ moja strefa czasowa to -06: 00 CST, zakładam, że Linux po prostu ustawia czas RTC na UTC i ponownie oblicza czas na podstawie strefy czasowej, podczas gdy Windows po prostu ustawia RTC na czas lokalny. Oba używają tego samego serwera NTP do synchronizacji czasu.
Pytanie brzmi: kto robi właściwą rzecz? W którym z nich należy ustawić ustawienie strefy czasowej na UTC, aby mieć odpowiedni czas w obu przypadkach?
Odpowiedzi:
Żadne nie jest złe, ale korzystanie z UTC jest bardziej właściwe. RTC nie ma strefy czasowej; to tylko głupi zegar ścienny. Jeśli Twoja lokalna strefa czasowa uwzględnia DST (których jest wiele smaków, a zasady zmieniają się arbitralnie), to dwa razy w roku musisz je zmienić. System operacyjny zrobi to za Ciebie, ale jeśli RTC to UTC, system operacyjny i tak dokonuje tłumaczenia lokalnego UTC-> po co majstrować przy zegarze? Co więcej, podczas przejścia „cofania się” DST, RTC nie może powiedzieć, która jest godzina! Czy jest 1:30 CDT lub CST?
Najwyraźniej Windows 8 obsługuje UTC dla RTC. Windows 7 również, ale były problemy .
Był lepszy argument przeciwko temu, gdy ludzie ustawiali zegary BIOS ręcznie, ale czas na serwerze jest teraz znacznie bardziej powszechny.
źródło
Niedawno napotkałem ten sam problem i tak go naprawiłem. Musisz dokonać niewielkiej zmiany w obu systemach operacyjnych.
Najpierw zacząłem od Linuksa. Uruchom następujące polecenia jako root.
Spowoduje to zaktualizowanie Twojego czasu, jeśli nie zostanie poprawnie ustawiony.
Teraz za pomocą tego polecenia ustaw zegar sprzętowy na UTC.
Źródło
Teraz uruchom system Windows i dodaj następujący rejestr. Wystarczy utworzyć plik .reg, używając poniższego kodu w Notatniku. Zapisz i uruchom.
Źródło
Od następnego rozruchu oba systemy pokażą ci właściwy czas.
źródło
Normalnym przypadkiem jest to, że systemy Linux mają RTC (zegar czasu rzeczywistego) ustawiony na UTC, a konwersja na czas lokalny odbywa się w przestrzeni użytkownika na podstawie danych strefy czasowej i
TZ
zmiennej środowiskowej. Jest to „mniej złe”, ponieważ utrzymuje monotoniczny wzrost systemu RTC i stosuje później każdą magię strefy czasowej, zapewniając na przykład, że żadne pliki zwykle nie będą miały znacznika czasu w przyszłości (co może się zdarzyć co najmniej raz w roku, jeśli system RTC jest ustawiony na czas lokalny). Jak zauważył Ken , sama RTC nie ma pojęcia strefy czasowej, tylko czas.Jak zauważyłeś, powoduje to problemy podczas podwójnego uruchamiania z systemem, który normalnie nie działa w ten sposób, jak rodzina systemów operacyjnych Microsoft, które zazwyczaj oczekują ustawienia RTC na czas lokalny . Tak, Windows NT (tak naprawdę myślę, że wracam do NT 4) może współpracować z RTC ustawionym na UTC, ale przynajmniej na koniec wyglądałem, że to nie jest obsługiwana konfiguracja i było wiele zastrzeżeń.
Prostym rozwiązaniem w twoim przypadku jest prawdopodobnie ustawienie RTC na czas lokalny, powiedz systemowi Linux, że RTC jest ustawiony na czas lokalny (dokładna mechanika robienia tego zależy od wersji dystrybucji i wydania, ale najwyraźniej w Ubuntu ustawiłeś
UTC=no
/ etc / default / rcS ), a następnie skonfiguruj systemy operacyjne tak, aby tylko jeden z nich (najlepiej ten, którego używasz najczęściej, ponieważ czas wyświetlany we wszystkich innych przypadkach będzie niepoprawny dwa razy w roku, dopóki nie zostanie uruchomiony i miał szansę aby to poprawić) obsługuje zmiany czasu letniego . I żyj z wadami, którymi powinien zarządzać system jednego użytkownika.Możesz również ustawić po stronie systemu Windows, aby używał UTC jako strefy czasowej i wyłączał automatyczne zmiany czasu letniego w systemie Windows, i ustaw Linux na RTC w UTC i wyświetlanie czasu konwertowanego zgodnie z jego praktykami. Spowoduje to jednak wyświetlenie przez system Windows daty i godziny w UTC, co może nie być tym, czego naprawdę chcesz. Nie jest to duży problem dla nas, Europejczyków, którzy są co najwyżej trzy godziny wolnego od UTC, ale mogą być bardziej problemem w Stanach Zjednoczonych. Jest to prawdopodobnie bardziej realistyczna opcja, jeśli używasz tylko systemu Windows od czasu do czasu, a twoim głównym systemem operacyjnym jest Linux lub inny system operacyjny obsługujący RTC-UTC.
źródło
Musisz ustawić swój system Linux na korzystanie z czasu lokalnego, jak wyjaśniono tutaj w tym przewodniku dla Ubuntu .
źródło
Jestem podwójnym uruchamianiem systemu Windows 10 i remiksowania systemu operacyjnego i po prostu przestrzeganie tylko przewodnika dla systemu Windows zadziałało dla mnie, oba czasy są poprawne. Użyłem wiersza polecenia, aby dodać ci skrypt, ponieważ było łatwiej
źródło