如何在 /var/log/wtmp 更新之前运行 fake-hwclock?

Rom*_*man 6 systemd raspberry-pi wtmp

我有一个树莓派,每次重启我最后都会看到这个输出:

root@RaspberryPi:~# last | grep boot
reboot   system boot  4.4.0-1055-raspi Thu Jan  1 01:00   still running
reboot   system boot  4.4.0-1055-raspi Thu Jan  1 01:00   still running
reboot   system boot  4.4.0-1055-raspi Thu Jan  1 01:00 - 23:01 (17305+22:01)
reboot   system boot  4.4.0-1055-raspi Thu Jan  1 01:00 - 23:01 (17305+22:01)
reboot   system boot  4.4.0-1055-raspi Thu Jan  1 01:00 - 23:01 (17305+22:01)
Run Code Online (Sandbox Code Playgroud)

尽管同时安装了 fake-hwclock 和硬件 RTC。

目前 fake-hwclock.service 的服务在 sysinit.target 之前启动,如下所示:

[Unit]
Before=sysinit.target

[Service]
ExecStart=/sbin/fake-hwclock load

[Install]
WantedBy=sysinit.target
Run Code Online (Sandbox Code Playgroud)

如何在 /var/log/wtmp 更新之前让它运行?

Pio*_*icz 1

我相信这是 systemd-update-utmp 中的一个错误。请参阅我的评论:https://github.com/systemd/systemd/issues/6057#issuecomment-435247567

解决方法是在 initramfs 中运行 fake-hwclock,然后再将控制权传递给主 systemd 实例。