Operating System - Linux
1826658 Members
2465 Online
109695 Solutions
New Discussion

Re: Netserver LC 2000 / RedHat 7.2 Cannot Mount Root FS

 
Paul S_1
Occasional Advisor

Netserver LC 2000 / RedHat 7.2 Cannot Mount Root FS

I Previously posted a question regarding the Netraid 2M and linux file corruption.

The system was running RedHat 6.2 and after building 2.4.18 kernel for it and rebooting I got a kernel panic (mount error 6 - No init found).

Thinking this a foul-up in the os, rather than spending hours searching we went with a re-install with RedHat 7.2.

5 minutes later...same error.

Has anyone had this problem before?

Any help appreciated.
6 REPLIES 6
Eric Ladner
Trusted Contributor

Re: Netserver LC 2000 / RedHat 7.2 Cannot Mount Root FS

When you say you re-installed 7.2, you did a cold install off of the CD?

What I'm wondering is if any hardware changes were made to the machine (i.e. cards removed, shuffled, disk devices moved, etc).

Something as simple as exchanging two scsi cards in a system or adding a drive to your scsi bus can render a machine unbootable.
Paul S_1
Occasional Advisor

Re: Netserver LC 2000 / RedHat 7.2 Cannot Mount Root FS

No, we installed a fresh 7.2 installation.

As far as the hardware is concerned, nothing was changed.

It appears that we cannot use a 2.4 kernel on that particular server. There must be a way though, I just cant locate one on the internet.
Eric Ladner
Trusted Contributor

Re: Netserver LC 2000 / RedHat 7.2 Cannot Mount Root FS

See if you can get on the system at all (boot from CD in rescue mode, most likely).

See if it discovered and mounted the root partition correctly. If not, umount and remount the correct root fs under /mnt

If it didn't mount correctly, thats bad. You can reboot at this point and try hitting Ctrl-x at the lilo spash screen and booting like:

LILO: linux root=/dev/sda3

(substitue the correct device for your root volume)

If that boots, check the /etc/lilo.conf and see if it's correct. Reinstall.

Failing that, you could try a kernel rebuild and a new initrd image. There was a command to poke in a new device number directly into the kernel if you moved devices, but I can't recall what it was.
Kodjo Agbenu
Honored Contributor

Re: Netserver LC 2000 / RedHat 7.2 Cannot Mount Root FS

Hello Paul,

After moving to kernel 2.4.x, did you rebuild the initrd file ?

People would suggest you to use mkinitrd, but this is my preferred method to do that :

Let's say the current initrd filename is /boot/initrd-2.4.7-3.img (this is just an example).

cp /boot/initrd-2.4.7-3.img /tmp/initrd.gz
gunzip /tmp/initrd.gz
mount -oloop /tmp/initrd /mnt
cd /mnt
grep insmod /mnt/linuxrc
grep modprobe /mnt/linuxrc

-> you have the list of modules used during the boot steps

Then, go to /lib/modules/2.4.18/... to copy the appropriate modules into /mnt/lib. For example :

cp -p /lib/modules/2.4.18/kernel/fs/ext3/ext3.o /mnt/lib
cp -p /lib/modules/2.4.18/kernel/fs/jbd/jbd.o /mnt/lib

After that :

cd /boot
umount /mnt
gzip /tmp/initrd
cp /tmp/initrd.gz /boot/initrd-2.4.18.img

Edit your /etc/lilo.conf to reflect the changes.

Launch "lilo" to refresh boot zones.


If you want an advise : when you build another kernel, it is strongly recommended to keep your old kernel in place, just in case. For example, if I had the following /etc/lilo.conf :

prompt
timeout=100
boot=/dev/hda
map=/boot/map
install=/boot/boot.b
message=/boot/message

image=/boot/vmlinuz-2.4.7-3
label=linux
initrd=/boot/initrd-2.4.7-3.img
read-only
root=/dev/hda5


After the changes above, my /etc/lilo.conf would look like this :


prompt
timeout=100
boot=/dev/hda
map=/boot/map
install=/boot/boot.b
message=/boot/message

image=/boot/vmlinuz-2.4.18
label=linux
initrd=/boot/initrd-2.4.18.img
read-only
root=/dev/hda5

image=/boot/vmlinuz-2.4.7-3
label=old
initrd=/boot/initrd-2.4.7-3.img
read-only
root=/dev/hda5


Good luck.

Kodjo
Learn and explain...
Paul S_1
Occasional Advisor

Re: Netserver LC 2000 / RedHat 7.2 Cannot Mount Root FS

While all of your suggestions are appreciated, I think I have discovered the problem.

It seems that booting in 'rescue' mode from the CD, the scsi modules are loaded like so:

sym53c8xx then megaraid

Whereas when booting the system on it's own, the modules are loaded in reverse.

I will remove megaraid from the load process and report my findings. The megaraid can always be loaded after the boot process since this is not the OS partition.

BTW: RedHat 7.2 uses the Grub boot loader rather than Lilo (although lilo is an option during install).

-Paul
Paul S_1
Occasional Advisor

Re: Netserver LC 2000 / RedHat 7.2 Cannot Mount Root FS

My hunch paid off.

On RedHat 7.2 (or, I am assuming any 2.4 distro) the scsi modules appear to load in the wrong order for this machine.

The 2.4 kernel will load megaraid before your sym53c8xx driver resulting in some sort of conflict (does the megaraid use a sym chipset?). It seems the system will then look to the partition on your array instead of the fixed disk in the system.

I removed the megaraid entry from my modules.conf and built a new initrd image. Reboot and poof, there it was. Maybe using --with=megaraid with mkinitrd will cause this module to load -after- the sym module.

Something to think about if you have an identical system or know of someone having this problem.

Thanks for the suggestions!
-Paul Slinski