[Clfs-support] Can't mount root at boot

Arnie Stender astender at aagstender.org
Sat Nov 24 13:49:09 PST 2007


Stan Sander wrote:
> Arnie Stender wrote:
>>
>> Mount JFS Failure: -22
>> No filesystem could mount root, tried: reiserfs ext3 ext4dev ext2 msdos
>> vfat iso9669 jfs
>> kernel panic - not syncing: VFS: unable to mount root fs on
>> unknown-block(8,49)
>>
>> What does it mean by "unknown-block(8,49)"? The message seems to be
>> saying the kernel is trying to mount the filesystem "ON" this "block".
>> Arnie
>
>
> Arnie,
>
> If I'm understanding this correctly, it is trying to find the root
> filesystem on the first partition of the fourth scsi drive, in other
> words /dev/sdd1.  I could be way off base here -- it's just a stab in
> the dark.  What does your /boot/grub/menu.lst file contain?  Have you
> tried passing a root= line to your kernel?
>
> Example based on my system:
>
> title linux
> root (hd0,0)
> kernel /boot/bzImage root=/dev/sdb1
>
> Notice two things here.  first the root (hd0,0) this entry is for
> grub's benefit since the bios sees my drive that I'm booting from as
> the first hard drive -- hd0, -- and the partition -- 0 -- that
> contains my /boot (with the  files grub needs stage 1, the *stage1_5
> files and stage2 and the menu.lst file)  Note grub starts counting
> from 0.
>
> Then the second thing is the root=/dev/sdb1  When the kernel boots, it
> sees the same hard drive as /dev/sdb instead of /dev/sda, as one would
> normally expect.  (This actually has to do with the SCSI ID of the
> drive and this method is just how I chose to deal with it.)  With this
> line, the kernel is able to find the correct drive and partition where
> it's root filesystem is as it "takes over" the boot process from grub.
>
> Worth a shot adding/verifying the root= anyway, IMO. And, as I said
> before, I could be way off base here.
>
> Good luck,
>
> Stan
>
Hi Stan,
    Actually, you are dead on. What I would like to know is how you got
that out of those messages. I'll include my menu.lst  below but what is
happening is that I bought a bunch of parts and built my system. It uses
an ASUS model A8N32-SLI Delux Motherboard. This motherboard comes with
two SATA RAID controllers on board. One is a four port able to run RAID
1, 10 and 5. I'm using this to run my RAID5 data disk. My OS is on the
other one which can only do RAID 0 and 1. My intent was to put the host
OS on one disk, build my CLFS on the other then mirror them. The BIOS
can be configured to boot off of either controller but when I get the OS
up both the host and the CLFS see the data disks first. There are three
of them so indeed the first one of the OS disks is /dev/sdd and it is
partitioned with the root (/) on partition 1. Boot is not a separate
partition, it is in root. I wrote the GRUB MBR to that disk and switched
the cables so it is the first disk the BIOS sees [(hd0) to GRUB].  So
how do you get /dev/sdd1 out of "unknown-block(8,49)"? BTW, I can select
the OpenSuSE and it boot up fine in this configuration. It took some
pain to get it working after I switched the cables. I think you may ask
why switch the cables and the answer is that when I go to mirror the two
disks I want the disk to sync to, to be disk 0 to the BIOS. I'm not sure
it is necessary but it makes things fit my logic and the mirroring
process is one thing I don't want to screw up after I get it all
finished. ;-)

Arnie

# Begin /boot/grub/menu.lst

# By default boot the first menu entry.
default 0

# Allow 30 seconds before booting the default.
timeout 30

# Use prettier colors.
color green/black light-green/black

# The first entry is for CLFS.
title CLFS SVN-20070724
root (hd0,0)
kernel /boot/clfskernel-2.6.20.1 root=/dev/sdd1

title OpenSuSE10
root (hd1,0)
kernel /boot/vmlinuz root=/dev/sde1
initrd /boot/initrd




More information about the Clfs-support mailing list