1

I'm reinstalling cluster nodes with SLES11-SP1. The nodes are boot on SAN and will use the official RDAC driver once installed. But during installation (boot from the network using PXE) there is no multipathing driver present and therefore some activities, like the search for disks and partitions are very slow.

I would like to modify the SuSE-supplied network-install initrd to use dm-multipath during installation. Multipathing with dm-multipaht works and I have a multipath.conf file. I can add those to the initrd just fine. But I'm stuck in how to get the module loaded and the multipathd daemon started automatically during the install process. There is a program called 'init', which is the SuSE installer.

How can I get my 'modprobe dm-multipathd' and 'multipathd' started before handing over control to the install program named 'init' ?

1 Answer 1

0

This is a bit of a guess, but I recently modified the initrd for Ubuntu 10.04 installer to add a new version of the Intel e1000e driver.
I'd be quite surprised if you couldn't do something similar (in terms of modifying the initrd) to add multipath support to the SLES installer.

The full instructions / walkthrough are here, but it basically boils down to using

zcat initrd.gz | (while true; do cpio -i -d -H newc --no-absolute-filenames || exit; done)

to uncompress the initrd, and then modifying it, and recompressing it with

find . | cpio -H newc -o > ../initrd.cpio
cd ..
gzip initrd.cpio

Worth a shot, I suppose..

Theoretically, once the module's in the initrd, you should be able to instruct the kernel to load it as a kernel argument in GRUB. GRUB can pass a module to the kernel with the module directive, as such:

module /boot/module_to_load

This might be interesting for you.

4
  • Thinks, but this is the part I figured out alright. I know that I can instruct the kernel to load a module, this could be configured from the pxe config. But I need to start the multipathd daemon too, this can not be done on the kernel command line.
    – markus_b
    Jun 18, 2012 at 11:23
  • Can you drop something into rc.local in the initfs? Jun 18, 2012 at 11:27
  • The problem is that the 'init' program in the initrd is not a normal init which reads inittab and goes form there. It is binary all-in-one who performs the installation. I found a solution now: I can replace the 'init' executable with a script which calls the old executable at the end. In this script I did add the modprobe and run multipathd, this works. Will provide some better documentation tomorrow.
    – markus_b
    Jun 18, 2012 at 17:38
  • Ha! interesting. Evil Evil Suse. :P Jun 18, 2012 at 20:36

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .