У моей машины есть две операционные системы: дистрибутив Linux (основной) и Windows 7 (используется редко).

Оба O/S установлены в моем часовом поясе (UTC+1).

В зависимости от того, как я установил время в BIOS, либо Windows показывает время за 1 час до текущего времени, либо Linux через 1 час после.

Почему это происходит?

Windows-машина обычно начинает отключаться от Интернета; вместо этого подключен Linux, поэтому он исправляет дату через короткое время, но после перезагрузки снова неправильно настраивается.

РЕДАКТИРОВАТЬ: обнаружил, что это дубликат https://serverfault.com/questions/16107/why-does-ubuntu-9-04-reset-my-windows-clock

2 ответа2

2

Я могу вспомнить пару вопросов, которые могут возникнуть здесь.

Во-первых, у вас может быть включено летнее время в одной, а не в другой, или одна из ваших ОС настроена на неправильный часовой пояс.

Linux может предполагать, что аппаратные часы вашего компьютера установлены на UTC вместо локальных, а Windows может думать, что они установлены на локальные. Если вы находитесь в UTC+1 или UTC-1, вы можете увидеть такое поведение. Linux может загружать значение аппаратных часов, настраивая его как локальное, а затем преобразовывать его обратно в UTC перед записью в аппаратные часы во время выключения.

1

Ваш Linux-дистрибутив предполагает, что ваши часы BIOS используют UTC, а ваша установка Windows предполагает, что ваше время BIOS указано по местному времени.

Вот как я настроил его на своем ноутбуке с двойной загрузкой: я делаю изменения на стороне Linux, чтобы использовать системное время вместо UTC для системных часов. во-первых, запустите команду, чтобы правильно установить время на стороне linux, как root:

date -s "2 feb 2016 18:05:15"

hwclock --hctosys --localtime должен скопировать настройки даты / времени BIOS на ваш компьютер и установить их на местное время. hwclock --systohc --localtime должен устанавливать время BIOS по местному времени, а не по UTC. Я бы порекомендовал установить время с помощью указанной выше команды date , а затем выполнить: hwclock --systohc --localtime И ТАКЖЕ запустить: hwclock --hctosys --localtime, чтобы убедиться, что в / etc / adjtime есть последняя строка файла с надписью 'LOCAL вместо UTC или что-то в этом роде. вместе флаги --hctosys --localtime могут сделать это программно. Возможно, что date сделает это в одиночку, но я не проверял.

проверить, что системное время действительно точное по местному времени. Не беспокойтесь о том, как форматируется строка установки даты, она очень гибкая. В качестве примера других действительных способов сказать это:

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"

(Я по восточному поясному времени, GMT -5)

Если у вас все еще есть проблемы, возможно, вам придется заново выбрать часовой пояс. В Debian или его производных, таких как Ubuntu, вы используете sudo dpkg-reconfigure tzdata для изменения часовых поясов в интерфейсе ncurses.

Если у вас его нет, попробуйте найти соответствующий файл информации о часовом поясе. На моей установке это /usr/share/zoneinfo/America/Indiana/Indianapolis .

Найдя его, скопируйте его в /etc/localtime:

cp /usr/share/zoneinfo/America/Indiana/Indianapolis /etc/localtime

После этого я бы удостоверился, что время все еще правильно установлено с date . Если это не так, запустите первые две команды (date и hwclock) еще раз.

в Linux это должно быть сделано так, чтобы любое установленное вами время в Linux правильно использовалось в Windows. В качестве альтернативы, это можно сделать, но вместо этого сложнее установить окна для использования UTC. Как это происходит, с версиями и окнами, как известно, после обновлений возвращается к местному времени.

Я помню один особенно упрямый компьютер, на котором выполнение всего, что связано с hwclock было переопределено, потому что компьютер загружал текущее время через Интернет с помощью NTP. Настройка часового пояса была единственным способом исправить это без полного отключения NTP.

Во всяком случае, это просто большая куча всего моего прошлого опыта с этим вопросом. Один из них почти наверняка сработает. Сначала я бы попробовал вещи с часовым поясом , а затем определенно попробую вещи hwclock --systohc --localtime после того, как вы закончите, чтобы убедиться, что часы BIOS соответствуют местному времени.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .