+casper (1.108) gutsy; urgency=low
+
+ * If CASPER_GENERATE_UUID is set, generate a random UUID in the initramfs,
+ and check it against the discovered medium (unless booting with the
+ ignore_uuid parameter). This allows live CD images to be safely copied
+ to the hard disk without causing problems when booting future live CDs
+ (LP: #144800).
+
+ -- Colin Watson <cjwatson@ubuntu.com> Thu, 04 Oct 2007 14:23:37 +0100
+
casper (1.107) gutsy; urgency=low
* Fix gconf keys for suspend and hibernate (thanks, Oliver Grawert;
then
copy_exec /usr/bin/wget /bin
fi
+
+if [ "$CASPER_GENERATE_UUID" ]; then
+ # Unique ID
+ mkdir -p $DESTDIR/conf
+ uuidgen -r > $DESTDIR/conf/uuid.conf
+fi
Those parameters lets you override values read from the config file.
+ ignore_uuid
+
+Do not check that any UUID embedded in the initramfs matches the discovered medium.
+casper may be told to generate a UUID by setting CASPER_GENERATE_UUID=1 when building the initramfs.
+
integrity-check::
If specified, an MD5 sum is calculated on the live media during boot and
export USERFULLNAME LIVECONF
;;
+ ignore_uuid)
+ IGNORE_UUID="Yes" ;;
+
ip=*)
STATICIP="${ARGUMENT#ip=}"
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
{
sysdev="${1}"
devname="${2}"
+ skip_uuid_check="${3}"
if [ -z "${devname}" ]
then
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
# 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