diff options
-rw-r--r-- | hook-functions | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/hook-functions b/hook-functions index 8bbbbd4..6a5aebf 100644 --- a/hook-functions +++ b/hook-functions @@ -245,13 +245,19 @@ dep_add_modules() # Add rootfs manual_add_modules "${FSTYPE}" - # lvm luks root + # lvm or luks root if [ "${root#/dev/mapper/}" != "${root}" ]; then minor=$((0x$(stat --format "%T" ${root}) % 256)) block=$(ls -1 /sys/block/dm-${minor}/slaves | head -n 1) + # lvm on luks or luks on lvm if [ "${block#dm-}" != "${block}" ]; then block=$(ls -1 /sys/block/${block}/slaves | head -n 1) fi + # lvm on md or luks on md + if [ "${block#md}" != "${block}" ]; then + block=$(awk "/^${block}/{print substr(\$5, 1, 4); exit}" \ + /proc/mdstat) + fi block=${block%[0-9]*} # md root new naming scheme /dev/md/X elif [ "${root#/dev/md/}" != "${root}" ]; then |