Moja maszyna ma dwa systemy operacyjne: dystrybucję Linuksa (podstawową) i system Windows 7 (rzadko używany).
Oba O / S są ustawione w mojej strefie czasowej (UTC + 1).
W zależności od tego, jak ustawiłem czas w systemie BIOS, albo system Windows pokazuje godzinę jako godzinę przed bieżącym czasem, albo Linux po godzinie.
Dlaczego to się dzieje?
Komputer z systemem Windows zwykle zaczyna być odłączony od Internetu; zamiast tego linuksowy jest podłączony, więc poprawia datę po krótkim czasie, ale po ponownym uruchomieniu jest ponownie źle skonfigurowany.
EDYCJA: okazało się, że jest to duplikat https://serverfault.com/questions/16107/why-does-ubuntu-9-04-reset-my-windows-clock
/etc/default/rcS
nie jest obecny we wszystkich systemach - myślę, że jest on specyficzny dla Ubuntu. Debian (z którego pochodzi Ubuntu) nie ma go.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
:hwclock --hctosys --localtime
powinien skopiować ustawienia daty / godziny systemu BIOS na komputer i ustawić je na czas lokalny.hwclock --systohc --localtime
powinien ustawić czas BIOS w czasie lokalnym zamiast UTC.date
Polecił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 --localtime
flagi razem można tego dokonać programowo. Możliwe, żedate
zrobi 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:
(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 tzdata
do 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
:Po wykonaniu tej czynności upewnię się, że czas jest odpowiednio ustawiony
date
. Jeśli nie, uruchom ponownie pierwsze dwa polecenia (date
ihwclock
).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
hwclock
rzeczy 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 --localtime
rzeczy po zakończeniu, aby upewnić się, że zegar BIOS jest w czasie lokalnym.źródło