Another obnoxious discovery about Ubuntu's
Today, I had the distinct pleasure of discovering that
exist on the root filesystem, even if you have a separate
filesystem. If your root filesystem does not have such a hidden
/var/run, you experience mysterious failures of various boot stuff,
including an inability to bring up the network; for bonus points,
nothing gives you any meaningful error messages.
(For bonus points, the default Ubuntu server startup sequence wipes out the console scroll buffer, so you can't scroll back to see many boot time messages anyways. And nothing captures them elsewhere.)
I find this incredibly obnoxious, because it means that if you move
your root filesystem around, you must move it with something that
peeks under mount points (effectively only
dump or an equivalent
will do) and you must not, on any account, move it to a place with a
/var already mounted in place. (Guess what we did, not
knowing any better.)
If you started out without a separate
/var filesystem and now want
to move to one, apparently your life just sucks.
There are some comments in
/etc/init.d/mountvirtfs that suggest that
it should be recreating the root filesystem's
/var/run if it doesn't
exist. However, there are two problems:
- there is no actual code in
mountvirtfsto do this, just comments saying that it should be done.
- trying to do it wouldn't help anyways, because the root filesystem is mounted read-only at this point.
/var/lock also exists on the root filesystem and is necessary,
don't worry about it; LVM will helpfully create it for you in early
startup as a side effect of making its
/var/lock/lvm directory. So you
only have to reboot twice to have everything working right with that.)