сбой времени в windows и linux
бывают случаи, когда при установке второй системы, обычно это бывает linux, начинает сбиваться время в системах, к примеру вы работали под своим linux'ом и решили перейти в windows, и обнаружили, что время и дата совершенно не те, или наоборот, это происходит из-за различий формата времени, эти операционные системы по разному с ним работают, немного теории, и так, начинаем с linux, данные операционные системы работают с UTC
UTC — и аппаратные, и программные часы идут по Гринвичу. То есть часы дают универсальное время на нулевом часовом поясе. Например, если у вас часовой пояс GMT+3, Москва, то часы будут отставать на три часа. А уже пользователи локально прибавляют к этому времени поправку на часовой пояс, например, плюс +3. Каждый пользователь добавляет нужную ему поправку. Так делается на серверах, чтобы каждый пользователь мог получить правильное для своего часового пояса время.
windows же в свою очередь работает с localtime
localtime — в этом варианте программные часы тоже идут по Гринвичу, но аппаратные часы идут по времени локального часового пояса. Для пользователя разницы никакой нет, все равно нужно добавлять поправку на свой часовой пояс. Но при загрузке и синхронизации времени Windows вычитает из аппаратного времени 3 часа (или другую поправку на часовой пояс), чтобы программное время было верным.
так, вроде с теорией разобрались, теперь переходим к практике, и так, в начале грузимся по нашим windows, запускаем консоль от имени администратора и выполняем команды, для 32ч битной системы
или же для 64х битной
но часы всё равно будут синхронизироваться со временем сервера, для этого выключим службу синхронизации часов
теперь перезагружаем нашу систему и запускаем linux логинимся в терминале под root'ом и выполняем команды
и
просмотрим состояние аппаратных часов
теперь перезагружаемся ещё раз,входим в bios и настраиваем дату и время, проверяем…
если по каким то причтнам нам надо отключить всё это, то выполняем команды в
и
в windows, консоль от имени администратора
и
ещё одним вариантом может послужить следующее, в linux debian и производных
выполним команду для установки локального времени
если же хотим вернуть обратно
теперь проверим
если ответ
то наше время тикает по гринвичу, если же ответ
то значит наше время тикает по установленному системно
на сем всё, думаю вам было полезно
UTC — и аппаратные, и программные часы идут по Гринвичу. То есть часы дают универсальное время на нулевом часовом поясе. Например, если у вас часовой пояс GMT+3, Москва, то часы будут отставать на три часа. А уже пользователи локально прибавляют к этому времени поправку на часовой пояс, например, плюс +3. Каждый пользователь добавляет нужную ему поправку. Так делается на серверах, чтобы каждый пользователь мог получить правильное для своего часового пояса время.
windows же в свою очередь работает с localtime
localtime — в этом варианте программные часы тоже идут по Гринвичу, но аппаратные часы идут по времени локального часового пояса. Для пользователя разницы никакой нет, все равно нужно добавлять поправку на свой часовой пояс. Но при загрузке и синхронизации времени Windows вычитает из аппаратного времени 3 часа (или другую поправку на часовой пояс), чтобы программное время было верным.
так, вроде с теорией разобрались, теперь переходим к практике, и так, в начале грузимся по нашим windows, запускаем консоль от имени администратора и выполняем команды, для 32ч битной системы
Reg add HKLM\SYSTEM\CurrentControlSet\Control\TimeZoneInformation /v RealTimeIsUniversal /t REG_DWORD /d 1
или же для 64х битной
Reg add HKLM\SYSTEM\CurrentControlSet\Control\TimeZoneInformation /v RealTimeIsUniversal /t REG_QWORD /d 1
но часы всё равно будут синхронизироваться со временем сервера, для этого выключим службу синхронизации часов
sc config w32time start= disabled
теперь перезагружаем нашу систему и запускаем linux логинимся в терминале под root'ом и выполняем команды
timedatectl set-local-rtc 1 --adjust-system-clock
и
sed -i 's/UTC=yes/UTC=no/' /etc/default/rcS
просмотрим состояние аппаратных часов
sudo timedatectl
теперь перезагружаемся ещё раз,входим в bios и настраиваем дату и время, проверяем…
если по каким то причтнам нам надо отключить всё это, то выполняем команды в
linux
timedatectl set-local-rtc 0
и
sed -i 's/UTC=no/UTC=yes/' /etc/default/rcS
в windows, консоль от имени администратора
Reg add HKLM\SYSTEM\CurrentControlSet\Control\TimeZoneInformation /v RealTimeIsUniversal /t REG_DWORD /d 0
и
sc config w32time start= demand
ещё одним вариантом может послужить следующее, в linux debian и производных
выполним команду для установки локального времени
sudo hwclock --localtime --adjust
если же хотим вернуть обратно
sudo hwclock --utc --adjust
теперь проверим
timedatectl | grep local
если ответ
RTC in local TZ: no
то наше время тикает по гринвичу, если же ответ
RTC in local TZ: yes
то значит наше время тикает по установленному системно
на сем всё, думаю вам было полезно