'fix redundancy detection in grub'

This commit is contained in:
Tobias Powalowski 2009-03-28 17:17:15 +01:00
parent 21655e67c2
commit 50d9008d7f

View file

@ -1569,14 +1569,14 @@ dogrub() {
if [ "$PART_ROOT" != "" -a "$S_GRUB" != "1" ]; then if [ "$PART_ROOT" != "" -a "$S_GRUB" != "1" ]; then
# check if raid device is used # check if raid device is used
if [ "$(echo $PART_ROOT | grep md)" ]; then if [ "$(echo $PART_ROOT | grep md)" ]; then
if ! [ "$(mdadm --detail $PART_ROOT | grep Level | sed -e 's#.*:\ ##g')" = "raid0" -o "$(mdadm --detail $PART_ROOT | grep Level | sed -e 's#.*:\ ##g')" = "linear" ]; then if [ "$(mdadm --detail $PART_ROOT | grep Level | sed -e 's#.*:\ ##g')" = "raid1" ]; then
# redundant devices # get redundant devices
for i in $(mdadm --detail $PART_ROOT | grep "\ /dev/" | sed -e 's#.* /#/#g'); do for i in $(mdadm --detail $PART_ROOT | grep "\ /dev/" | sed -e 's#.* /#/#g'); do
_grubdev="$_grubdev $(mapdev $i)" _grubdev="$_grubdev $(mapdev $i)"
done done
redundant="1" redundant="1"
else else
# in raid0,linear devices are not redundant, only one device needed! # none raid1 devices are not redundant, only one device needed!
_grubdev=$(mapdev $(mdadm --detail $PART_ROOT | grep "\ /dev/" -m 1| sed -e 's#.* /#/#g')) _grubdev=$(mapdev $(mdadm --detail $PART_ROOT | grep "\ /dev/" -m 1| sed -e 's#.* /#/#g'))
redundant="" redundant=""
fi fi
@ -1588,14 +1588,14 @@ dogrub() {
bootdev=$(mount | grep $DESTDIR/boot | cut -d' ' -f 1) bootdev=$(mount | grep $DESTDIR/boot | cut -d' ' -f 1)
# check if raid device is used on /boot partition # check if raid device is used on /boot partition
if [ "$(echo $bootdev | grep md)" ]; then if [ "$(echo $bootdev | grep md)" ]; then
if ! [ "$(mdadm --detail $bootdev | grep Level | sed -e 's#.*:\ ##g')" = "raid0" -o "$(mdadm --detail $bootdev | grep Level | sed -e 's#.*:\ ##g')" = "linear" ]; then if [ "$(mdadm --detail $bootdev | grep Level | sed -e 's#.*:\ ##g')" = "raid1" ]; then
# redundant devices # get redundant devices
for i in $(mdadm --detail $bootdev | grep "\ /dev/" | sed -e 's#.* /#/#g'); do for i in $(mdadm --detail $bootdev | grep "\ /dev/" | sed -e 's#.* /#/#g'); do
_bootdev="$_bootdev $i" _bootdev="$_bootdev $i"
done done
redundant="1" redundant="1"
else else
# in raid0,linear devices are not redundant, only one device needed! # none raid1 devices are not redundant, only one device needed!
_bootdev=$(mdadm --detail $bootdev | grep "\ /dev/" -m 1| sed -e 's#.* /#/#g') _bootdev=$(mdadm --detail $bootdev | grep "\ /dev/" -m 1| sed -e 's#.* /#/#g')
redundant="" redundant=""
fi fi