[CentOS] "Can't find root device" with lvm root after moving drive on CentOS 6.3
Gordon Messmer
yinyang at eburg.com
Fri Mar 29 16:38:46 UTC 2013
On 03/29/2013 01:23 AM, Joakim Ziegler wrote:
> Immediately after getting dropped to rdshell, I looked around in /dev,
> which brought me a few surprises...
>
> /dev/mapper contains only "control", that is, "vg_resolve02-lv_root" is
> missing.
Did you get to look at or for /dev/vg_resolve02 as well?
> /dev/root is a symlink to /dev/dm-0
Does /dev/dm-0 exist?
Does the system boot if you just "exit" from the rdshell? What about if
you "vgchange -a y" without changing the symlink?
> That means /dev/root already is correct, so the only thing I'm actually
> changing to make the system boot is to scan for volume groups and
> activate them.
>
> The big question then becomes: Why do I have to do this manually? How do
> I make Dracut (I assume this is Dracut's job) make this automatically?
udev should be doing this. And... I was just looking at this again,
because the last time I came up with nothing useful. Look at
/usr/share/dracut/modules.d/90lvm/64-lvm.rules. If I'm reading this
correctly, udev will look for dm-0 in /sys and will not run lvm_scan if
it's found. I wonder if it's possible that the /sys nodes are getting
set up, but device-mapper isn't setting up the nodes in /dev?
I'm really at a loss... it seems like a much simpler explanation is
simply that the devices take so long to detect that init gives up. When
you run vgchange, they've had the time they need. That idea is
inconsistent with the fact that your dmesg output shows what I assume is
the correct devices and partition tables.
You could try adding "rdinitdebug rdudevdebug" to your kernel command
line, but you're going to see a LOT of output, and it's only really
going to be meaningful if you've read the /init script that Dracut
creates, and understand more or less what it's doing, particularly in
the "main_loop" section.
More information about the CentOS
mailing list