Kernel panic - booting from USB harddisk

Hans Kaper spakyelj at xs4all.nl
Fri Oct 2 14:00:05 PDT 2009


Op Fri, 02 Oct 2009 01:38:29 +0200 schreef Baho Utot
<baho-utot at columbus.rr.com>:

> Hans Kaper wrote:
>> Op Thu, 01 Oct 2009 00:19:29 +0200 schreef Baho Utot
>> <baho-utot at columbus.rr.com>:
>>
>>
>>> J.P.Kaper wrote:
>>>
>>>> I am building LFS from book 6.4 on an ext3 logical partition of an
>>>> external USB harddisk.
>>>> My host system is SUSE 10.3 on one of my two internal harddisks.
>>>>
>>>> Booting from the USB disk fails with
>>>> "[4.410067] Kernel panic - not syncing: VFS: Unable to mount
>>>> root fs on unknown-block (2,0)"
>>>>
>>>>
>>>>
>>> I have done some more research on your problem.
>>>
>>> Try this
>>>
>>> in /etc/fstab for the USB disk
>>>
>>> UUID=6342a6b5-25cf-4d01-a318-68309d12ab5b / ext3 defaults       1     1
>>>
>>> change the blkid to the correct value based on
>>> $ blkid /dev/sdxx
>>>
>>>
>>> Are you trying to boot with grub on the USB drive?
>>> If so try changing /boot/grub/menu.lst kernel line like this
>>>
>>> kernel /boot/lfskernel-2.6.30.2 root=/dev/sdd1 rootdelay=15 ro quite
>>>
>>> change the /dev/sdd1 to the correct value for your USB drive
>>>
>>>
>>> If you have success then try to use UUID in the menu.lst file like this
>>>
>>> kernel /boot/lfskernel-2.6.30.2
>>> root=UUID=6342a6b5-25cf-4d01-a318-68309d12ab5b rootdelay=15 ro quite
>>>
>>>

>>
>
> It looks like grub or the kernel can give the kernel panic about not
> syncing.
>
> I like to use UUID or LABEL  in grubs menu.lst file.
>
> Grub can process UUID of LABELs and it makes sure that the  
> drive/partition
> that you are trying to boot doesn't change or get mixed up. ( It keeps
> me from getting mixed up
> trying to keep "whos bootin from here to where ?"  straight )
>
> But.....
>
> After you can successfully load/execute the kernel, and grubs done it's
> work....
> I think the kernel can not locate its root file system and barfs giving
> the kernel panic.
>
> I have found that UUID or LABELs in /etc/fstab gives you the kernel
> panic because the kernel can not process UUID or LABELs
> without using a initrd as udev has not been started.  So you need to use
> /dev/sdx there.
>
> example:
>
> title LFS 6.5 - USB
> root (hd0,0)
> kernel /boot/lfskernel-2.6.30.2 root=/dev/sdd1 rootdelay=15 ro quite
>
> That makes the USB tied to that PC :(
>
> If you need it to boot on another PC you need to edit the grub line from
> the menu when grubs starts up or use an initrd.
>
> Hope this helps.
>

You are right. root=/dev/sdc8 works fine. root=UUID=......... fails with a  
Grub-error 11: Unrecognized device string.
My intention was indeed to use LFS on the usb-disk on different computers.  
Maybe I will try to build an initrd sometime, just as an exercise;  
changing the Grub-line every time I change computers looks not very neat  
to me. But as you have seen in the post from Danny Engelbarts, leaving out  
the root= altogether is an even simpler solution.

I think we can close this thread now. I am very grateful for your  
interest; your suggestions have brought me a good step further in  
understanding the workings of Linux.

Hans Kaper.


--



More information about the lfs-support mailing list