summaryrefslogtreecommitdiff
path: root/scripts
diff options
context:
space:
mode:
authorMarco Amadori <amadorim@vdavda.com>2008-12-02 08:57:48 +0100
committerDaniel Baumann <daniel@debian.org>2011-03-09 17:48:03 +0100
commita8b795f00da8ab5952ef11f1f4ef170d47591c98 (patch)
tree41051e297f8783445ba6dc5793a7c79d39ba6721 /scripts
parentcc1a753fc487f60c14619d9dcd6cf5a756f831c1 (diff)
downloadlive-boot-a8b795f00da8ab5952ef11f1f4ef170d47591c98.tar.gz
live-boot-a8b795f00da8ab5952ef11f1f4ef170d47591c98.zip
Reworked integrity-check (Closes: #507477).
* Changes: - it reboots only if it succeed, otherwise it panics. - it checks md5sum just after media is mounted, not after /root is mounted. This allow a faster and safer reboot.
Diffstat (limited to 'scripts')
-rwxr-xr-xscripts/live36
-rwxr-xr-xscripts/live-bottom/01integrity_check29
2 files changed, 36 insertions, 29 deletions
diff --git a/scripts/live b/scripts/live
index 389fc21..eb279f6 100755
--- a/scripts/live
+++ b/scripts/live
@@ -109,6 +109,11 @@ Arguments ()
export IGNORE_UUID
;;
+ integrity-check)
+ INTEGRITY_CHECK="Yes"
+ export INTEGRITY_CHECK
+ ;;
+
ip=*)
STATICIP="${ARGUMENT#ip=}"
@@ -1426,6 +1431,32 @@ set_usplash_timeout ()
fi ; fi
}
+integrity_check ()
+{
+ media_mountpoint="${1}"
+
+ log_begin_msg "Checking media integrity"
+
+ cd ${media_mountpoint}
+ /bin/md5sum -c md5sum.txt < /dev/tty8 > /dev/tty8
+ RC="${?}"
+
+ log_end_msg
+
+ if [ "${RC}" -eq 0 ]
+ then
+ log_success_msg "Everything ok, will reboot in 10 seconds."
+ sleep 10
+ cd /
+ umount ${media_mountpoint}
+ sync
+ echo u > /proc/sysrq-trigger
+ echo b > /proc/sysrq-trigger
+ else
+ panic "Not ok, a media defect is likely, switch to VT8 for details."
+ fi
+}
+
mountroot ()
{
if [ -x /scripts/local-top/cryptroot ]; then
@@ -1492,6 +1523,11 @@ mountroot ()
panic "Unable to find a medium containing a live file system"
fi
+ if [ "${INTEGRITY_CHECK}" ]
+ then
+ integrity_check "${livefs_root}"
+ fi
+
if [ "${TORAM}" ]
then
live_dest="ram"
diff --git a/scripts/live-bottom/01integrity_check b/scripts/live-bottom/01integrity_check
deleted file mode 100755
index e4710f3..0000000
--- a/scripts/live-bottom/01integrity_check
+++ /dev/null
@@ -1,29 +0,0 @@
-#!/bin/sh
-
-#set -e
-
-# initramfs-tools header
-
-PREREQ=""
-
-prereqs()
-{
- echo "${PREREQ}"
-}
-
-case "${1}" in
- prereqs)
- prereqs
- exit 0
- ;;
-esac
-
-# live-initramfs script
-
-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