On Sun, Aug 12, 2012 at 5:43 AM, Duncan <1i5t5.dun...@cox.net> wrote:
> Peter Stuge posted on Sun, 12 Aug 2012 02:12:38 +0200 as excerpted:
>>
>> What software parses the filesystem labels when you boot with openrc?
>>
>> (I ask because I never use labels myself.)
>
> Short answer, mount and udev, and the kernel directly when fed that
> information for root= on the kernel commandline.
>...
> It'a also worth noting that the kernel's root= line can take a number of
> these (I'm not sure if it can take them all), including partlabel,
> according to information someone posted on the btrfs list

I'm pretty sure that this particular part of your post is incorrect,
but I'd be happy to be corrected.

The kernel cannot interpret a root= parameter that doesn't reference a
device node that it can't internally generate (with a devtmpfs/etc).
I'm pretty sure that rules out just about anything but a physical
device (not even /dev/by-uuid/...).

I think that people get this confused because 99% of linux users have
an initramfs (and about 2% of Gentoo users it seems), and most
initramfs implementations DO interpret the root=parameter.  If you
specify an initramfs then the kernel actually ignores the
root=parameter entirely, mounting the initramfs as root, and passing
control to its init.  The initramfs is expected to mount root (or not
- you could just run the whole system off an initramfs I guess).  Most
initramfs implementations just parse the root= line on the kernel,
although it is worth noting that genkernel's initramfs does not and
uses real_root instead.

So, I could see how many linux users might think that interpreting a
complex root= parameter is a kernel function, when it is really just
the fact that they use an initramfs.

If somebody is running with root=LABEL=foo or something like that
without an initramfs I'll happily stand corrected.

Rich

Reply via email to