Дата и время публикации:
Выставка заведомо неправильного системного времени по CMOS RTC.
1. Характер неисправности
Характер неисправности заключается в установки неверного времени в далеком и прекрасном будущем, а именно в 2196 году, как показано на рисунке 1.
Рисунок 1
Причина выставления неправильного времени заключается в том, что проверка подключаемых файлов в скрипте /etc/init.d/hwclock.sh из пакета util-linux версии 2.33.1-01 закончилась преждевременным завершением. Перечень которых показан в листинге 1.1
Листинг 1.1
... 42 [ ! -x /sbin/hwclock ] && return 0 43 [ ! -r /etc/default/rcS ] || . /etc/default/rcS 44 [ ! -r /etc/default/hwclock ] || . /etc/default/hwclock 45 46 . /lib/lsb/init-functions 47 verbose_log_action_msg() { [ "$VERBOSE" = no ] || log_action_msg "$@"; } ...
Крах выполнения скрипта происходит во время выполнения подключения файла /lib/lsb/init-functions с функциями из пакета lsb-base версии 10.2019051400 в строке 46 указанного листинга. В результате наблюдается сбой в работе вычислительной сети (клиента WiFi) и запуска проверки монтируемых носителей информации во время старта системы.
2. Решение
Для временного и быстрого решения комментируем строку 46, начиная со строки 47 файла /etc/init.d/hwclock.sh добавляем необходимые функции-обертки log_success_msg () и log_action_msg(),предоставляемые пакетом как показано в листинге 2.1 .
Листинг 2.1
... 46 #. /lib/lsb/init-functions 47 log_success_msg () { echo "$@."; } 48 log_action_msg () { echo "$@." || true; } 49 verbose_log_action_msg() { [ "$VERBOSE" = no ] || log_action_msg "$@"; } ...
На всякий случай проверяем наличие файлов устройств CMOC RTC, как показано в дампе 2.2
Дамп 2.2
user@home:~$ ls -la /dev/rtc* lrwxrwxrwx 1 root root 4 янв 27 10:02 /dev/rtc -> rtc0 crw------- 1 root root 252, 0 янв 27 10:02 /dev/rtc0
Соответственно, выяснив их наличие, проверяем отсутствие ошибок инициализации CMOC RTC, как показано в дампе 2.3
Дамп 2.3
user@home:~$ sudo dmesg | grep "rtc\|rtc0" [ 4.851133] rtc_cmos 00:00: RTC can wake from S4 [ 4.851329] rtc_cmos 00:00: registered as rtc0 [ 4.851360] rtc_cmos 00:00: no alarms, y3k, 242 bytes nvram [ 4.967972] rtc_cmos 00:00: setting system clock to 2020-01-27 07:02:06 UTC (1580108526)
Затем, остается попробовать выполнить сам скрипт /etc/init.d/hwclock.sh, как показано в дампе 2.4
Дамп 2.4
user@home:~$ /etc/init.d/hwclock.sh show 2020-01-27 12:51:18.719599+03:00
Приведенное решение в данной статье носит временный характер...
("Продолжение следует")