From: Harald Hoyer Date: Fri, 6 Jul 2018 07:23:00 +0000 (+0200) Subject: mdraid: fix case if rd.md.uuid is in ID_FS_UUID format X-Git-Tag: 048~1 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=f265cb67dc0b5d7b28952bcf4b9bee4e174c31b4;p=thirdparty%2Fdracut.git mdraid: fix case if rd.md.uuid is in ID_FS_UUID format if rd.md.uuid is in ID_FS_UUID format with dashes e40a0234-7e52-5f10-f267-658d8ec463fa convert it for the /dev/disk/by-id/md-uuid-${uuid} format e40a0234:7e525f10:f267658d:8ec463fa --- diff --git a/modules.d/90mdraid/module-setup.sh b/modules.d/90mdraid/module-setup.sh index 9015fd31b..98a4ef5d5 100755 --- a/modules.d/90mdraid/module-setup.sh +++ b/modules.d/90mdraid/module-setup.sh @@ -4,7 +4,7 @@ check() { local _rootdev # No mdadm? No mdraid support. - require_binaries mdadm || return 1 + require_binaries mdadm expr || return 1 [[ $hostonly ]] || [[ $mount_needs ]] && { for dev in "${!host_fs_types[@]}"; do @@ -65,7 +65,7 @@ cmdline() { # called by dracut install() { local rule rule_path - inst_multiple cat + inst_multiple cat expr inst_multiple -o mdmon inst $(command -v partx) /sbin/partx inst $(command -v mdadm) /sbin/mdadm diff --git a/modules.d/90mdraid/parse-md.sh b/modules.d/90mdraid/parse-md.sh index 611222286..c422b24e0 100755 --- a/modules.d/90mdraid/parse-md.sh +++ b/modules.d/90mdraid/parse-md.sh @@ -26,6 +26,11 @@ else mv "${f}.new" "$f" done for uuid in $MD_UUID; do + if strstr "$uuid" "-"; then + # convert ID_FS_UUID to MD_UUID format + uuid=$(str_replace "$uuid" "-" "") + uuid="$(expr substr $uuid 1 8):$(expr substr $uuid 9 8):$(expr substr $uuid 17 8):$(expr substr $uuid 25 8)" + fi wait_for_dev "/dev/disk/by-id/md-uuid-${uuid}" done fi