The problem is journald
Or rather how it is still logging to /var
while systemd
is trying to unmount it.
Solutions
According to this thread, there are two ways to go about it:
- Make
journald
log to a volatile location in /run
so it doesn't lock /var
, but the tradeoff is that you lose logs at shutdown.
Edit /etc/systemd/journald.conf
to change the Storage=
line to
Storage=volatile
This is what I did, and I it worked for me.
- (EDIT: this is ArchLinux-specific) Or set up a shutdown hook to unmount
/var
later. This won't remove the failed
message as systemd will still try to unmount /var
but will indeed unmount /var
properly at the end of the shutdown sequence. You just won't see it. (I haven't tested that solution though)
Add a shutdown
hook to mkinitcpio
's HOOKS=
array, e.g. :
HOOKS="base udev autodetect block keymap encrypt lvm2 filesystems usbinput fsck var shutdown"