[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: Cannot Open Root Device - Was: Unidentified subject!



JAMES MERRITT wrote:

I am having a little problem with my Debian Woody. The other day when I tried to boot into Woody, it started the normal text bootup screen before it goes into to KDE graphical login screen. But, during the text portion of the boot up process, it stopped and gave this message: VFS: Cannot open root device "346" or 03:47. Please append a correct "root=" boot option. Kernel Panic: VFS: Unable to mount root fs on 03:46.

<snip>

As far as I know my disk configuration has not changed and I have not added any new hard drives.  I remember doing something with the kernel a while back, but it has worked since then, unless I was very lucky and now my luck has run out...smile.

My system is dual boot, Windows XP on one drive as partition hda1 and then linux as one partition on a second hard drive as hdb1, with three dos partitions on that same drive (hdb5, hdb6, hdb7). Do I type this at the lilo boot screen: linux root=/dev/hdb1? And if I can't get that to boot into Debain, how do I check the boot loader configuration?
I will try booting from my original install disk and check the hard drive, which I hope is not going bad.
And I will check the /etc/lilo.conf, now that I get thinking more about this I, as I stated earlier I changed the kernel and I thought the I read somewhere to change the /etc/lilo.conf, maybe that was not the thing to do. I just checked my notes and found this from when I changed the kernel:

Add initrd=/initrd to /etc/lilo.conf. If I have already done so, then put do_initrd=YES in /etc/kernel-img.conf.

Which I recall doing.  Maybe we are on to something here?

Your /etc/lilo.conf should have some lines something like these:

boot=/dev/hda
Root=/dev/hdb1
image=/vmlinuz
       label=Linux
       read-only
       initrd=/initrd.img

ls -l /
should show something like this:
lrwxrwxrwx 1 root root 28 Nov 6 13:38 initrd.img -> boot/initrd.img-2.4.20-1-686 lrwxrwxrwx 1 root root 25 Nov 6 13:38 vmlinuz -> boot/vmlinuz-2.4.20-1-686

and of course those boot/<files> in the previous two lines should exist:
-rw-r--r--    1 root     root       660989 Mar 25  2003 vmlinuz-2.4.20-1-686
-rw-r--r-- 1 root root 2916352 Mar 27 2003 initrd.img-2.4.20-1-686

Once you boot into your installer, you should be able to mount your /dev/hdb1 root partition, and then shell out to a prompt with Alt-F2. You should find your root mounted under /target.

You might want to "chroot target" to make your hdb1 root file system the "active" system, and then run "lilo" to make sure the lilo.conf settings are applied to your boot system.

Alternatively, you might can just do as someone else suggested, and as you mention above: at the boot: prompt, enter
linux root=/dev/hdb1

btw, the "initrd=/initrd.img" line in /etc/lilo.conf must be there for initrd-style kernels to boot, but the "do_initrd=YES" line just suppresses the reminder to make sure the "initrd" line exists in lilo.conf on future upgrades of the kernel.

--
Kent



Reply to: