Problem with booting newly compiled kernel

Prasad Joshi prasadjoshi124 at gmail.com
Tue Dec 21 15:32:40 EST 2010


On Tue, Dec 21, 2010 at 6:16 PM, Shreyansh Jain <shrey.linux at gmail.com> wrote:
> Hi List,
>
> On Tue, Dec 21, 2010 at 7:22 PM, Prasad Joshi <prasadjoshi124 at gmail.com> wrote:
>> On Tue, Dec 21, 2010 at 1:37 AM, Alexandre Courbot <gnurou at gmail.com> wrote:
>>>>        linux   /vmlinuz-2.6.37-rc6+
>>>> root=UUID=01432597-18e7-4609-9f85-3fad1d762ddc ro iommu=1
>>>
>>> Try replacing root=UUID=01432597-18e7-4609-9f85-3fad1d762ddc by the
>>> simpler root=/dev/sdaX. I had similar problems some time ago - for
>>> some reason, my kernel did not like UUIDs.
>>
>> bravo Alexandre :)
>> It solved the problem. I am really thankful to you.
>>
>
> Sorry to hijack your thread, but I thought this is the most opportune
> time to ask my query.
>
> @Prasad Nice to know that this suggestion solved the issue. I too have
> found this issue very irritating but could never understand by UUID
> were not recognized (where as my distro kernel recognizes them very
> well).

The default kernel with Ubuntu 10.10 too recognized the UUID.

>
> a. Does any have any idea which component causes this issue. As to,
> what am I missing while compiling a new kernel that it doesn't
> recognize the UUID of a dev disk?

The function responsible for mounting the root file system is
prepare_namespace()

void __init prepare_namespace(void)
{

    if (saved_root_name[0]) {
        root_device_name = saved_root_name;
        if (!strncmp(root_device_name, "mtd", 3) ||
            !strncmp(root_device_name, "ubi", 3)) {
            mount_block_root(root_device_name, root_mountflags);
            goto out;
        }
        ROOT_DEV = name_to_dev_t(root_device_name);
        if (strncmp(root_device_name, "/dev/", 5) == 0)
            root_device_name += 5;
    }

...
    mount_root();
}

The function name_to_dev_t is responsible for finding out the correct
major and minor numbers for the root device. The function also works
on UUID. IMHO, the function is responsible for doing it is
devt_from_partuuid, though I did not look into the details.

>
> b. Also, who generates these UUID - is it a disk property (like, ROM
> signature or stuff?), or this is some udev magic?
>

IMHO, this is fixed for every device during manufacturing.

> Thanks to anyone who can provide any hint about this.
>
> -
> Shreyansh
>



More information about the Kernelnewbies mailing list