Архив метки: systemd

Необычное исправление ошибки сброса временной зоны в Arch Linux и совместимых дистрибутивах

Почему сбрасывается временная зона в Arch Linux?

Если ваш компьютер или сервер на Arch Linux (или другом совместимом дистрибутиве) неожиданно решил, что живёт в другом часовом поясе, а timedatectl упрямо отказывается менять время, возможно, проблема в /etc/localtime. В этой статье разберёмся, почему это происходит, и как привести систему в чувство.

Симптомы проблемы

Вы смотрите на timedatectl status и понимаете, что что-то явно пошло не так: время сбилось, NTP отключён. Ладно, пробуем исправить:

sudo timedatectl set-timezone Europe/Moscow

А в ответ:

Failed to set time zone: Is a directory

Что? Заглядываем в /etc/localtime и видим нечто странное: там одновременно и символическая ссылка, и папка. Видимо, система запуталась и решила просто игнорировать реальность. В результате timedatectl не может установить временную зону, а NTPD работает, но остаётся невидимым для системы.

Разбор причин сбоя

Основные причины проблемы:

  1. В /etc/localtime присутствуют и символическая ссылка, и каталог, что сбивает timedatectl.
  2. timedatectl не может обновить часовой пояс из-за странной структуры /etc/localtime.
  3. ntpd исправно трудится, но система этого как будто не замечает.
  4. systemd-timesyncd и ntpd ведут тихую войну за контроль над временем.

Теперь разберёмся, как это исправить.

Решение: настройка правильной синхронизации времени

1. Удаляем лишнюю папку и создаём корректный симлинк

sudo rm -rf /etc/localtime
sudo ln -s /usr/share/zoneinfo/Europe/Moscow /etc/localtime

(Замените Europe/Moscow на нужный часовой пояс.)

2. Выключаем systemd-timesyncd, чтобы он не мешал

sudo systemctl stop systemd-timesyncd
sudo systemctl disable systemd-timesyncd

3. Запускаем NTPD и проверяем его работу

sudo systemctl enable --now ntpd
sudo systemctl restart ntpd
ntpq -p
systemctl status ntpd

Если ntpq -p показывает сервера NTP, значит, всё работает.

4. Включаем автоматическую синхронизацию времени

sudo timedatectl set-ntp true

Проверяем статус:

timedatectl status

Если System clock synchronized: yes, значит, всё в порядке.

Итог

Теперь система работает стабильно, а временная зона не ускользает в неизвестность. Если у вас случится подобная проблема, проверьте /etc/localtime: возможно, у вас тоже одновременно и символическая ссылка, и папка. Удалите лишнее, настройте ntpd, и всё заработает как часы.

Ключевые слова для SEO:

  • Arch Linux сброс временной зоны
  • timedatectl Failed to set time zone: Is a directory
  • Настройка NTP в Arch Linux
  • Как исправить сброс времени в Linux
  • systemd-timesyncd vs ntpd
  • Почему не работает timedatectl в Arch Linux
  • Временная зона сбрасывается в Linux
  • Проблема с NTP в Arch Linux и Manjaro
🔥 Полезные команды:
timedatectl set-timezone Europe/Moscow
ntpd -qg (Синхронизация времени)