git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@12680 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
		
			
				
	
	
		
			109 lines
		
	
	
		
			4.4 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			109 lines
		
	
	
		
			4.4 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
	
	
| #!/bin/sh
 | |
| # IBM(c) 2010 EPL license http://www.eclipse.org/legal/epl-v10.html
 | |
| #(C)IBM Corp
 | |
| 
 | |
| #
 | |
| #-----------------------------------------------------------------------------
 | |
| #
 | |
| #setbootfromdisk
 | |
| #   The script is used to set harddisk(sda) to be the default bootup devices
 | |
| #   on Redhat-family OSes with POWER system
 | |
| #
 | |
| #-----------------------------------------------------------------------------
 | |
| 
 | |
| OS=`uname`
 | |
| if [[ $OS = "Linux" ]]; then
 | |
|     if [[ $OSVER = fedora* ]] || [[ $OSVER = rhels5* ]] || [[ $OSVER = rhel6* ]] || [[ $OSVER=rhels6* ]] || [[ -f /etc/fedora-release ]] || [[ -f /etc/redhat-release ]]; then
 | |
|         if  [[ -f /usr/sbin/bootlist ]] ; then
 | |
|             # determine which harddisk should be the default one
 | |
|             # /dev/sda3 /boot ext4 rw,seclabel,relatime,barrier=1,data=ordered 0 0
 | |
|             BOOTENTRY=`cat /proc/mounts |grep /boot`
 | |
| 
 | |
|             if [[ -z $BOOTENTRY ]]; then
 | |
|                 BOOTENTRY=`grep ^\/dev /proc/mounts |grep " / "`
 | |
|             fi
 | |
| 
 | |
|             BOOTDEVICE=`echo $BOOTENTRY | awk '{print $1}'`
 | |
| 
 | |
|             if  [[ -f /sbin/multipath ]] ; then
 | |
|                 MPATH=`/sbin/multipath -ll`
 | |
|             fi
 | |
| 
 | |
|             #software raid, assume sda and sdb
 | |
|             if echo $BOOTDEVICE | grep "md"
 | |
|             then
 | |
|                 if echo $MPATH | grep "sdc"
 | |
|                 then
 | |
|                     if echo $MPATH | grep "sdd"
 | |
|                     then
 | |
|                         logger -t xcat -p local4.info setbootfromdisk: Setting sda sdb sdc sdd to be the default bootup device
 | |
|                         echo "setbootfromdisk: setting up sda sdb sdc sdd to be the default bootup device"
 | |
|                         bootlist -m normal sda sdb sdc sdd
 | |
|                         exit 0
 | |
|                     fi
 | |
|                 fi
 | |
|                 logger -t xcat -p local4.info setbootfromdisk: Setting sda sdb to be the default bootup device
 | |
|                 echo "setbootfromdisk: setting up sda sdb to be the default bootup device for software raid"
 | |
|                 bootlist -m normal sda sdb
 | |
|                 exit 0
 | |
|             fi
 | |
| 
 | |
|             if echo $BOOTDEVICE | grep "mpath"
 | |
|             then
 | |
|                 found=0
 | |
|                 for i in $MPATH
 | |
|                 do
 | |
|                     if echo $BOOTDEVICE | grep "$i"
 | |
|                     then
 | |
|                         found=1
 | |
|                     else
 | |
|                         if echo $i | grep "mpath"
 | |
|                         then
 | |
|                             found=0
 | |
|                         fi
 | |
|                     fi
 | |
| 
 | |
|                     if [[ $found = 1 ]]
 | |
|                     then
 | |
|                         if echo $i | grep "sda"
 | |
|                         then
 | |
|                             logger -t xcat -p local4.info setbootfromdisk: Setting sda sdb to be the default bootup device
 | |
|                             echo "setbootfromdisk: setting up sda sdb to be the default bootup device"
 | |
|                             bootlist -m normal sda sdb
 | |
|                             exit 0
 | |
|                         elif echo $i | grep "sdc" 
 | |
|                         then
 | |
|                             logger -t xcat -p local4.info setbootfromdisk: Setting sdc sdd to be the default bootup device
 | |
|                             echo "setbootfromdisk: setting up sdc sdd to be the default bootup device"
 | |
|                             bootlist -m normal sdc sdd
 | |
|                             exit 0
 | |
|                         fi
 | |
|                     fi
 | |
|                 done
 | |
| 
 | |
| 
 | |
|                 if echo $MPATH | grep "sdb"
 | |
|                 then
 | |
|                     logger -t xcat -p local4.info setbootfromdisk: Setting sda sdb to be the default bootup device
 | |
|                     echo "setbootfromdisk: setting up sda sdb to be the default bootup device"
 | |
|                     bootlist -m normal sda sdb
 | |
|                     exit 0
 | |
|                 fi
 | |
|             fi
 | |
| 
 | |
|             if [[ -z $BOOTDEVICE ]]; then
 | |
|                 logger -t xcat -p local4.err setbootfromdisk: cannot find the booting device
 | |
|             else
 | |
|                 logger -t xcat -p local4.info setbootfromdisk: Setting $BOOTDEVICE to be the default bootup device
 | |
|                 echo "setbootfromdisk: setting up $BOOTDEVICE as the default bootup device"
 | |
|                 bootlist -m normal $BOOTDEVICE 
 | |
|                 exit 0
 | |
|             fi
 | |
|         else 
 | |
|             logger -t xcat -p local4.err Could not find /usr/sbin/bootlist
 | |
|             echo "setbootfromdisk: could not find /usr/sbin/bootlist"
 | |
|             exit -1
 | |
|         fi
 | |
|     fi
 | |
| fi
 |