Commit 072bb644 authored by Vitaly Lipatov's avatar Vitaly Lipatov

improve raid_restore.sh

parent a2cf9abf
......@@ -3,14 +3,16 @@ get_array_uuid()
{
local dev="$1"
# "Array UUID for 1.2 and UUID for 0.9"
mdadm -E $dev | grep " UUID : " | sed -e "s|.* UUID : ||"
mdadm -E $dev | grep " UUID : " | head -n1 | sed -e "s|.* UUID : ||"
}
get_md_by_uuid()
{
#ARRAY /dev/md/1 metadata=1.2 UUID=1912da86:6089954c:2aead1ca:77f06477 name=azbykar.localdomain:1
# TODO: use UUID: in mdadm -D /dev/md?
grep "UUID=$1" /etc/mdadm.conf | cut -d" " -f 2
local STRUUID=$(grep "UUID=$1" /etc/mdadm.conf)
[ -n "$STRUUID" ] && echo "$STRUUID" | cut -d" " -f 2 && return
echo "can't grep UUID=$1 in /etc/mdadm.conf" >>$0.log
}
get_dm_status()
......@@ -44,13 +46,15 @@ print_dev_type()
dmsetup remove_all
if [ -z "$1" ] ; then
echo "Drive list:"
for dev in /dev/sd? ; do
echo " $(print_dev_type $dev): $dev"
done
fi
DEVS="/dev/sd*"
[ -n "$1" ] && DEVS="$1"
[ -n "$1" ] && DEVS="$*"
for dev in $DEVS ; do
ARRAYUUID=$(get_array_uuid $dev)
......@@ -61,7 +65,7 @@ for dev in $DEVS ; do
continue
fi
STATUS="$(get_dm_status $MDDEV)"
echo "$dev - $ARRAYUUID - $MDDEV, status: $STATUS"
echo "$dev - Array UUID: $ARRAYUUID - MDdev: $MDDEV, status: $STATUS"
[ -n "$ARRAYUUID" ] && [ -z "$MDDEV" ] && echo "!!!! can't detect md for $dev"
[ -n "$MDDEV" ] || continue
# TODO: check only missed in array
......@@ -73,6 +77,7 @@ for dev in $DEVS ; do
fi
done
if [ -z "$1" ] ; then
echo
echo "Drives not in RAID:"
for dev in /dev/sd* ; do
......@@ -82,5 +87,6 @@ for dev in /dev/sd* ; do
cat /proc/mdstat | grep -q " $(basename $dev)[0-9]*\[" && continue
echo " $dev"
done
fi
# TODO: how to check?
\ No newline at end of file
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment