1 #! /bin/sh /usr/share/dpatch/dpatch-run
2 ## 12_uuid_support.dpatch by Michael Prokop <prokop@grml-forensic.org>
4 ## DP: This patch enables support for verifying the ISO through bootid=.... bootoption.
5 ## DP: Logic behind bootoptions and possible combinations:
6 ## DP: * bootid.txt + wrong bootid=... => fails to boot
7 ## DP: * bootid.txt + right bootid=... => boots
8 ## DP: * bootid.txt + ignore_bootid => boots
9 ## DP: * bootid.txt + no bootid=... + no ignore_bootid => fails to boot
10 ## DP: * no bootid.txt + no bootid=... + no ignore_bootid => boots
11 ## DP: * no bootid.txt + bootid=... => fails to boot
12 ## DP: * no bootid.txt + ignore_bootid=... => boots
15 diff --git a/scripts/live b/scripts/live
16 index abce3cd..851796c 100755
19 @@ -63,6 +63,11 @@ Arguments ()
24 + BOOTID="${ARGUMENT#bootid=}"
29 DEFCONSOLE="${ARGUMENT#*=}"
31 @@ -140,6 +145,11 @@ Arguments ()
37 + export IGNORE_BOOTID
43 @@ -392,6 +402,42 @@ is_live_path ()
51 + if [ -n "$IGNORE_BOOTID" ] ; then
52 + echo " * Ignoring verification of bootid.txt as requested via ignore_bootid.">>/live.log
56 + if [ -n "$BOOTID" ] && ! [ -r "${path}/conf/bootid.txt" ] ; then
57 + echo " * Warning: bootid=... specified but no bootid.txt found on currently requested device.">>/live.log
61 + [ -r "${path}/conf/bootid.txt" ] || return 0
63 + bootid_conf=$(cat "${path}/conf/bootid.txt")
65 + if [ -z "$BOOTID" -a -z "$IGNORE_BOOTID" ]
67 + echo " * Warning: bootid.txt found but ignore_bootid / bootid=.. bootoption missing...">>/live.log
71 + if [ "$BOOTID" = "$bootid_conf" ]
73 + echo " * Successfully verified /conf/bootid.txt from ISO, continuing... ">>/live.log
75 + echo " * Warning: BOOTID of ISO does not match. Retrying and continuing search...">>/live.log
85 if [ "${IGNORE_UUID}" ] || [ ! -e /conf/uuid.conf ]
86 @@ -1550,7 +1596,7 @@ check_dev ()
89 if is_live_path ${mountpoint} && \
90 - ([ "${skip_uuid_check}" ] || matches_uuid ${mountpoint})
91 + ([ "${skip_uuid_check}" ] || grml_match_bootid ${mountpoint})
95 @@ -1665,19 +1711,6 @@ find_livefs ()
99 - elif [ "${fstype}" = "squashfs" -o \
100 - "${fstype}" = "btrfs" -o \
101 - "${fstype}" = "ext2" -o \
102 - "${fstype}" = "ext3" -o \
103 - "${fstype}" = "ext4" -o \
104 - "${fstype}" = "jffs2" ]
106 - # This is an ugly hack situation, the block device has
107 - # an image directly on it. It's hopefully
108 - # live-boot, so take it and run with it.
109 - ln -s "${devname}" "${devname}.${fstype}"
110 - echo "${devname}.${fstype}"