I did a full update on my personal server at home as one is bound to do, often, with Arch. It’s a headless server so there’s always that slight anxiety concerning whether or not I have to connect a keyboard/monitor when things don’t just work. The wish was not granted today:
:: Adjusting Hardware Clock [Busy]
And that’s where it just hangs. No further. Ctrl+Alt+Del works, single user mode works, but standard runlevel 3 will not. It turns out that the cause is a bug between hwclock and the server’s hardware clock. The backup battery on the motherboard, powering the CMOS memory and, subsequently, the hardware clock, is dead. While the system is powered up the battery isn’t needed – however since the hardware clock knows it has reset, it won’t tick until we tell it what the time is. Counter to this is that when hwclock starts, it’s waiting for a clock tick in order for it to know if the hardware clock’s rate of progress is good. Catch 22.
The solution in my case was to go into single user mode where I could disable hwclock in /etc/rc.conf. I’ve been using ntpd to keep the system time in sync which works just fine. I’m not too bothered with whether or not the hardware clock is right – I just want the live system’s clock to be right. It will still be a good idea to get a replacement battery since, until that’s done, every time the server boots it will think its back in 1997.