LinuxQuestions.org
Help answer threads with 0 replies.
Home Forums Tutorials Articles Register
Go Back   LinuxQuestions.org > Forums > Linux Forums > Linux - Distributions > Slackware
User Name
Password
Slackware This Forum is for the discussion of Slackware Linux.

Notices


Reply
  Search this Thread
Old 08-17-2005, 10:09 PM   #1
pandorazbox
LQ Newbie
 
Registered: May 2005
Location: Pennsylvania
Distribution: Slackware, SuSE, Fedora Core 3, Lycoris Desktop/LX
Posts: 29

Rep: Reputation: 15
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)
 
Old 08-18-2005, 12:41 AM   #2
DaHammer
Member
 
Registered: Oct 2003
Location: Planet Earth
Distribution: Slackware, LFS
Posts: 561

Rep: Reputation: 30
Re: VFS: Cannot open root device error

Quote:
Originally posted by pandorazbox
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)
Post your complete lilo.conf. In the above error, it looks like the kernel is trying to mount a root filesystem which it thinks is located on /dev/hda2 (ie the 3,2), is that correct? I doubt it for a SATA drive. Make sure your "root =" entry for the new kernel matches the one for the old kernel. You can also try passing "vmilnuz root=/dev/xxx" at the boot prompt. Also, you'll need any SATA drivers you require compiled into the kernel if you want to avoid having to load them as modules via an initrd at boot.
 
Old 08-18-2005, 07:04 AM   #3
pandorazbox
LQ Newbie
 
Registered: May 2005
Location: Pennsylvania
Distribution: Slackware, SuSE, Fedora Core 3, Lycoris Desktop/LX
Posts: 29

Original Poster
Rep: Reputation: 15
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
image = /boot/vmlinuz-ide-2.4.29
  root = /dev/hda2
  Label = Linux24
  read-only
# Linux bootable partition ends
# Linux bootable partition begins
image = /boot/vmlinuz
  root = /dev/hda2
  Label = Linux26
  read-only
# Linux bootable partition ends
This is all from memory, as I am at work, but I've done this so many times that i'm 95% sure this is exactly how the end of the lilo.conf file is configured.

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
So, I assumed that maybe it was looking for sda instead of hda. But, as stated above, that didn't work.

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.
 
Old 08-18-2005, 12:33 PM   #4
DaHammer
Member
 
Registered: Oct 2003
Location: Planet Earth
Distribution: Slackware, LFS
Posts: 561

Rep: Reputation: 30
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
CONFIG_BLK_DEV_SD=y
CONFIG_SCSI_SATA=y
CONFIG_SCSI_ATA_PIIX=y

# CONFIG_BLK_DEV_IDE_SATA is not set
It's important that you DO NOT set CONFIG_BLK_DEV_IDE_SATA in the kernel if you intend to use the newer drivers above it. This is because that driver is the older one and it conflicts with the newer one. If you have that set in your current config, then that too could be the problem.
 
Old 08-18-2005, 12:36 PM   #5
DaHammer
Member
 
Registered: Oct 2003
Location: Planet Earth
Distribution: Slackware, LFS
Posts: 561

Rep: Reputation: 30
Quote:
Originally posted by pandorazbox
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?
Each distro configures their kernels differently and some distros use a vanilla kernel (Slackware does, Redhat does not) & some don't. That's the reason one will work and the other won't 9 times out of 10. In your case, Slackware's kernel just happens to have what you need. Most likely the reason the 2.4.29 kernel works and the 2.6.10 kernel doesn't is again because of the way the 2 kernels are configured. This assumes you indeed have root= set correctly in lilo.conf.

Last edited by DaHammer; 08-18-2005 at 12:38 PM.
 
Old 08-18-2005, 01:10 PM   #6
pandorazbox
LQ Newbie
 
Registered: May 2005
Location: Pennsylvania
Distribution: Slackware, SuSE, Fedora Core 3, Lycoris Desktop/LX
Posts: 29

Original Poster
Rep: Reputation: 15
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
CONFIG_BLK_DEV_SD=y
CONFIG_SCSI_SATA=y
CONFIG_SCSI_ATA_PIIX=y
I've had that, plus messed with configuring those other chipsets (VIA, Promise, SiS, etc.) as modules. I've messed with a ton of settings. Three days worth at 4 hours a pop.

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.
 
Old 08-18-2005, 08:58 PM   #7
iam whoiam
LQ Newbie
 
Registered: Jul 2004
Posts: 26

Rep: Reputation: 15
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

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.

Last edited by iam whoiam; 08-18-2005 at 10:01 PM.
 
Old 04-28-2007, 03:15 PM   #8
stabu
Member
 
Registered: Mar 2004
Location: dublin IRL
Distribution: Slackv12.1, Slamd64v12.1,Xubuntu v8.10_64, FC8_64
Posts: 438
Blog Entries: 5

Rep: Reputation: 32
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:
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>
I don't think my problem is fstab (previous poster was unspecific about where in fstab the problem was solved).

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.
 
Old 04-28-2007, 04:53 PM   #9
stabu
Member
 
Registered: Mar 2004
Location: dublin IRL
Distribution: Slackv12.1, Slamd64v12.1,Xubuntu v8.10_64, FC8_64
Posts: 438
Blog Entries: 5

Rep: Reputation: 32
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.
 
Old 03-31-2008, 07:00 PM   #10
DBooth
LQ Newbie
 
Registered: Oct 2006
Location: Boston
Distribution: Debian
Posts: 4

Rep: Reputation: 0
Thumbs up 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.
 
  


Reply



Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is Off
HTML code is Off



Similar Threads
Thread Thread Starter Forum Replies Last Post
Kernel Trouble: VFS: Cannot open root device Optimistic Debian 2 09-19-2005 02:41 PM
VFS: Cannot open root device antony.booth Linux - General 2 05-25-2005 04:20 AM
VFS: Cannot open root device muerte42200 Linux - Newbie 6 01-21-2005 03:43 AM
VFS: Cannot open root device 08:01 rddreamz Red Hat 0 05-09-2004 10:40 AM
VFS: Cannot open root device Mamour Linux - Software 8 04-20-2004 01:21 PM

LinuxQuestions.org > Forums > Linux Forums > Linux - Distributions > Slackware

All times are GMT -5. The time now is 12:13 AM.

Main Menu
Advertisement
My LQ
Write for LQ
LinuxQuestions.org is looking for people interested in writing Editorials, Articles, Reviews, and more. If you'd like to contribute content, let us know.
Main Menu
Syndicate
RSS1  Latest Threads
RSS1  LQ News
Twitter: @linuxquestions
Open Source Consulting | Domain Registration