From 56ac3ff5ec3730d0dcf04d5af7145446a0143b9b Mon Sep 17 00:00:00 2001 From: Daniel Baumann Date: Fri, 28 Sep 2007 20:54:10 +0200 Subject: [PATCH] Merging casper 1.106. --- docs/ChangeLog.casper | 12 ++++++++++++ scripts/live | 12 ++++++------ scripts/live-bottom/01integrity_check | 11 +++++++---- scripts/live-bottom/24preseed | 9 +++++++++ 4 files changed, 34 insertions(+), 10 deletions(-) diff --git a/docs/ChangeLog.casper b/docs/ChangeLog.casper index f4f8cfd..08daa0e 100644 --- a/docs/ChangeLog.casper +++ b/docs/ChangeLog.casper @@ -1,3 +1,15 @@ +casper (1.106) gutsy; urgency=low + + * Support preseed/early_command; code supplied here will be run using 'sh + -c' from casper-bottom, and can chroot to /root if needed (LP: #144845). + * Make sure we don't accidentally continue to boot if casper-md5check + fails (LP: #82856). + * Clear out debconf database backup files after preseeding to save memory + (LP: #43706). + * Mount everything as noatime to avoid unnecessary metadata writes. + + -- Colin Watson Fri, 28 Sep 2007 15:27:52 +0100 + casper (1.105) gutsy; urgency=low * scripts/casper-bottom/36disable_trackerd: Disable trackerd in the live diff --git a/scripts/live b/scripts/live index d4b253b..975c03d 100755 --- a/scripts/live +++ b/scripts/live @@ -727,7 +727,7 @@ do_snap_copy () if [ -n "${fstype}" ] then # Copying stuff... - mount -t "${fstype}" -o ro "${fromdev}" "${tomount}" + mount -t "${fstype}" -o ro,noatime "${fromdev}" "${tomount}" cp -a "${tomount}"/* ${todir} umount "${tomount}" else @@ -903,7 +903,7 @@ setup_unionfs () mkdir -p "${croot}/${imagename}" echo "debug: Can not mount backdev ${backdev} (image = ${image}) on croot/imagename ${croot}/${imagename}" - mount -t "${fstype}" -o ro "${backdev}" "${croot}/${imagename}" || panic "Can not mount ${backdev} (${image}) on ${croot}/${imagename}" && rofsstring="${croot}/${imagename}=${roopt}:${rofsstring}" && rofslist="${croot}/${imagename} ${rofslist}" + mount -t "${fstype}" -o ro,noatime "${backdev}" "${croot}/${imagename}" || panic "Can not mount ${backdev} (${image}) on ${croot}/${imagename}" && rofsstring="${croot}/${imagename}=${roopt}:${rofsstring}" && rofslist="${croot}/${imagename} ${rofslist}" fi done @@ -927,9 +927,9 @@ setup_unionfs () fi fi - mount ${cowdevice} -t ${cow_fstype} -o rw /cow || panic "Can not mount ${cowdevice} on /cow" + mount ${cowdevice} -t ${cow_fstype} -o rw,noatime /cow || panic "Can not mount ${cowdevice} on /cow" - mount -t ${UNIONTYPE} -o dirs=/cow=rw:${rofsstring} ${UNIONTYPE} "${rootmnt}" || panic "${UNIONTYPE} mount failed" + mount -t ${UNIONTYPE} -o noatime,dirs=/cow=rw:${rofsstring} ${UNIONTYPE} "${rootmnt}" || panic "${UNIONTYPE} mount failed" # Adding other custom mounts if [ -n "${PERSISTENT}" ] @@ -940,7 +940,7 @@ setup_unionfs () if [ -b "${homecow}" ] then - mount -t $(get_fstype "${homecow}") -o rw "${homecow}" "${rootmnt}/home" + mount -t $(get_fstype "${homecow}") -o rw,noatime "${homecow}" "${rootmnt}/home" export HOMEMOUNTED=1 # used to proper calculate free space in do_snap_copy() else [ "${quiet}" != "y" ] && log_warning_msg "Unable to find the persistent home medium" @@ -994,7 +994,7 @@ check_dev () if is_supported_fs ${fstype} then - mount -t ${fstype} -o ro "${devname}" ${mountpoint} || continue + mount -t ${fstype} -o ro,noatime "${devname}" ${mountpoint} || continue if is_live_path ${mountpoint} then diff --git a/scripts/live-bottom/01integrity_check b/scripts/live-bottom/01integrity_check index 4ac847f..e4710f3 100755 --- a/scripts/live-bottom/01integrity_check +++ b/scripts/live-bottom/01integrity_check @@ -20,7 +20,10 @@ esac # live-initramfs script -grep -qs integrity-check /proc/cmdline || exit 0 - -cd /live/image -md5sum -c md5sum.txt < /dev/tty8 +if grep -qs integrity-check /proc/cmdline +then + cd /live/image + md5sum -c md5sum.txt < /dev/tty8 > /dev/tty8 + reboot + while :; do sleep 60; done +fi diff --git a/scripts/live-bottom/24preseed b/scripts/live-bottom/24preseed index f4b2db0..3d0bdaf 100755 --- a/scripts/live-bottom/24preseed +++ b/scripts/live-bottom/24preseed @@ -52,6 +52,15 @@ then done fi +reply="$(echo "GET preseed/early_command" | chroot /root debconf-communicate -fnoninteractive casper)" +if [ "${reply#0 }" != "$reply" ]; then + reply="${reply#0 }" + sh -c "$reply" +fi + +# Clear out debconf database backup files to save memory. +rm -f /root/var/cache/debconf/*.dat-old + log_end_msg exit 0 -- 2.1.4