diff -ur genkernel.org/defaults/initrd.scripts genkernel/defaults/initrd.scripts --- genkernel.org/defaults/initrd.scripts 2009-09-23 20:51:28.000000000 +0200 +++ genkernel/defaults/initrd.scripts 2009-09-24 11:16:09.000000000 +0200 @@ -618,6 +618,17 @@ fi fi + + if [ "${USE_MULTIPATH_NORMAL}" = '1' ] + then + good_msg "Scanning for multipath devices" + /sbin/multipath -v 0 + sleep 2 + good_msg "Activating multipath devices" + /sbin/dmsetup ls --target multipath --exec "/sbin/kpartx -a -v" + #for MULTIPATH_VOLUMES in /dev/mapper/*; do kpartx -a $MULTIPATH_VOLUMES; done + fi + if [ "${USE_EVMS_NORMAL}" = '1' ] then if [ -e '/sbin/evms_activate' ] diff -ur genkernel.org/defaults/linuxrc genkernel/defaults/linuxrc --- genkernel.org/defaults/linuxrc 2009-09-23 20:51:28.000000000 +0200 +++ genkernel/defaults/linuxrc 2009-09-23 15:24:23.000000000 +0200 @@ -98,6 +98,10 @@ DMRAID_OPTS=`parse_opt "${x}"` USE_DMRAID_NORMAL=1 ;; + domultipath) + good_msg "Booting with multipath activated." + USE_MULTIPATH_NORMAL=1 + ;; doevms) USE_EVMS_NORMAL=1 ;; diff -ur genkernel.org/defaults/modules_load genkernel/defaults/modules_load --- genkernel.org/defaults/modules_load 2009-09-23 20:51:28.000000000 +0200 +++ genkernel/defaults/modules_load 2009-09-23 15:23:23.000000000 +0200 @@ -6,6 +6,7 @@ MODULES_EVMS="dm-mod dm-snapshot dm-mirror dm-bbr raid0 raid1 raid456 raid5 raid6 raid10" MODULES_LVM="dm-mod dm-snapshot dm-mirror dm-bbr" MODULES_MDADM="dm-mod dm-snapshot dm-mirror dm-bbr raid0 raid1 raid456 raid5 raid6 raid10" +MODULES_MULTIPATH="dm-mod dm-multipath dm-round-robin dm-rdac" # Hardware (IDE/SCSI/SATA) MODULES_PATA="pata_mpiix pata_pdc2027x pata_radisys pata_sil680 pata_rz1000 pata_efar pata_cmd64x pata_hpt366 pata_hpt37x pata_hpt3x3 pata_hpt3x2n pata_optidma pata_it821x pata_artop pata_oldpiix pata_cypress pata_platform pata_serverworks pata_legacy pata_ns87410 pata_ns87415 pata_pcmcia pata_isapnp pata_it8213 pata_ali pata_amd pata_opti pata_atiixp pata_triflex pata_pdc202xx_old pata_sc1200 pata_qdi pata_netcell pata_sis pata_hpt3x2n pata_marvell pata_jmicron pata_via pata_cs5520 pata_cs5530 pata_cs5535 pata_sl82c105 libata" diff -ur genkernel.org/gen_configkernel.sh genkernel/gen_configkernel.sh --- genkernel.org/gen_configkernel.sh 2009-09-23 20:51:28.000000000 +0200 +++ genkernel/gen_configkernel.sh 2009-09-23 15:28:54.000000000 +0200 @@ -100,6 +100,13 @@ sed -i ${KERNEL_DIR}/.config -e 's/#\? \?CONFIG_BLK_DEV_DM is.*/CONFIG_BLK_DEV_DM=m/g' fi + if isTrue ${CMD_MULTIPATH} + then + sed -i ${KERNEL_DIR}/.config -e 's/#\? \?CONFIG_BLK_DEV_DM is.*/CONFIG_BLK_DEV_DM=m/g' + sed -i ${KERNEL_DIR}/.config -e 's/#\? \?CONFIG_DM_MULTIPATH is.*/CONFIG_DM_MULTIPATH=m/g' + sed -i ${KERNEL_DIR}/.config -e 's/#\? \?CONFIG_DM_MULTIPATH_RDAC is.*/CONFIG_DM_MULTIPATH_RDAC=m/g' + fi + if isTrue ${SPLASH} then sed -i ${KERNEL_DIR}/.config -e 's/#\? \?CONFIG_FB_SPLASH is.*/CONFIG_FB_SPLASH=y/g' diff -ur genkernel.org/gen_initramfs.sh genkernel/gen_initramfs.sh --- genkernel.org/gen_initramfs.sh 2009-09-23 20:51:28.000000000 +0200 +++ genkernel/gen_initramfs.sh 2009-09-24 11:09:04.000000000 +0200 @@ -135,9 +135,18 @@ mkdir -p "${TEMP}/initramfs-multipath-temp/etc/" mkdir -p "${TEMP}/initramfs-multipath-temp/sbin/" mkdir -p "${TEMP}/initramfs-multipath-temp/lib/" + mkdir -p "${TEMP}/initramfs-multipath-temp/usr/" + mkdir -p "${TEMP}/initramfs-multipath-temp/usr/lib/" # Copy files to /lib - for i in /lib/{ld-*,libc-*,libc.*,libdl-*,libdl.*,libsysfs*so*,libdevmapper*so*} + for i in /lib/{ld-*,libc-*,libc.*,libdl-*,libdl.*,libsysfs*so*,libdevmapper*so*,librt*so*,libpthread*so*} + do + cp -a "${i}" "${TEMP}/initramfs-multipath-temp/lib" \ + || gen_die "Could not copy file ${i} for MULTIPATH" + done + + # Copy files to /usr/lib + for i in /usr/lib/libaio*so* do cp -a "${i}" "${TEMP}/initramfs-multipath-temp/lib" \ || gen_die "Could not copy file ${i} for MULTIPATH" @@ -165,7 +174,8 @@ then cp /etc/scsi_id.config "${TEMP}/initramfs-multipath-temp/etc/" || gen_die 'could not copy scsi_id.config' fi - cd "${TEMP/initramfs-multipath-temp/}" + cd "${TEMP}/initramfs-multipath-temp/" + ln -s lib lib64 find . -print | cpio ${CPIO_ARGS} --append -F "${CPIO}" rm -r "${TEMP}/initramfs-multipath-temp/" }