X-Git-Url: http://git.grml.org/?a=blobdiff_plain;f=scripts%2Flive-helpers;h=59bdb4fd673c9dc4c4d631b159af394ee5448915;hb=4cd6c6da3f64150a41dabd41148012377bbf0390;hp=f6b8b8bf15fbe75c69ee1e3243b121f520d5bb0f;hpb=e0a050e3bcf51cf0bb1df9490487e0619d4aa9f9;p=live-boot-grml.git diff --git a/scripts/live-helpers b/scripts/live-helpers index f6b8b8b..59bdb4f 100644 --- a/scripts/live-helpers +++ b/scripts/live-helpers @@ -6,10 +6,19 @@ then export PATH="${PATH}:/usr/lib/klibc/bin" fi +# handle upgrade path from old udev (using udevinfo) to +# recent versions of udev (using udevadm info) +if [ -x /sbin/udevadm ] +then + udevinfo='/sbin/udevadm info' +else + udevinfo='udevinfo' +fi + sys2dev () { sysdev=${1#/sys} - echo "/dev/$(udevinfo -q name -p ${sysdev} 2>/dev/null|| echo ${sysdev##*/})" + echo "/dev/$($udevinfo -q name -p ${sysdev} 2>/dev/null|| echo ${sysdev##*/})" } subdevices () @@ -77,7 +86,7 @@ get_fstype () return fi - eval $(fstype < ${1} 2>/dev/null) + eval $(fstype ${1} 2>/dev/null) if [ "${FSTYPE}" != "unknown" ] then @@ -206,7 +215,7 @@ setup_loop () dev=$(sys2dev "${loopdev}") options='' - if [ -n ${readonly} ] + if [ -n "${readonly}" ] then if losetup --help 2>&1 | grep -q -- "-r\b" then @@ -299,6 +308,13 @@ find_cow_device () cow_backing="/${pers_label}-backing" black_listed_devices="${2}" + if [ -z "${PERSISTENT_PATH}" ] + then + pers_fpath=${cow_backing}/${pers_label} + else + pers_fpath=${cow_backing}/${PERSISTENT_PATH}/${pers_label} + fi + for sysblock in $(echo /sys/block/* | tr ' ' '\n' | grep -v loop | grep -v ram | grep -v fd) do for dev in $(subdevices "${sysblock}") @@ -325,16 +341,16 @@ find_cow_device () fi case "$(get_fstype ${devname})" in - vfat|ext2|ext3|jffs2) + vfat|ext2|ext3|ext4|jffs2) mkdir -p "${cow_backing}" if ! try_mount "${devname}" "${cow_backing}" "rw" then break fi - if [ -f "${cow_backing}/${pers_label}" ] + if [ -f "${pers_fpath}" ] then - echo $(setup_loop "${cow_backing}/${pers_label}" "loop" "/sys/block/loop*") + echo $(setup_loop "${pers_fpath}" "loop" "/sys/block/loop*") return 0 else umount ${cow_backing}