summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/core/libs/lib-blockdevices-filesystems.sh19
-rw-r--r--src/core/libs/lib-ui-interactive.sh2
2 files changed, 7 insertions, 14 deletions
diff --git a/src/core/libs/lib-blockdevices-filesystems.sh b/src/core/libs/lib-blockdevices-filesystems.sh
index 8573b19..d00ef81 100644
--- a/src/core/libs/lib-blockdevices-filesystems.sh
+++ b/src/core/libs/lib-blockdevices-filesystems.sh
@@ -919,19 +919,12 @@ get_blockdevice_size ()
# $1 blockdevice (ex: /dev/md0 or /dev/sda1)
-# return true when blockdevice is an md raid, otherwise return a unset value
-mdraid_is_raid()
-{
- local israid
- if [ -z $1 ]; then
- # Don't call mdadm on empty blockdevice parameter!
- israid=""
- elif [ "$(mdadm --query $1 | cut -d':' -f2)" == " is not an md array" ]; then
- israid=""
- else
- israid=true
- fi
- echo $israid
+# All MD RAID block devices have a major id of 9
+device_is_raid() {
+ [[ -b "$1" ]] || die_error "device_is_raid needs a blockdevice as \$1 ($1 given)"
+ [[ -f /proc/mdstast ]] || return 1
+ local devmajor=$(stat -c %t "$1")
+ (( devmajor == 9 ))
}
# $1 md raid blockdevice (ex: /dev/md0)
diff --git a/src/core/libs/lib-ui-interactive.sh b/src/core/libs/lib-ui-interactive.sh
index 881af90..829556a 100644
--- a/src/core/libs/lib-ui-interactive.sh
+++ b/src/core/libs/lib-ui-interactive.sh
@@ -878,7 +878,7 @@ interactive_grub() {
bootdev=$(mount | grep $var_TARGET_DIR/boot | cut -d' ' -f 1)
# check if bootdev or PART_ROOT is on a md raid array
# This dialog is only shown when we detect / or /boot on a raid device.
- if [ -n "$(mdraid_is_raid $bootdev)" -o -n "$(mdraid_is_raid $PART_ROOT)" ]; then
+ if device_is_raid $bootdev || device_is_raid $PART_ROOT; then
ask_yesno "Do you have your system installed on software raid?\nAnswer 'YES' to install grub to another hard disk." no
if [ $? -eq 0 ]; then
onraid=true