# SOLVED: after upgrade, "could not find root block device"

## twork

I have a system with its root filesystem on LVM, over RAID5.  After upgrading to kernel 3.2.1 from something in the 2.6 series, I'm hitting a strange boot issue, and I'm pretty sure it's because the new kernel wants a different boot parameter for the root filesystem, but so far Google isn't helping me find the answer.  All the docs I can find date to the 2.6 kernel series or older.

At boot time, the kernel loads, the ramdisk loads, modules are probed, RAID starts, LVM scans successfully, then the system stops when it tries to mount the root filesystem, with "could not find root block device in ." (Looks like there should be a list before the dot.)  Then I get the prompt to enter another block device or "shell" to drop to busybox.  I tried lots of things in the rescue shell and couldn't find anything wrong -- /dev/md and /dev/mapper had all the right stuff -- until on a lark I entered the name of my root device just as it's listed on the command line, and that worked.  Root mounted, system finished booting.

From grub.conf:

```
kernel /kernel-genkernel-x86_64-3.2.1-gentoo-r2 udev domdadm dodmraid dolvm root=/dev/ram0 lvm2root=/dev/pile/root init=/linuxrc video=vesafb:ywrap,mtrr,1024x768-16@85 splash=silent,theme:emergence acpi_enforce_resources=lax

initrd /initramfs-genkernel-x86_64-3.2.1-gentoo-r2
```

(Aside: Which is current, "domdadm" or "dodmraid"?  I'm pretty sure I don't need both, or do I?)

My guess is that 'lvm2root=' is obsolete, but what's the correct parameter?

TIA.Last edited by twork on Sun Feb 26, 2012 5:42 am; edited 1 time in total

----------

## .:chrome:.

Something this happens when you DON'T have statically compiled LVM and mdadm, or if you miss the appropriate RAID support in your kernel.

Try booting with something like this: http://www.sysresccd.org/ and compile again your kernel, LVM and mdadm. Don't forget to use genkernel with --lvm and --mdadm options.

(Aside: if your is a software RAID, you need domdadm and NOT domdraid)

----------

## twork

My kernel has RAID and LVM support, and genkernel is copying the mdadm and lvm binaries into my ramdisk as it should.  Devices and volumes are all detected normally on kernel boot.  But for some reason the kernel doesn't know which one to mount as its root volume.  Once I specify it at the prompt, it finishes booting and runs fine.

Here's my genkernel command line:

```
genkernel --mdadm-config=/etc/mdadm.conf --lvm --mdadm --dmraid --makeopts='-j3' all
```

I'm pretty sure my problem is in in my kernel command line in grub.conf, or something related to that.

Thanks for the domdraid/domdadm clarification.

----------

## twork

Yep, it was the kernel command line.  I was using 'lvm2root=[DEVICE]'.  Fixed it by switching to 'real_root=[DEVICE]'.

----------

