On Thu, Mar 31, 2011 at 3:54 PM, Thomas Bächler <thomas@archlinux.org> wrote:
This database is (re)created when we (re)start udevd in rc.syinit. Udev doesn't know that it was running before, so there is no need to reuse any database.
From udev's NEWS file:
*** The udev runtime data moved from /dev/.udev/ to /run/udev/. The /run mountpoint is supposed to be a tmpfs mounted during early boot, available and writable to for all tools at any time during bootup, it replaces /var/run/, which should become a symlink some day. If /run does not exist, or is not writable, udev will fall back using /dev/.udev/. On systemd systems with initramfs and LVM used, packagers must make sure, that the systemd and initramfs versions match. The initramfs needs to create the /run/ mountpoint for udev to store the data, and mount this tmpfs to /run in the rootfs, so the that the udev database is preserved for the udev version started in the rootfs. *** The last paragraph is admittedly referring to systemd, but I think this is not important (I think the same case would apply to any init system mounting /run). Here I get the impression that there is something valuable in the udev database that could and should be preserved from initramfs to normal init (I don't fully understand what is happening here, so maybe it does not apply to Arch).
I was thinking with regard to mdadm now: Maybe mdadm stores some valuable data there.
From all the discussions on this topic I really got the impression
They certainly store something in /run, but I don't know what happens if we throw it away at the end of initramfs. that /run is supposed to be created in the initramfs and then preserved until shutdown. Maybe it is worth having a look at what dracut is doing?