X-Git-Url: http://git.grml.org/?a=blobdiff_plain;f=scripts%2Flive-helpers;h=b0ad4b67ded176976aefa3476d79de194510d25f;hb=47661c5babc6b313319a6b2896d5413d8bfdb3cc;hp=771ab85aedd9fa9f89e960c179576927b18bb687;hpb=9211faa0a71579dcf6c4f193804dd5443bb40bf9;p=live-boot-grml.git diff --git a/scripts/live-helpers b/scripts/live-helpers index 771ab85..b0ad4b6 100644 --- a/scripts/live-helpers +++ b/scripts/live-helpers @@ -234,7 +234,7 @@ find_cow_device () pers_label="${1}" cow_backing="/${pers_label}-backing" - for sysblock in $(echo /sys/block/* | tr ' ' '\n' | grep -v loop) + for sysblock in $(echo /sys/block/* | tr ' ' '\n' | grep -v loop | grep -v ram) do for dev in $(subdevices "${sysblock}") do @@ -244,20 +244,24 @@ find_cow_device () then echo "${devname}" return - elif [ "$(get_fstype ${devname})" = "vfat" ] - then - # FIXME: all supported block devices should be scanned - mkdir -p "${cow_backing}" - try_mount "${devname}" "${cow_backing}" "rw" - - if [ -e "${cow_backing}/${pers_label}" ] - then - echo $(setup_loop "${cow_backing}/${pers_label}" "loop" "/sys/block/loop*") - return 0 - else - umount ${cow_backing} - fi fi + + case "$(get_fstype ${devname})" in + vfat|ext2|ext3|jffs2) + mkdir -p "${cow_backing}" + try_mount "${devname}" "${cow_backing}" "rw" + + if [ -f "${cow_backing}/${pers_label}" ] + then + echo $(setup_loop "${cow_backing}/${pers_label}" "loop" "/sys/block/loop*") + return 0 + else + umount ${cow_backing} + fi + ;; + *) + ;; + esac done done } @@ -270,30 +274,31 @@ find_files () filenames="${1}" snap_backing="/snap-backing" - for sysblock in $(echo /sys/block/* | tr ' ' '\n' | grep -v loop) + for sysblock in $(echo /sys/block/* | tr ' ' '\n' | grep -v loop | grep -v ram) do for dev in $(subdevices "${sysblock}") do devname=$(sys2dev "${dev}") devfstype="$(get_fstype ${devname})" - if [ "${devfstype}" = "vfat" ] || [ "${devfstype}" = "ext2" ] || [ "${devfstype}" = "ext3" ] || [ "${devfstype}" = "jffs2" ] - then - # FIXME: all supported block devices should be scanned - mkdir -p "${snap_backing}" - try_mount "${devname}" "${snap_backing}" "ro" - - for filename in ${filenames} - do - if [ -e "${snap_backing}/${filename}" ] - then - echo "${devname} ${snap_backing} ${filename}" - return 0 - fi - done - - umount ${snap_backing} - fi + case "${devfstype}" in + vfat|ext2|ext3|jffs2) + # FIXME: all supported block devices should be scanned + mkdir -p "${snap_backing}" + try_mount "${devname}" "${snap_backing}" "ro" + + for filename in ${filenames} + do + if [ -f "${snap_backing}/${filename}" ] + then + echo "${devname} ${snap_backing} ${filename}" + return 0 + fi + done + + umount ${snap_backing} + ;; + esac done done }