-----Original Message----- From: Frank Steiner [mailto:fsteiner-mail1@bio.ifi.lmu.de] Sent: Friday, September 01, 2006 8:39 AM To: suse-autoinstall@suse.com Subject: [suse-autoinstall] Preload modules before hardware detection? (wrong scsi order)
Hi,
similar post was sent in July with title "Problem with the order of disks", where Michael Schulz had the same problem we have:
SCSI controllers are detected in the wrong order, so that the disk
should be /dev/sda ends up as /dev/sde.
This used to work with SuSE 9.0 where we loaded the module for the first controller with "insmod gdth" passed to linuxrc (we are using
that pxeboot).
Now, with 10.1, the init process of YA starts a "Hardware detection" *before* loading the modules defined in the info file or passed to the command line.
This makes the insmod option for linuxrc more or less superfluous and removes any control over the order in which modules are loaded during the AY boot. Here, it makes the fc modules load before the scsi modules, thus moving our scsi disk to /dev/sde.
Is it possible to disable automatic hardware detection or load the modules before the hardware detection? Or could I try thinks like renaming the init binary in the initrd and install my own script there that's just
modprobe gdth exec init.suse
Of course, I would prefer a method without changing the initrd if possible...
cu, Frank
I spent a bunch of time going around and around with this basic problem -- a machine with two SATA controllers, and the wrong one was being detected first. (System array is on a Silicon Image controller, Storage array is on a 3ware card -- and detection happens in alphabetical order). In the end, I found it easier to make a chroot-script that basically just does this: `sed -i "s/3w_9xxx sata_sil/sata_sil 3w_9xxx/g" /etc/sysconfig/kernel` `mkinitrd` (replace the module names, of course, with the ones relevant to your environment.) This just takes advantage of the fact that, by the time chroot scripts run, the sysconfig/kernel file is already populated (having just been used to build the "broken" initrd). The trick, here, is that you're installing to /dev/sde, but it's going to be /dev/sda when the system boots. The bootloader section, at least, needs to be adjusted to handle that case. I'm a little fortunate in that the sed regex is always the same in my environment. A more generalized version, though, could be done with something like `sed -i "s/3w_9xxx\(.*\)sata_sil/sata_sil\13w_9xxx/g" /etc/sysconfig/kernel` Anyway...your mileage with my hacks may vary, but hope this helps a little... - Ian