Yes, the scsi drive is recognized and the appropriate drivers are loaded (I
did a mkinitrd --preload scsi_mod --preload sd_mod initrd.scsi <kernel
image> and verified that the modules were included in the initrd by
mounting it). I also verified that the root filesystem is indeed ext3 (btw,
how does the system know if the filesystem is of a particular type before it
gets to /etc/fstab? I haven't figured that out yet) and it was clean.
(!) [Ben] Presumably by reading the partition table and doing a little
string comparison, just as "file" does.
(?) From what I was able to google, one person said that the journal might
have been trashed (fixed with fsck) and another said that there was no
corresponding device in the initrd, which is true. But do I need to create
a device for the /dev/sda in the initrd and if so, how?
(!) [Ben] I've found that a lot of headaches can be avoided by simply
deleting the journal when there's a related problem. There can be much
darkness of the spirit and wailing and rending of clothes otherwise.
(!) [Faber] Yes, it's a bash script called linuxrc. It looks pretty
straightforward:
#!/bin/bash
echo "Loading scsi_mod.o module"
insmod /lib/scsi_mod.o
echo "Loading sd_mod.o module"
insmod /lib/sd_mod.o
echo "Loading ncr53c8xx.o module"
insmod /lib/ncr53c8xx.o
echo "Loading jbd.o module"
insmod /lib/jbd.o
echo "Loading ext3.o module"
insmod /lib/ext3.o
echo Mounting /proc filesystem
mount -t proc /proc /proc
echo Creating block devices
mkdevices /dev
echo Creating root device
mkrootdev /dev/root
echo 0x0100 > /proc/sys/kernel/real-root-dev
echo Mounting root filesystem
mount -o defaults --ro -t ext3 /dev/root /sysroot
pivot_root /sysroot /sysroot/initrd
umount /initrd/proc
So straight forward that they're not even using 'modprobe'! -- Thomas Adam
(!) [Ben] Saaay... that looks interesting. What's that "mkdevices" bit,
and how does it know which devices to "mk"? That's assuming that the lack
of an appropriate device is the problem. I'd also add a "-v" to all those
"insmod" invocations, just for grins - and maybe kill those "echo" lines.
(?) Any other suggestion for fixing this are welcome. As I've said, I've
fixed three other [92]Red Hat/SCSI problems within the past few weeks ( 1.
boot off of an IDE and mount the scsi, 2. upgrade to Red Hat 9, or 3.
preload modules in initrd) but short of reinstalling the OS, I can't figure
out what to try next.
(!) [Ben] "pivotroot", IIRC, is only necessary if you want to do an
"initrd"-type boot, where you fire up a RAMdisk, boot off that, then mount
your partition on '/' as ext3, and away you go. Mind you, this is all from
memory - it's been a long time since I did this myself, and the only
reason for doing it was that I wanted to try a [93]Debian-precompiled
kernel. These days, I just make an ext3 partition from the start. However,
you're talking SCSI, so it looks like you're stuck with doing it that way
- unless you stick a small IDE HD in there just for booting.
What I'd run into previously is, "mkinitrd" actually uses "/etc/fstab"
when building the image. I ended up having to tweak "/etc/fstab" to make
it fit the machine I was building it for - as opposed to the one on which
it was being built - and then untweak it after running "mkinitrd".
(?) I've tried that as well. :-(
(!) [Ben] Argh. Well... let's peel it back as much as we can. It's been a
mort of years since I've dealt with SCSI HDs, so I don't know how helpful
this will be, though.
First off, I'd go ahead and pop in a Knoppix CD, boot with it, and see if
I can detect/mount/read the SCSI - and I would watch carefully to see just
how different the SCSI-related messages are during the process (i.e., do
you need to try a different module?) Then, I'd make sure that the
"/etc/lilo.conf" on the SCSI is trying to do The Right Thing (you are
using LILO, right?) - no IDE-specific stuff in there, "root", "boot",
etc. are set to the correct values (not an "hdX" in the place...) and
re-run "lilo -v" just to see what the output is and make sure that it's
properly set. I'd walk through the "initrd" setup to make sure that
there's nothing odd in there, and particularly check that ROOT in
"/etc/mkinitrd/mkinitrd.conf" is explicitly set (I just remembered having
a problem with that default "probe" setting at one point; my current one
says 'ROOT="/dev/hda1 ext3"'.) Also, take a look at
"/etc/mkinitrd/modules".
Nothing else comes to mind at the moment.
(?) The partition table holds filesystem information? I didn't see anything
in the list of types in fdisk.
(!) [Ben] Sorry, I should have expanded that. The kernel would read the
=9= |