Comment 17 for bug 431040

Revision history for this message
Scott James Remnant (Canonical) (canonical-scott) wrote :

Thanks!

What's happening here is that because you have a separate /var and a tmpfs on /var/tmp. the "virtual-filesystems" event will not be emitted until /var/tmp is mounted. But /var/tmp cannot be mounted until /var is mounted. And /var cannot be mounted until udev has created the block device for it. But udev is not started until the virtual-filesystems events, etc.

So basically you have a dependency loop.

Codewise, the solution would be to consider virtual filesystems under local filesystems as local filesystems from the point of view of the event. We've already started to grow this code for the root filesystem which is always considered local, so maybe I just need to expand on that.

For you, there's a workaround you can use for now:

  boot with init=/bin/bash
  mount -o rw,remount /
  mkdir /var/tmp
(note that this makes a /var/tmp on the root filesystem under /var)
  edit /etc/fstab, add "showthrough" to the options for /var/tmp
  mount -o ro,remount /
  reboot

This will cause /var/tmp to be mounted before /var is mounted, and carried over once /var is mounted as well