Исправление проблем со временем в Ubuntu — устранение сбоев синхронизации
Ubuntu показывает неправильное время и случайные настройки исправляют это ненадолго. Изучите систему с двумя часами, прочитайте один экран timedatectl, сопоставьте свой шаблон с реальной причиной - двойной загрузкой, NTP, часовым поясом или разряженной батареей CMOS - и исправьте это.
📑Главы
- Почему Ubuntu показывает неправильное время — двое часов на вашем компьютере
- Прочитайте один экран timedatectl, прежде чем что-либо менять
- Сопоставьте свой шаблон с реальной причиной: двойная загрузка, NTP, часовой пояс или батарея CMOS.
- Включите синхронизацию времени через Интернет (NTP) и убедитесь, что она работает.
- Правильно установите часовой пояс, указав точное название зоны.
- Двойная загрузка: закончите борьбу часов Windows и Ubuntu, выбрав одно правило.
- Введите правильное время обратно в аппаратные часы.
- Когда на самом деле дело в батарее CMOS и как ее обеспечивает синхронизация
📋 Обзор и пошаговое руководство
Два часа: найди, какие из них лгут
Каждый компьютер хранит время в двух местах. RTC (часы реального времени) — это небольшие аппаратные часы на материнской плате, которые продолжают тикать при заряде батареи, когда компьютер выключен. Системные часы — это то, что Ubuntu показывает вам во время работы, и они корректируются через Интернет с помощью службы синхронизации под названием NTP. При загрузке Ubuntu считывает RTC и строит на его основе системные часы.
Таким образом, неправильные часы означают одну из трех вещей: RTC имел неправильное значение, Ubuntu прочитала его с неверным предположением или интернет-коррекция так и не произошла. Ошибка большинства людей заключается в исправлении циферблата, а не причины. Одна команда разделяет все три причины – это следующий шаг.
Прочтите timedatectl, прежде чем что-либо менять
Откройте терминал и выполните эту команду. Вам не нужно sudo, чтобы просто посмотреть:
timedatectl
Появляются семь линий; шесть из них имеют значение. Местное время – это время на циферблате часов после преобразования часового пояса. Всемирное время — это тот же момент в формате UTC — это число, которое само по себе должно быть правильным. Время RTC — это то, что в данный момент показывают аппаратные часы на материнской плате. Часовой пояс — это зона, в которую преобразуется Ubuntu, например Азия/Калькутта (IST, +0530). Системные часы синхронизированы сообщают «да», если синхронизация времени через Интернет прошла успешно хотя бы после этой загрузки. RTC в локальном TZ: нет означает, что Ubuntu предполагает, что RTC содержит UTC — эта одна строка и представляет собой всю историю двойной загрузки.
На исправной машине время RTC соответствует универсальной временной шкале, синхронизированная линия говорит «да», а служба NTP показывает активную. Запишите, что показывает ваш экран, прежде чем что-либо менять — две минуты чтения здесь экономят час случайных исправлений.
Сопоставьте закономерность с реальной причиной
Неподходящее время – это не одна проблема. Размер и форма ошибки почти каждый раз называют виновника:
Неправильно именно по вашему смещению зоны (5 часов 30 минут в Индии), и оно меняется при загрузке другой ОС - битва с двойной загрузкой RTC. Windows и Ubuntu расходятся во мнениях относительно того, что означают аппаратные часы. Перейдите к шагу 6.
Неправильно по минутам, медленно растет в течение недель – синхронизация отключена или не работает, или само значение RTC смещается. Проверьте синхронизированную линию и перейдите к шагу 4.
Правильно, пока компьютер работает, неправильно после каждого выключения — часы реального времени сбиваются или неправильно считывают время в выключенном состоянии. На старом оборудовании это батарея CMOS. Перейдите к шагу 7.
Правильное название зоны на экране, но все равно неправильное время – зона — это настройка отображения, а не само время. Ваша вселенская временная линия тоже будет неправильной. Перейдите к шагу 5, затем еще раз проверьте.
Неправильно только внутри виртуальной машины, скачок после восстановления или возобновления - ВМ берет время со своего хоста и из снапшотов, а не только из NTP.
Включите синхронизацию времени по Интернету (NTP)
Большинство компьютеров с Ubuntu с одинарной загрузкой восстанавливаются самостоятельно, если разрешена синхронизация. Включите его с помощью этой команды (он запросит ваш пароль):
timedatectl set-ntp true
Предпочитаете графический интерфейс? Откройте Настройки, затем Дата и время и включите Автоматическую дату и время. Затем подождите минуту при работающем интернет-соединении и снова запустите timedatectl. В строке Системные часы синхронизированы теперь должно быть указано да, и время должно перейти к правильному значению.
Установите часовой пояс правильно
Если сама зона неправильная, все остальное выглядит сломанным. Сначала посмотрите текущий пояс в строке Часовой пояс вывода timedatectl. Имена зон чувствительны к регистру и используют косую черту, например Asia/Kolkata. Перечислите точные имена и укажите свои:
timedatectl list-timezones
sudo timedatectl set-timezone Asia/Kolkata
Запустите timedatectl еще раз и убедитесь, что строка Местное время теперь показывает время на настенных часах, а зона отображается как Азия/Калькутта (IST, +0530). После этого все еще не так, отображается правильная зона? Тогда зона больше не будет проблемой — вернитесь к списку шаблонов на шаге 3.
Двойная загрузка: выберите одно правило аппаратной синхронизации
На машине с двойной загрузкой вы должны выбрать одно соглашение и согласовать обе системы. По умолчанию Ubuntu является разумным: RTC содержит UTC (RTC в локальном TZ: no), и каждая ОС преобразует его для отображения. По умолчанию Windows использует противоположное: RTC рассматривается как местное время. Именно из-за этого разногласия каждый переключатель ОС сдвигает ваши часы точно на смещение вашей зоны.
Быстрый компромисс на стороне Ubuntu — это эта команда: затем Ubuntu читает и записывает RTC так, как ожидает Windows:
timedatectl set-local-rtc 1 --adjust-system-clock
Альтернативой является обучение Windows использовать UTC через значение реестра RealTimeIsUniversal, оставив Ubuntu по умолчанию. Какую бы сторону вы ни выбрали – выбирайте только одну. Применение обоих исправлений переворачивает ошибку в противоположном направлении.
Сохраните правильное время на аппаратных часах
Как только системные часы будут правильными и синхронизированными, сохраните это правильное значение в RTC, чтобы следующая холодная перезагрузка началась правильно:
sudo hwclock --systohc
sudo hwclock --show
Первая команда копирует системное время в аппаратные часы; второй показывает, что сейчас есть в оборудовании. Затем полностью выключите компьютер, подождите минуту, загрузитесь и, если можете, проверьте время до подключения к сети — часы реального времени уже должны быть правильными.
Если даже сейчас после полного отключения питания время снова неверное, значит, программное обеспечение сделало все возможное — заподозрите батарею CMOS или дрейфующие часы реального времени на старом оборудовании. Точно так же вы живете со слабой батареей, не заменяя ее сразу: при включенной синхронизации NTP (шаг 4) Ubuntu сама корректирует часы вскоре после каждой загрузки, как только сеть подключается. Замена батареи по-прежнему является аппаратным решением, но синхронизация покрывает ее при ежедневном использовании.
timedatectl вместо того, чтобы снова и снова устанавливать время вручную; часы, которые вы корректируете ежедневно, — это неисправность, которую вы еще не обнаружили.🏷️Переменные и ключевые слова поиска по теме
🎙️ Полная расшифровка — нажмите, чтобы развернуть.
__TOK_39__
__TOK_40__
__TOK_41__
❓ Часто задаваемые вопросы
Это руководство на 100 % бесплатно?
__TOK_42__
Могут ли новички следовать этому руководству?
__TOK_43__
Где я могу задать вопросы, если застрял?
__TOK_44__