VFS: Cannot open root device error
Beyond frustrated at this point. Read tons of blogs and threads on this issue, and nothing works in those threads with this for some reason. 2.4.29 works good, but hiccups quite frequently when downloading a file, so decided to upgrade to 2.6.12.5. First, I tried to upgrade to 2.6.10, which met an untimely Kernel Panic demise. I changed the lilo.conf file to read root = vmlinuz-generic-2.6.10 and changed the first link to reference my 2.4 kernel (root = vmlinuz-ide-2.4.29). But, I'm met with the following error:
VFS: Cannot open root device "302" or unknown-block(3,2) Please append a correct "root = " boot option Kernel Panic - not syncing: VFS: Unable to mount root fs on unknown-block(3,2) So far, this is what I've tried: mount /dev/cdrom /mnt/cdrom cd /testing/packages/linux-2.6.10 installpkg kernel*.tgz cd /boot mkinitrd -c -k 2.6.10 -m reiserfs pico /etc/lilo.conf This is where I edit the lilo.conf file, then type lilo to make the changes. After I reboot, 2.4 works and 2.6 doesn't. When I reboot into 2.4, I decided to download 2.6.12.5, thinking something may have been fixed (plus, I wanted to do custom module installs). I've changed everything I could think of with SCSI SATA support, and nothing works. I have a SATA hard drive, and am unsure how to get this thing working. I can't believe there are this many people out there with the same problems as me with the 2.6.x kernel and SATA drives. What is up with that? There has to be an auto-detect selection somewhere that can turns on the SATA module if need be. Is there anyone out there who can help me out? System specs: Intel ICH chipset (meaning no SiS, VIA, or Promise chipsets) Intel i865PE chipset Intel Pentium 4 2.4GHz OC'd to 3.1GHz Onboard sound (AC97) 200GB Seagate SATA HDD (which is probably causing problems) USB mouse Standard keyboard 350W PSU NEC DVDRW Drive (Secondary IDE Slave) Memorex FortyMAXX CDRW Drive (Secondary IDE Master) Oh, and I loaded into the kernel support for Ext3 and ReiserFS....they are not modules, in other words. Also, anyone know how I can get my NEC up and running? One of the main reasons I am going with 2.6 is to get rid of this annoying hiccup and get my dvd burner working (which is Secondary IDE Slave drive) |
Re: VFS: Cannot open root device error
Quote:
|
I'm only going to post a portion of the lilo.conf file, since the only changes were made to the 2.4.29 kernel and the addition of the 2.6.10 kernel.
Code:
# Linux bootable partition begins Also, I've tried installing everything in the 2.6.10 kernel that was marked as SATA; I've tried using everything marked as SATA to load as modules only; I've tried just installing ones specific to my motherboard controllers (ICH & Intel i865 chipsets...not promise, via, nforce...etc); having SATA controllers specific to my motherboard installed and the rest as modules in the kernel; I've tried many many combinations. Also, I've changed lilo.conf to look at /dev/sda, /dev/sda2, and the current /dev/hda2. Linux can boot just enough to see that there was something about Code:
sda: sda1, sda2, sda3 Don't know if this makes a difference or not, but Debian will not boot on my PC, Fedora Core 3 will not boot, and Ubuntu will not boot. SuSE and Slackware were the only ones that could install and boot. Someone in the FedoraForums mentioned that it might be my SATA controllers, but why would 2.4.29 load? However, I've had an overheating CPU in this motherboard before, and my temperature gauges are all messed up. Unless I force my motherboard to turn off thermal monitoring, it will sound alarms and auto-shutdown. But, since I'm using a new CPU (old overheating one has been replaced), I turned off thermal monitoring, and everything loads excellent in Windows, SuSE 9.1 (using 2.6 kernel), and Slack 2.4.29. |
The 2.4.29 kernel loads fine with it's root set to /dev/hda2? I ask because if I'm not mistaken (and I could be because don't own any SATA devices) SATA devices are assigned /dev/sdXX by the kernel since it handles them essentially as SCSI devices. /dev/hdXX is solely for IDE devices. Also are you rerunning lilo each time you modify the lilo.conf file? You need too, else you could just pass "Linux26 root=/dev/sda2" or whatever to the kernel at the boot: prompt until you get that ironed out.
Anyway, you're problem is most likely in the way you have the kernel configured. One thing you could do is to use the 2.4.29 kernel's config file for the 2.4.10 kernel and update it with "make oldconfig". But it looking at the specs you posted and the config for the 2.6.10 slackware kernel package, the 2.6.10 package doesn't have support for your controller compiled into it, ie CONFIG_SCSI_ATA_PIIX=m. So changing that to CONFIG_SCSI_ATA_PIIX=y and recompiling the kernel should fix that. If you're starting from scratch with a vanilla config, then you need to compile in SCSI support as well as SATA support and the driver for your controller. Best I can tell that would mean the following: Code:
CONFIG_SCSI=y |
Quote:
|
I do run lilo every time I make a change to the lilo.conf file. While compiling a couple of weeks ago, I didn't run this, and kept wondering why my Slack-2.6 wasn't appearing upon boot. I found out it was because I wasn't running lilo at the shell.
And, I do remember seeing about the old file needed to be disabled and the newer one enabled. However, I specifically opened the config file with pico ~/.config. Also, I've tried saving the configuration file using "make oldconfig". I was going to use the old configuration file, but have no clue where it was stored. I'm assuming you know, so I'll ask you... haha. I also thought that maybe I had a VIA or Promise, or SiS controller on my motherboard, so I loaded those as modules. However, this didn't fix my problem. And yes, with SuSE, my disks read /dev/sdaX. With Slack, it is /dev/hda. I found that kind-of odd myself when Slack loaded up, but it worked. So far that I know of, my .config file reads as follows (starting with SCSI stuff): Code:
CONFIG_SCSI=y So I guess I can try and find the old config file....when make oldconfig is executed, where does the old config file go? the ~/.config was hard to find because it isn't listed...you just kind of had to know where it was. |
Hi, have the same problem, so thought to post here too. Anyways, had the problem on a IBM Thinkpad T43 compiling the 2.6 kernel, turns out that under the 2.4.29 kernel(the slackware default), my harddisk is recognised as an ide device, but under the 2.6 kernel it's a sata device. It's documented here too: http://jefke.free.fr/writings/thinkpad_t43/
Perhaps it's a similar situation to yours? Afterall your 2.6 kernel failed to recognise block device (3,2) which is ide. Perhaps if u changed ur lilo.conf entry to root = /dev/sda2. It worked for me, the fs mounted no probs. Which brings me to my own problem..... When I installed slackware, all my drives were identified as ide, so when the new kernel tries to boot, this happens: EXT3-fs: mounted filesystem with ordered data mode. VFS: Mounted root (ext3 filesystem) readonly Freeing unused kernel memory: 172k freed kjournald starting. Commit interval 5 seconds INIT: version 2.84 booting proc on /proc type proc (rw) sysfs on /sys type sysfs (rw) Initializing udev dynamic device directory. swapon: cannot stat/dev/hda3 : No such file or directory Testing root filesystem status: read-only filesystem Checking root filesystem: fsck 1.35 (28-Feb-2004) /sbin/e2fsck: No such file or directory while trying to open /dev/hda2 /dev/hda2: The superblock could not be read or does not describe a correct ext2 filesystem. If the device is valid and it really contains an ext2 filesystem (and not swapor ufs or something else), then the superblock is corrupt, and you might try running e2fsck with an alternate superblock: e2fsck -b 8193 <device> and then it just stops booting.... and when I entered system maintenance mode it told me to boycott meat - suck your thumb:p Anyway to change the other settings to sda as well(swap for eg)? Cos i think that's the problem... Or is it? ---edit--- solved! just edit /etc/fstab. |
Hi,
I'm getting this same problem with a newly compiled 2.4 kernel, though the root fs is ext3, not ext2 (my fstab says as much). However, as the kernel boots up, it seems to think it's ext2, with the same warning as previous poster's: Code:
Checking root filesystem: I'm goign to look at kernelconfig now .. though ext2 and ext3 are all compiled in. It can't be a SCSI option, ext3 really should be no problem for the kernel. I should add, the filesystem is actually fine as the older kernel has no problems with it. any help appreciated, cheers. |
Ok, I solved this, I think.
The kernel is no longer panicing, anyhow. As usual, when I reconfigured the kernel, I was too aggressive. In the new 2.4.34 kernel there is something about mounting /dev on boot in the filesystem section. Disable this, and disable the /dev part too. It sounds counter-intuitive, but I disabled them and it came good. I did in fact have another error, again due to special 2.4 stuff ... input core section, I didn't have some event trigger thing checked which seemed to mess with my USB keyboard. I set it and now fine. |
SOLVED: Needed to rerun lilo
I too was getting the error "kernel panic - not syncing: VFS: Unable to mount root fs on unknown-block(3,3)". It turned out I needed to rerun lilo after what I assume was a kernel upgrade. Unfortunately I did the kernel upgrade(?) several weeks ago and hadn't noticed the problem until now because I hadn't needed to reboot until now, so I don't remember exactly what I upgraded, but I assume it was the kernel.
|
All times are GMT -5. The time now is 10:41 PM. |