LINUX.ORG.RU
решено ФорумAdmin

Чехарда с временем в RTC

 , ,


0

1

Я тут «узнал», что LinuxMint в редакции Live может себе позволять лишнее:

  • во-первых, он устанавливает аппаратные часы в соответствии с UTC
  • во-вторых, команды исправляющие такое «умничание» имеют силу только во время его работы – после перезагрузки аппаратные часы показывают время UTC

Эта мелочь имеет значение для работы на «не своих» компьютерах с Windows.

LinuxMint Live используется для некоторых занятий, которые ему удаются лучше других дистрибутивов. С другими Live (Debian based, Arch based) такого не наблюдается.

Как его «обуздать»?

Решение

Добавление в параметры ядра строчки live-config.utc=no защищает RTC от изменения (что и требовалось).

Перемещено hobbit из general



Последнее исправление: master_0K (всего исправлений: 1)

Ответ на: комментарий от vvn_black

Проблема возникает на «гостевых» компьютерах. Почему я и не обращал ранее на это внимания…

Пока приходится в конце перезагружаться и возвращать время «как было».

master_0K
() автор топика
Последнее исправление: master_0K (всего исправлений: 1)

А в самом LiveCD выставить что-то подобное localtime (в параметрах загрузки)? Знаю, что можно выставлять язык системы и раскладки клавиатуры, типа locale=ru и layoutcode=ru.

Правда потребуется пересборка iso с новыми параметрами, чтобы не вводить каждый раз.

krasnh ★★★
()
Ответ на: комментарий от krasnh

Вот спасибо! Надо проверить. Не подумал про параметры загрузки…

Правда потребуется пересборка iso с новыми параметрами, чтобы не вводить каждый раз

Я просто модифицирую файл конфига. Образ модифицирую при установке* / удалении* программ (и т.д.)

master_0K
() автор топика

Насколько я помню в Убунте при установке вроде спрашивалось хочешь ли ты hwclock в localtime а по умолчанию всегда было UTC

Сейчас за это отвечает systemd

❯ timedatectl | grep local
          RTC in local TZ: no
❯ 

Чтобы поменять пишут что достаточно

❯ timedatectl set-local-rtc 1
❯ 
alx777 ★★
()
Ответ на: комментарий от alx777

Да в линуксе RTC содержит время UTC.

timedatectl set-local-rtc 1 это первое, что я сделал после того как мне указали на «сбившиеся часы». Но

  • Debian based Live всё ожидаемо: в RTC устанавливается локальное время, там оно остаётся и после перезагрузки.
  • LinuxMint отчитывается, что в RTC установлено локальное время. После перезагрузки оказывается, что нет.
master_0K
() автор топика
Ответ на: комментарий от master_0K

Сложно сказать что там происходит в Минте, на Убунте вроде время в RTC меняет

❯ sudo hwclock -r -v
hwclock from util-linux 2.38
System Time: 1691949204.333464
Trying to open: /dev/rtc0
Using the rtc interface to the clock.
Assuming hardware clock is kept in UTC time.
Waiting for clock tick...
...got clock tick
Time read from Hardware Clock: 2023/08/13 17:53:25
Hw clock time : 2023/08/13 17:53:25 = 1691949205 seconds since 1969
Time since last adjustment is 1691949205 seconds
Calculated Hardware Clock drift is 0.000000 seconds
2023-08-13 19:53:24.311828+02:00

❯ timedatectl set-local-rtc 1

❯ sudo hwclock -r -v
hwclock from util-linux 2.38
System Time: 1691949265.242930
Trying to open: /dev/rtc0
Using the rtc interface to the clock.
Last drift adjustment done at 0 seconds after 1969
Last calibration done at 0 seconds after 1969
Hardware clock is on local time
Assuming hardware clock is kept in local time.
Waiting for clock tick...
...got clock tick
Time read from Hardware Clock: 2023/08/13 19:54:25
Hw clock time : 2023/08/13 19:54:25 = 1691949265 seconds since 1969
Time since last adjustment is 1691949265 seconds
Calculated Hardware Clock drift is 0.000000 seconds
2023-08-13 19:54:24.921029+02:00
alx777 ★★
()
Ответ на: комментарий от alx777

Наверное стоит снова подчеркнуть, что всё происходит при загрузке с флешки («живой сессии») и «претензия» в том, что «меняет, а возвращать не возвращает».

master_0K
() автор топика
Ответ на: комментарий от master_0K

Насколько я понимаю LinuxMint Live при загрузке берет время с NTP сервера и по дефолту устанавливает RTC в UTC согласно твоей timezone

timedatectl set-local-rtc 1 должно по идее установить RTC обратно в localtime но у тебя кто-то устанавливает его снова в UTC ?

Кстати, что у тебя показывает sudo hwclock -r -v после timedatectl set-local-rtc 1 ?

Была до systemd такая тема что hwclock –systohc вызывался при shutdown’е, может что-то вроде этого происходит ?

alx777 ★★
()
Ответ на: комментарий от targitaj

«Винды» не мои – моя задача «не лезть куда не надо». Поэтому простые и очевидные решения здесь не подходят. «Минт» очень «упорный». Другим достаточно timedatectl set-local-rtc 1

master_0K
() автор топика
Ответ на: комментарий от alx777

должно по идее установить RTC обратно в localtime но у тебя кто-то устанавливает его снова в UTC

Я тоже этого не понимаю (потому и тему открыл). И наблюдаю, только в Минт.

master_0K
() автор топика
Ответ на: комментарий от alx777

Спасибо! Всё решилось ;)

@alx777

Действительно, hwclock причастен. Я «перезаписал» его /bin/true и часы «не сбились». Впрочем и это было лишним.

@krasnh @andytux

Оказалось достаточно добавить в параметры ядра следущую строчку live-config.utc=no – после этого Live перестал «трогать» время в аппаратных часах.

Оффтоп

На одном из тестовых компьютеров шелл UEFI на запрос времени возращал время и в скобках строчку GMT-34:07 (и для часового пояса UTC, и для локального часового пояса). Я так и не понял чтобы это значило (интернет молчит)…

master_0K
() автор топика