X-Git-Url: http://git.grml.org/?a=blobdiff_plain;f=scripts%2Fboot%2F9990-misc-helpers.sh;h=358448b20e5559168c4e18346c88dc69e48261ad;hb=5701a2b39947f1a512c3140894ffd8cc80457922;hp=cc39fcbb230984b267b9d4f1ded11f126c98bc36;hpb=2e70d7be610c9e45787c37352d36241de3c155d7;p=live-boot-grml.git diff --git a/scripts/boot/9990-misc-helpers.sh b/scripts/boot/9990-misc-helpers.sh index cc39fcb..358448b 100755 --- a/scripts/boot/9990-misc-helpers.sh +++ b/scripts/boot/9990-misc-helpers.sh @@ -99,16 +99,7 @@ is_nice_device () { sysfs_path="${1#/sys}" - if [ -e /lib/udev/path_id ] - then - # squeeze - PATH_ID="/lib/udev/path_id" - else - # wheezy/sid (udev >= 174) - PATH_ID="/sbin/udevadm test-builtin path_id" - fi - - if ${PATH_ID} "${sysfs_path}" | egrep -q "ID_PATH=(usb|pci-[^-]*-(ide|sas|scsi|usb|virtio)|platform-sata_mv|platform-orion-ehci|platform-mmc|platform-mxsdhci)" + if /sbin/udevadm test-builtin path_id "${sysfs_path}" | egrep -q "ID_PATH=(usb|pci-[^-]*-(ide|sas|scsi|usb|virtio)|platform-sata_mv|platform-orion-ehci|platform-mmc|platform-mxsdhci)" then return 0 elif echo "${sysfs_path}" | grep -q '^/block/vd[a-z]$' @@ -911,7 +902,9 @@ probe_for_file_name () then echo ${ret} else + # unmount and remove mountpoint umount ${backing} > /dev/null 2>&1 || true + rmdir ${backing} > /dev/null 2>&1 || true fi } @@ -938,7 +931,7 @@ find_persistence_media () local white_listed_devices="${2}" local ret="" - local black_listed_devices="$(what_is_mounted_on /live/image)" + local black_listed_devices="$(what_is_mounted_on /live/medium)" for dev in $(storage_devices "${black_listed_devices}" "${white_listed_devices}") do @@ -1231,7 +1224,7 @@ do_union () get_custom_mounts () { - # Side-effect: leaves $devices with live-persistence.conf mounted in /live/persistence + # Side-effect: leaves $devices with persistence.conf mounted in /live/persistence # Side-effect: prints info to file $custom_mounts local custom_mounts=${1} @@ -1256,9 +1249,14 @@ get_custom_mounts () continue fi - local include_list="${backing}/${persistence_list}" - if [ ! -r "${include_list}" ] + local include_list + if [ -r "${backing}/${persistence_list}" ] + then + include_list="${backing}/${persistence_list}" + elif [ -r "${backing}/${old_persistence_list}" ] then + include_list="${backing}/${old_persistence_list}" + else continue fi @@ -1304,7 +1302,7 @@ get_custom_mounts () local source="${dir}" if [ -n "${opt_source}" ] then - if echo ${opt_source} | grep -q -e "^/" -e "^\(.*/\)\?\.\.\?\(/.*\)\?$" && [ "${source}" != "." ] + if echo ${opt_source} | grep -q -e "^/" -e "^\(.*/\)\?\.\.\?\(/.*\)\?$" && [ "${opt_source}" != "." ] then log_warning_msg "Skipping unsafe custom mount with option source=${opt_source}: must be either \".\" (the media root) or a relative path w.r.t. the media root that contains neither comas, nor the special \".\" and \"..\" path components" continue @@ -1440,23 +1438,23 @@ activate_custom_mounts () fi # XXX: If CONFIG_AUFS_ROBR is added to the Debian kernel we can - # ignore the loop below and set rofs_dest_backing=$dest - local rofs_dest_backing="" + # ignore the loop below and set rootfs_dest_backing=$dest + local rootfs_dest_backing="" if [ -n "${opt_link}"] then - for d in /live/rofs/* + for d in /live/rootfs/* do if [ -n "${rootmnt}" ] then - rofs_dest_backing="${d}/$(echo ${dest} | sed -e "s|${rootmnt}||")" + rootfs_dest_backing="${d}/$(echo ${dest} | sed -e "s|${rootmnt}||")" else - rofs_dest_backing="${d}/${dest}" + rootfs_dest_backing="${d}/${dest}" fi - if [ -d "${rofs_dest_backing}" ] + if [ -d "${rootfs_dest_backing}" ] then break else - rofs_dest_backing="" + rootfs_dest_backing="" fi done fi @@ -1479,18 +1477,18 @@ activate_custom_mounts () mkdir -p ${cow_dir} chown_ref "${source}" "${cow_dir}" chmod_ref "${source}" "${cow_dir}" - do_union ${links_source} ${cow_dir} ${source} ${rofs_dest_backing} + do_union ${links_source} ${cow_dir} ${source} ${rootfs_dest_backing} link_files ${links_source} ${dest} ${rootmnt} elif [ -n "${opt_union}" ] && [ -z "${PERSISTENCE_READONLY}" ] then - do_union ${dest} ${source} ${rofs_dest_backing} + do_union ${dest} ${source} ${rootfs_dest_backing} elif [ -n "${opt_bind}" ] && [ -z "${PERSISTENCE_READONLY}" ] then mount --bind "${source}" "${dest}" elif [ -n "${opt_bind}" -o -n "${opt_union}" ] && [ -n "${PERSISTENCE_READONLY}" ] then # bind-mount and union mount are handled the same - # in read-only mode, but note that rofs_dest_backing + # in read-only mode, but note that rootfs_dest_backing # is non-empty (and necessary) only for unions if [ -n "${rootmnt}" ] then @@ -1510,7 +1508,7 @@ activate_custom_mounts () mkdir -p ${cow_dir} chown_ref "${source}" "${cow_dir}" chmod_ref "${source}" "${cow_dir}" - do_union ${dest} ${cow_dir} ${source} ${rofs_dest_backing} + do_union ${dest} ${cow_dir} ${source} ${rootfs_dest_backing} fi PERSISTENCE_IS_ON="1" @@ -1525,31 +1523,6 @@ activate_custom_mounts () echo ${used_devices} } -fix_backwards_compatibility () -{ - local device=${1} - local dir=${2} - local opt=${3} - - if [ -n "${PERSISTENCE_READONLY}" ] - then - return - fi - - local backing="$(mount_persistence_media ${device})" - if [ -z "${backing}" ] - then - return - fi - - local include_list="${backing}/${persistence_list}" - if [ ! -r "${include_list}" ] - then - echo "# persistence backwards compatibility: -${dir} ${opt},source=." > "${include_list}" - fi -} - is_mountpoint () { directory="$1"