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