Take the 2-minute tour ×
Server Fault is a question and answer site for professional system and network administrators. It's 100% free, no registration required.

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' ?

share|improve this question

1 Answer 1

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.

share|improve this answer
    
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 '12 at 11:23
    
Can you drop something into rc.local in the initfs? –  Tom O'Connor Jun 18 '12 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 '12 at 17:38
    
Ha! interesting. Evil Evil Suse. :P –  Tom O'Connor Jun 18 '12 at 20:36

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.