After an update of my Arch OS over the weekend, my system refused to boot with this error:
Error: Root device mounted successfully, but /sbin/init does not exist. Bailing out, you are on your own. Good luck.
I should admit that I love the unassuming tone of the message.
For the latest update to happen, a bit of manual intervention is required. More details on that here. Once the update is done, the machine will refuse to boot when restarted. To get your system running again edit the grub entry in the grub menu, find the line init=/bin/systemd and replace it with init=/usr/lib/systemd/systemd and continue to boot the system with modified init parameter.
To make the change permanent, modify the /etc/default/grub file, and change the value of GRUB_CMDLINE_LINUX_DEFAULT by appending init=/usr/lib/systemd/systemd to it. On my machine, it looks like this:
And generate a new grub.cfg by running grub-mkconfig. Make sure that you replace your existing grub.cfg (typically in /boot/grub/) with the new one.
The reason for this problem is that with the latest version of systemd (version 204-1) on Arch, the symbolic link that existed earlier to /bin doesn’t anymore, since /bin doesn’t exist anymore (read this post, for the reason behind that).