On Thu, Mar 31, 2011 at 05:04:27PM +0200, Thomas Bächler wrote:
Am 31.03.2011 16:44, schrieb Tom Gundersen:
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.
They certainly store something in /run, but I don't know what happens if we throw it away at the end of initramfs.
From all the discussions on this topic I really got the impression 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?
We can do that easily (identical as the /proc, /sys, /dev stuff). However, prepare to run into problems when the initramfs udev version does not match the version in the system.
Shouldn't be a problem unless there's a format change, as udev can convert the DB. Relevant snippets from dmesg on my work VM (which i abuse mercilessly): udev[36]: starting version 166 <30>udev[462]: converting old udev database <30>udev[462]: starting version 167 dave