7d1196bd80
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@10252 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
109 lines
4.2 KiB
Bash
Executable File
109 lines
4.2 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 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 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 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 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 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 setbootfromdisk: cannot find the booting device
|
|
else
|
|
logger -t xcat 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 Could not find /usr/sbin/bootlist
|
|
echo "setbootfromdisk: could not find /usr/sbin/bootlist"
|
|
exit -1
|
|
fi
|
|
fi
|
|
fi
|