diff options
| author | Marco Amadori <amadorim@vdavda.com> | 2008-12-02 08:57:48 +0100 |
|---|---|---|
| committer | Daniel Baumann <daniel@debian.org> | 2011-03-09 17:48:03 +0100 |
| commit | a8b795f00da8ab5952ef11f1f4ef170d47591c98 (patch) | |
| tree | 41051e297f8783445ba6dc5793a7c79d39ba6721 /scripts | |
| parent | cc1a753fc487f60c14619d9dcd6cf5a756f831c1 (diff) | |
| download | live-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-x | scripts/live | 36 | ||||
| -rwxr-xr-x | scripts/live-bottom/01integrity_check | 29 |
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 |
