X-Git-Url: http://git.grml.org/?a=blobdiff_plain;f=scripts%2Flive;h=27221ef79bd4d0b46c5f6d3ba93dbbf7fdd9e322;hb=6bfe95a7c93d84d0a2f9071bbe3809c173287402;hp=b1157c57d030b1722b83fa10c7e52df6e7a3a77b;hpb=aaef53af49f57c7feccb7ed2eb4297e730d0e7a6;p=live-boot-grml.git diff --git a/scripts/live b/scripts/live index b1157c5..27221ef 100755 --- a/scripts/live +++ b/scripts/live @@ -79,6 +79,11 @@ Arguments () export USERFULLNAME LIVECONF ;; + ignore_uuid) + IGNORE_UUID="Yes" + export IGNORE_UUID + ;; + ip=*) STATICIP="${ARGUMENT#ip=}" @@ -434,6 +439,31 @@ is_live_path () return 1 } +matches_uuid () +{ + if [ "${IGNORE_UUID}" ] || [ ! -e /conf/uuid.conf ] + then + return 0 + fi + + path="${1}" + uuid="$(cat /conf/uuid.conf)" + + for try_uuid_file in "${mountpoint}/.disk/casper-uuid"* + do + [ -e "${try_uuid_file}" ] || continue + + try_uuid="$(cat "${try_uuid_file}")" + + if [ "${uuid}" = "${try_uuid}" ] + then + return 0 + fi + done + + return 1 +} + get_backing_device () { case "${1}" in @@ -983,6 +1013,7 @@ check_dev () { sysdev="${1}" devname="${2}" + skip_uuid_check="${3}" if [ -z "${devname}" ] then @@ -1001,7 +1032,8 @@ check_dev () then mount -t ${fstype} -o ro,noatime "${devname}" ${mountpoint} || continue - if is_live_path ${mountpoint} + if is_live_path ${mountpoint} && \ + ([ "${skip_uuid_check}" ] || matches_uuid ${mountpoint}) then echo ${mountpoint} return 0 @@ -1025,7 +1057,7 @@ find_livefs () # first look at the one specified in the command line if [ ! -z "${LIVE_MEDIA}" ] then - if check_dev "null" "${LIVE_MEDIA}" + if check_dev "null" "${LIVE_MEDIA}" "skip_uuid_check" then return 0 fi