Dystrybucja Linuksa zakłada, że zegar BIOS używa UTC, a instalacja systemu Windows zakłada, że czas BIOS jest w czasie lokalnym.
Oto jak skonfigurowałem to na moim laptopie z podwójnym uruchomieniem: Wprowadzam zmiany po stronie Linux, aby używać czasu lokalnego zamiast UTC dla zegara systemowego. najpierw uruchom komendę, aby czas był poprawnie ustawiony po stronie Linux-a, ponieważ root:
date -s "2 feb 2016 18:05:15"
hwclock --hctosys --localtimepowinien skopiować ustawienia daty / godziny systemu BIOS na komputer i ustawić je na czas lokalny. hwclock --systohc --localtimepowinien ustawić czas BIOS w czasie lokalnym zamiast UTC. datePoleciłbym ustawić czas za pomocą powyższej komendy, a następnie uruchomić: hwclock --systohc --localtime ORAZ RÓWNIEŻ uruchomić: hwclock --hctosys --localtime, aby upewnić się, że / etc / adjtime ma ostatnią linię pliku z napisem „LOCAL” zamiast „UTC” lub czegoś podobnego. te --hctosys --localtimeflagi razem można tego dokonać programowo. Możliwe, że datezrobi to sam, ale nie sprawdziłem.
aby sprawdzić, czy czas systemowy jest rzeczywiście dokładny w czasie lokalnym. Nie martw się tym, jak formatowany jest ciąg ustawiania daty, jest niezwykle elastyczny. Jako przykład innych prawidłowych sposobów wypowiedzenia:
date -s "2 feb 2016 6:05:15 PM"
date -s "february 2, 2016 6:11:30 PM"
date -s "Tue Feb 2 18:11:30 EST 2016"
(Jestem w czasie wschodniego standardu, GMT -5)
Jeśli nadal masz problemy, może być konieczne ponowne wybranie strefy czasowej. W Debianie lub pochodnych takich jak Ubuntu, używasz sudo dpkg-reconfigure tzdatado zmiany stref czasowych w interfejsie ncurses.
Jeśli go nie masz, spróbuj znaleźć odpowiedni plik informacji o strefie czasowej. Na mojej instalacji to jest /usr/share/zoneinfo/America/Indiana/Indianapolis.
Gdy go znajdziesz, skopiuj go do /etc/localtime:
cp /usr/share/zoneinfo/America/Indiana/Indianapolis /etc/localtime
Po wykonaniu tej czynności upewnię się, że czas jest odpowiednio ustawiony date. Jeśli nie, uruchom ponownie pierwsze dwa polecenia ( datei hwclock).
w Linuksie powinno to sprawić, że niezależnie od tego, kiedy ustawisz w Linuksie, będzie poprawnie współdzielone z Windows. Alternatywnie można to zrobić, ale trudniej jest zamiast tego ustawić system Windows na używanie UTC. Jak to się dzieje, zmiany w wersjach i oknach powracają do czasu lokalnego po aktualizacji.
Pamiętam jeden szczególnie uparty komputer, w którym robienie wszystkich hwclockrzeczy stawało się przesłonięte, ponieważ komputer pobierał bieżący czas przez Internet za pomocą NTP. Ustawienie strefy czasowej było jedynym sposobem, aby to naprawić bez całkowitego wyłączenia NTP.
Tak czy inaczej, to tylko duży zrzut wszystkich moich przeszłych doświadczeń z tą sprawą. Jeden z nich prawie na pewno zadziała. Najpierw spróbuję rzeczy ze strefy czasowej, a następnie zdecydowanie spróbuję tych hwclock --systohc --localtimerzeczy po zakończeniu, aby upewnić się, że zegar BIOS jest w czasie lokalnym.