Tom Gundersen wrote:
On Wed, Oct 26, 2011 at 12:57 PM, clemens fischer <...> wrote:
Thomas Bächler wrote:
Am 25.10.2011 20:12, schrieb clemens fischer:
Mounting /usr needs to go to the initramfs. It is possible to implement a mount handler for this. At this stage, the by-label symlinks exist already.
AFAIU udevd(8) is responsible for setting up those symlinks. How can they exist _before_ udevd(8) is started?
I'll let you go back and read everything again, what you are saying makes no sense whatsoever, and I have no idea how to reply to it.
Lucky you, I have a way to explain it: There are udev rules referencing stuff in /usr. If people mount /usr by-label or by-uuid, udev must have completed to setup those symlinks. Catch-22.
If you want to understand this I suggest you look at the udev hook in initramfs. There is no problem.
I think I have to take back what I said about a catch-22. I didn't have a clear understanding about the switch over from the initramfs to the full system. Correct me if I'm wrong: 1. The initramfs provides what's necessary to run a full system. It loads the needed modules and lets udev install the systems devices. 2. See switch_root(8): "switch_root moves already mounted /proc, /dev and /sys to newroot and makes newroot the new root filesystem and starts init process." 3. The full system is made operational by eg. etc/rc.sysinit and friends. So indeed a carefully crafted "mount /usr" can rely on labels and uuids of filesystems to be available very early. clemens