solution found - Promise UDMA100 VIA root fs w/ new kernel

solution found - Promise UDMA100 VIA root fs w/ new kernel

Post by Jeff Hedgpet » Sat, 14 Sep 2002 12:05:44



I've seen a lot of problems posted about this while searching for my own
solution, so here's a post if this helps someone out while google'ing.

Disclaimer:

I don't know enough about this mess to know if this will help you.
assume that it won't until you've read the whole thing, then decide for
yourself.  you will have to adapt all file changes to reflect your own
file systems/boot loader/distribution.  

System:

Promise UDMA100
Asus A7V
VIA VT82C686A PCI chipset
Award BIOS
Redhat 7.3

Problem:

upgrading linux kernel 2.4.18 to 2.4.19
when booting 2.4.19 get kernel panic: vfs: unable to mount root fs
<etc.>

Solution

watching the failing boot a few times, I noticed that the probed
partitions were different.  my drives usually reported as hde and hdf.
with the new kernel the drives were mapped as hdc and hdd (my cdrom
remained hda).  btw, this was really easy to miss because 1) you can't
scroll the screen after the panic, and 2) I never find the real problem
until I've chased at least 5 wrong ones :)

I didn't dig much through the kernel changelog, but I'm assuming that
some new IDE code was in there that changed the probe order.  I always
thought it slightly annoying that the drive lettering was so high, but
didn't care enough to investigate.

the solution was clear then, and I just needed tell the new kernel a
different drive for root (as it would map them differently when it
booted).  I highly recommend labeling your ext2(ext3) partitions, it
makes this process much easier -- and possible, I imagine.

partition labeling:
e2label /dev/hdf1 /
e2label /dev/hdf5 /home
e2label /dev/hdf3 /usr

====== original files ======

lilo.conf:

prompt
timeout=50
default=linux
boot=/dev/hde
map=/boot/map
install=/boot/boot.b
lba32

image=/boot/bzImage-2.4.19
        label=linux
        read-only
        root=/dev/hdd1

image=/boot/bzImage-2.4.18
        label=old
        read-only
        root=/dev/hdf1

fstab:

LABEL=/                 /                       ext2    defaults      
1 1
none                    /dev/pts                devpts  gid=5,mode=620
0 0
LABEL=/home             /home                   ext3    defaults      
1 2
none                    /proc                   proc    defaults      
0 0
tmpfs                   /dev/shm                tmpfs   defaults      
0 0
tmpfs                   /tmp                    tmpfs   defaults      
0 0
none                    /proc/bus/usb           usbdevfs defaults      
0 0
LABEL=/usr              /usr                    ext3    defaults      
1 2

/dev/hde3               swap                    swap    defaults      
0 0

====== end original ======

====== new files ======

lilo.conf:

prompt
timeout=50
default=linux
boot=/dev/hde
map=/boot/map
install=/boot/boot.b
lba32

image=/boot/bzImage-2.4.19
        label=linux
        read-only
        root=/dev/hdd1    <<<<---- note change (doesn't exist yet, but
it will)

image=/boot/bzImage-2.4.18
        label=old
        read-only
        root=/dev/hdf1

fstab:

LABEL=/                 /                       ext2    defaults      
1 1
none                    /dev/pts                devpts  gid=5,mode=620
0 0
LABEL=/home             /home                   ext3    defaults      
1 2
none                    /proc                   proc    defaults      
0 0
tmpfs                   /dev/shm                tmpfs   defaults      
0 0
tmpfs                   /tmp                    tmpfs   defaults      
0 0
none                    /proc/bus/usb           usbdevfs defaults      
0 0
LABEL=/usr              /usr                    ext3    defaults      
1 2

## note that I'm leaving both swap in there in case this didn't work.
## you'll get errors about the "missing" swap partition, but it will
find one
##  or the other.
## delete the old line when you are successful.
/dev/hde3               swap                    swap    defaults      
0 0
/dev/hdc3               swap                    swap    defaults      
0 0

====== end new ======

***
RUN LILO after you change lilo.conf.  it seems obvious, but it's a
stupid mistake that might be avoided by my gratuitous use of CAPS and
asterix (asteri?).
***

if you use grub, you can probably just add temporary identifiers for the
new partitions in device.map, and change the "root" line or your new
kernel.

hope this helps.

jeff

 
 
 

1. new kernel doesnt find root fs

Hi folks.

Im in the process of upgrading my kernel from 2.2 to 2.4.19
All goes well (mostly)  'cept when I reboot.
The system is unusable.
I get the message :

VFS - cannot open root devicev "302" 0r 03:02
please append a correct "root"=bootoption
kernel panic: VFS unable to mount root fs on 03:02

So, back to the docs and a-googling I go...

This would appear to be, then, a simple problem,
most often caused by incorrectly editing, or forgetting to edit,
lilo.conf, or forgetting to run lilo.

I had, however done both the above.
The relevant entries in lilo.conf entry are

        # Specifies the device that should be mounted as root. (`/')
        root=/dev/hda2
        ...

        image=/vmlinuz
                label=Linux
                read-only
        root=/dev/hda2

Then, I noticed something interesting -
        queenmab:/home/sunil# file /vmlinuz-2.4.19      # new kernel
        /vmlinuz-2.4.19: Linux kernel x86 boot executable RO-rootFS, root_dev=0x302, Normal VGA

        queenmab:/home/sunil# file /boot/vmlinuz-2.2.20-idepci  #old kernel
        /boot/vmlinuz-2.2.20-idepci: Linux kernel x86 boot executable RO-rootFS, Normal VG

 questions -
 Is there an easy solution that I have overlooked ?

 does the ' root_dev=0x302 ' override lilo's 'root=/...' statements?

 All other things being ok, how the hell do I boot a working system.

2. how projects within linux commnunity work?

3. Startup: "DMA disabled" on VIA vt82c686b IDE UDMA100, Kernel 2.5.38

4. SCSI device block sizes

5. kernel panic: can not find root fs

6. Philips cdrom and workman wont work...

7. RH 7, Kernel 2.4.0: Cannot find root fs

8. gnome panel

9. recompiled kernel can't find root fs

10. Promise UDMA100 troubles

11. [Mandrake 7.1] [UDMA100] [support] [Promise]

12. kernel panic:unable to mount root on fs (kernel-2.4.21)

13. via udma100 fix