Package: hw-detect Version: 1.54 Severity: wishlist Tags: patch
Hi, the attached patch adds detection of I/O multipaths to disk-detect. This has to be enabled by using disk-detect/multipath/enable=true and is modeled after the dmraid code. If multipaths are found it pulls in the partman-multipath udeb so the paths can be properly partitioned. Please apply, -- Guido
diff --git a/debian/disk-detect.templates b/debian/disk-detect.templates index 745b0f3..0698e40 100644 --- a/debian/disk-detect.templates +++ b/debian/disk-detect.templates @@ -30,3 +30,10 @@ Type: boolean Default: false Description: for internal use; can be preseeded Check for the presence of Serial ATA RAID (dmraid) disks? + +Template: disk-detect/multipath/enable +Type: boolean +Default: false +Description: for internal use; can be preseeded + Check for the presence of multipathed devices? + diff --git a/disk-detect.sh b/disk-detect.sh old mode 100755 new mode 100644 index bee2d2d..6c84088 --- a/disk-detect.sh +++ b/disk-detect.sh @@ -91,6 +91,20 @@ module_probe() { fi } +multipath_probe() { + MP_VERBOSE=3 + # Look for multipaths... + if [ ! -f /etc/multipath.conf ]; then +cat <<EOF >/etc/multipath.conf +defaults { + user_friendly_names yes +} +EOF + fi + log-output -t disk-detect /sbin/multipath -v$MP_VERBOSE + [ -n "$(/sbin/multipath -l)" -a $? ] && return 0 || return 1 +} + hw-detect disk-detect/detect_progress_title || true while ! disk_found; do @@ -171,3 +185,29 @@ if [ "$RET" = true ]; then fi fi fi + +# Activate support for DM Multipath +db_get disk-detect/multipath/enable +if [ "$RET" = true ]; then + if anna-install multipath-udeb; then + MODULES="dm-mod dm-multipath dm-round-robin dm-emc" + # We need some dm modules... + for MODULE in $MODULES; do + if is_not_loaded $MODULE; then + module_probe $MODULE || true + fi + done + + # Look for multipaths... + if multipath_probe; then + logger -t disk-detect "Multipath devices found; enabling multipath support" + if ! anna-install partman-multipath; then + /sbin/multipath -F + logger -t disk-detect "Error loading partman-multipath; multipath devices deactivated" + fi + else + logger -t disk-detect "No multipath devices detected" + fi + fi +fi +