[arch-general] /usr is not mounted. This is not supported.

clemens fischer ino-news at spotteswoode.dnsalias.org
Thu Oct 27 04:50:32 EDT 2011


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



More information about the arch-general mailing list