X-Git-Url: https://git.grml.org/?a=blobdiff_plain;f=scripts%2Flive;h=16a54c2059206d6750fd69acd2a46048dfa15ca3;hb=f197369a2f2a0078e58b869f5884254d138e5894;hp=ebac3aec7d87149fe97896ce1f68983676fcf583;hpb=12f41659d6b3a30451d293f4ae5d3f385c8662e0;p=live-boot-grml.git diff --git a/scripts/live b/scripts/live index ebac3ae..16a54c2 100755 --- a/scripts/live +++ b/scripts/live @@ -79,6 +79,9 @@ Arguments () export USERFULLNAME LIVECONF ;; + ignore_uuid) + IGNORE_UUID="Yes" ;; + ip=*) STATICIP="${ARGUMENT#ip=}" @@ -434,6 +437,22 @@ 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 +1002,7 @@ check_dev () { sysdev="${1}" devname="${2}" + skip_uuid_check="${3}" if [ -z "${devname}" ] then @@ -1002,7 +1022,8 @@ check_dev () mount -t ${fstype} -o ro,noatime,nodiratime "${devname}" ${mountpoint} || continue if is_live_path ${mountpoint} - then + if is_live_path $mountpoint && \ + ([ "$skip_uuid_check" ] || matches_uuid $mountpoint); then echo ${mountpoint} return 0 else @@ -1025,7 +1046,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