mirror of
https://gitlab.archlinux.org/tpowa/archboot.git
synced 2024-09-19 19:40:37 +02:00
some more fixes for partitionable raid
This commit is contained in:
parent
99cca54178
commit
f68f2220c2
1 changed files with 32 additions and 2 deletions
|
@ -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
|
||||
|
|
Loading…
Reference in a new issue