diff -ur initcpio.orig/scripts/casper initcpio/scripts/casper --- initcpio.orig/scripts/casper 2014-02-12 01:16:44.150619349 +0200 +++ initcpio/scripts/casper 2014-02-11 11:21:13.274618648 +0200 @@ -624,12 +624,6 @@ if check_dev "null" "${devname}" ; then return 0 fi - elif is_nice_device "${sysblock}" ; then - for dev in $(subdevices "${sysblock}"); do - if check_dev "${dev}" ; then - return 0 - fi - done elif is_md "${devname}" || is_mapper "${devname}" ; then if check_dev "null" "${devname}" ; then return 0 @@ -646,6 +640,11 @@ echo "${devname}.${fstype}" return 0 fi + for dev in $(subdevices "${sysblock}"); do + if check_dev "${dev}" ; then + return 0 + fi + done done return 1 } diff -ur initcpio.orig/scripts/casper-helpers initcpio/scripts/casper-helpers --- initcpio.orig/scripts/casper-helpers 2014-02-12 01:16:44.147286029 +0200 +++ initcpio/scripts/casper-helpers 2014-02-12 01:13:37.294652454 +0200 @@ -51,12 +51,14 @@ where_is_mounted() { device=$1 - if grep -q "^$device " /proc/mounts; then - mountpoint="$(grep "^$device " /proc/mounts | awk '{print $2; exit}')" - grep "^$device " /proc/mounts | read d mountpoint rest - echo $mountpoint - return 0 - fi + device="$(readlink -f "$device")" + while read dev mountpoint rest; do + dev="$(readlink -f "$dev")" + if [ -n "$dev" -a "$device" = "$dev" ]; then + echo $mountpoint + return 0 + fi + done < /proc/mounts return 1 }