As I wrote before about enabling multipathing for the AutoYaST installation it’s about time I write this one here.
Sadly AutoYaST needs a little push in the right direction (as to where to actually put the root device), so here’s part of my AutoYaST profile for such a Cisco blade:
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 | <profile xmlns="http://www.suse.com/1.0/yast2ns" xmlns:config="http://www.suse.com/1.0/configns"> 	<bootloader> 		<device_map config:type="list"> 			<device_map_entry> 				<firmware>hd0</firmware> 				<linux>/dev/sda</linux> 			</device_map_entry> 		</device_map> 	</bootloader> 	<partitioning config:type="list"> 		<drive> 			<device>/dev/sda</device> 		</drive> 	</partitioning> 	<scripts> 		<pre-scripts config:type="list"> 			<script> 				<debug config:type="boolean">false</debug> 				<feedback config:type="boolean">false</feedback> 				<filename>config-ucs.sh</filename> 				<interpreter>shell</interpreter> 				<source><![CDATA[ cat /tmp/profile/autoinst.xml | sed "s,/dev/sda,/dev/mapper/`/sbin/multipath -ll | grep dm-0 | cut -d  -f1`," > /tmp/profile/modified.xml ]]> 				</source> 			</script> 		</pre-scripts> 		<chroot-scripts config:type="list"> 			<script> 				<chrooted config:type="boolean">true</chrooted> 				<debug config:type="boolean">true</debug> 				<feedback config:type="boolean">true</feedback> 				<filename>config-ucs-chroot.sh</filename> 				<interpreter>shell</interpreter> 				<location>http://install.home.barfoo.org/autoyast/scripts/config-ucs-chroot.sh</location> 			</script> 		</chroot-scripts> 	</scripts> 	<software> 		<packages config:type="list"> 			<package>multipath-tools</package> 		</packages> 	</software> </profile> | 
Now, the profile addition takes care of the placement of the root-device now (simply parses multipath -ll) and adjusts the pulled profile accordingly (/tmp/profile/modified.xml), which AutoYaST then re-reads.
Now, after installing the system, it’s gonna come up broken and shitty. That’s what the chroot-script above is for. This script looks like this (the original idea was here, look through the attachments):
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 | #!/bin/bash echo "defaults { 	user_friendly_names yes 	bindings_file /etc/multipath_bindings }" > /etc/multipath.conf sleep 1 # Fix wrong root-path in /etc/fstab sed -i 's/mapper/.*_part/disk/by-id/scsi-mpatha-part/' /etc/fstab # Fix grub root-path and wrong root-partition sed -i -e 's/mapper/.*_part/disk/by-id/scsi-mpatha-part/'  	-e 's,scsi-mpatha-part2,scsi-mpatha-part3,' /boot/grub/menu.lst # Fix the device.map echo -e "(hd0)t$( ls /dev/disk/by-id/scsi-* | grep -v part )" > /boot/grub/device.map sleep 1 mkinitrd -f multipath | 
What the script does, is 1) fix the occurances of /dev/mapper/, since this isn’t the proper way 2) create a multipathing initrd. Without the creation of the multipath-aware initrd the system will also not boot!
Hi,
do i need to mention below in autoyast.xml file ? seems this is not there and how it takes during installation.
http://install.home.barfoo.org/autoyast/scripts/config-ucs-chroot.sh
Thanks
Maheshkumar