some more fixes for partitionable raid

This commit is contained in:
Tobias Powalowski 2009-07-10 12:38:15 +02:00
parent 99cca54178
commit f68f2220c2

View file

@ -838,6 +838,7 @@ _raid()
for i in $(ls /dev/mapper/* 2>/dev/null | grep -v control); do
cryptsetup status $i | grep "device:.*/dev/md" && ALREADYINUSE="$ALREADYINUSE $i"
done
### TODO check layers of encrypt and lvm!
for i in $ALREADYINUSE; do
PARTS=$(echo $PARTS | sed -e "s#$i\ _##g")
done
@ -929,6 +930,7 @@ _raidpartitions()
for i in $ALREADYINUSE; do
PARTS=$(echo $PARTS | sed -e "s#$i\ _##g")
done
### TODO check layers of encrypt and lvm!
# break if all devices are in use
if [ "$PARTS" = "" ]; then
DIALOG --msgbox "All devices in use. No more devices left for new creation." 0 0
@ -1104,7 +1106,20 @@ _createpv()
for i in $PARTS; do
mdcheck="$(echo $i | sed -e 's#/dev/##g')"
if ! [ "$(find /sys/block/$mdcheck/ -name 'dm*' 2>/dev/null)" = "" ]; then
for k in $(find /sys/block/$mdcheck/ -name 'dm*'); do
for k in $(find /sys/block/$mdcheck/ -name 'dm*' 2>/dev/null); do
# check encrypted volume
realdevice="$(cryptsetup status $(cat $k/dm/name) 2>/dev/null | grep "device:.*/dev/mapper/" | sed -e 's#.*\ ##g')"
[ "$(lvs $realdevice 2>/dev/null)" ] && ALREADYINUSE="$ALREADYINUSE $i"
# check on normal lvs
[ "$(lvs /dev/mapper/$(cat $k/dm/name) 2>/dev/null)" ] && ALREADYINUSE="$ALREADYINUSE $i"
done
fi
done
# skip md partition devices, which already have lvm devices!
for i in $PARTS; do
mdcheck="$(echo $i | grep /dev/md_d | sed -e 's#p.*##g' -e 's#/dev/##g')"
if ! [ "$(find /sys/block/$mdcheck/ -name 'dm*' 2>/dev/null)" = "" ]; then
for k in $(find /sys/block/$mdcheck/ -name 'dm*' 2>/dev/null); do
# check encrypted volume
realdevice="$(cryptsetup status $(cat $k/dm/name) 2>/dev/null | grep "device:.*/dev/mapper/" | sed -e 's#.*\ ##g')"
[ "$(lvs $realdevice 2>/dev/null)" ] && ALREADYINUSE="$ALREADYINUSE $i"
@ -1385,7 +1400,22 @@ _luks()
for i in $PARTS; do
mdcheck="$(echo $i | sed -e 's#/dev/##g')"
if ! [ "$(find /sys/block/$mdcheck/ -name 'dm*' 2>/dev/null)" = "" ]; then
for k in $(find /sys/block/$mdcheck/ -name 'dm*'); do
for k in $(find /sys/block/$mdcheck/ -name 'dm*' 2>/dev/null); do
cryptsetup status $(cat $k/dm/name) 2> /dev/null && ALREADYINUSE="$ALREADYINUSE $i"
# check lvm devices if encryption was used!
if [ "$(lvs /dev/mapper/$(cat $k/dm/name) 2> /dev/null)" ]; then
for devpath in $ALREADYINUSE; do
[ "$(echo $devpath | grep "/dev/mapper/$(cat $k/dm/name)"$)" ] && ALREADYINUSE="$ALREADYINUSE $i"
done
fi
done
fi
done
# skip md partition devices, which already has encrypted devices!
for i in $PARTS; do
mdcheck="$(echo $i | grep /dev/md_d | sed -e 's#p.*##g' -e 's#/dev/##g')"
if ! [ "$(find /sys/block/$mdcheck/ -name 'dm*' 2>/dev/null)" = "" ]; then
for k in $(find /sys/block/$mdcheck/ -name 'dm*' 2>/dev/null); do
cryptsetup status $(cat $k/dm/name) 2> /dev/null && ALREADYINUSE="$ALREADYINUSE $i"
# check lvm devices if encryption was used!
if [ "$(lvs /dev/mapper/$(cat $k/dm/name) 2> /dev/null)" ]; then