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
 |