Kernel cares where it should reside?

Kernel cares where it should reside?

Oleg Goldshmidt pub at goldshmidt.org
Thu Apr 2 14:10:56 IDT 2009


David Harel <hareldvd at gmail.com> writes:

> Hi there,
> Using Gentoo (and have to configure kernel).
> When I do the command - file - on kernel file I just built it says, among
> other things, root_dev 0x801.
> The working kernel says - root_dev 0x10.
> Where is this parameter determined and since when does the kernel care where
> it resides?

I don't think it is related to where the kernel resides, but to where
the root filesystem resides - this is the rootfs device number - and
the kernel does care, obviously.

You can add this as a boot parameter with root=/dev/sda1 or sth of the
kind.

The root device may change (more than once) during boot. E.g., if you
use initrd then the initrd root device may point to the ramdisk
(/dev/ram0 or similar). Then at some point you'll want the regular
root device to be engaged - the pivot_root syscall (for more info, see
the pivot_root(2), pivot_root(8), rdev(8), initrd(4) man pages, the
kernel Documentation, etc.) will change the root device as appropriate
(/dev/sda1 or whatever).

This may explain why your just-built kernel and the working kernel
have different root_dev. I *think* there is a registry for device
numbers in Documentation/devices.txt, if you want to find out what
0x801 or 0x10 are.

Hope it helps,

-- 
Oleg Goldshmidt | pub at goldshmidt.org



More information about the Linux-il mailing list