60 lines
1.9 KiB
Plaintext
60 lines
1.9 KiB
Plaintext
if [ -d /sys/firmware/efi ]; then
|
|
echo "Setting Boot Manager for the next boot."
|
|
echo "delete all sysclone boot list"
|
|
str_bootnums=`efibootmgr | grep 'syscloneLinux' | awk '{print $1}' | sed 's/boot//i' | sed 's/*//'`
|
|
for str_num in $str_bootnums
|
|
do
|
|
efibootmgr -b $str_num -B -q
|
|
done
|
|
|
|
if [ -f "/boot/efi/EFI/redhat/grub.efi" ];then
|
|
efibootmgr -c -l \\EFI\\redhat\\grub.efi -L syscloneLinux
|
|
elif [ -f "/boot/efi/efi/SuSE/elilo.efi" ];then
|
|
efibootmgr -c -l \\efi\\SuSE\\elilo.efi -L syscloneLinux
|
|
else
|
|
echo "Can not find the boot loader."
|
|
exit 1
|
|
fi
|
|
else
|
|
echo "run grub-install to configure the MBR."
|
|
if [ -e /etc/mtab ];then
|
|
mv /etc/mtab /etc/mtab.bak
|
|
fi
|
|
grep -v rootfs /proc/mounts > /etc/mtab
|
|
boot_device=''
|
|
if [ -f "/etc/systemconfig/systemconfig.conf" ];then
|
|
boot_device=`cat /etc/systemconfig/systemconfig.conf | grep BOOTDEV | awk '{print $3}'`
|
|
else
|
|
str_temp=`mount | awk '{print $1","$3}'`
|
|
for line in $str_temp
|
|
do
|
|
mp=`echo $line | awk -F, '{print $2}'`
|
|
if [ "$mp" = "/" ];then
|
|
boot_device=`echo $line | awk -F, '{print $1}' | sed -e 's/[0-9]*$//'`
|
|
break
|
|
fi
|
|
done
|
|
fi
|
|
|
|
if [ -n "$boot_device" ];then
|
|
echo "the boot device is $boot_device"
|
|
else
|
|
echo "Can not find the boot device, return error"
|
|
exit 1
|
|
fi
|
|
|
|
#for sles10, should run grub-install with parameters
|
|
echo "grub-install --no-floppy --recheck $boot_device"
|
|
grub-install --no-floppy --recheck $boot_device
|
|
if [ $? -ne 0 ];then
|
|
#sles11, run grub-install.unsupported directly
|
|
grub-install.unsupported --no-floppy --recheck $boot_device
|
|
fi
|
|
|
|
if [ -e /etc/mtab.bak ];then
|
|
mv -f /etc/mtab.bak /etc/mtab
|
|
else
|
|
rm -f /etc/mtab
|
|
fi
|
|
fi
|