diff options
author | Gerardo Exequiel Pozzi <vmlinuz386@yahoo.com.ar> | 2011-08-12 00:10:44 -0300 |
---|---|---|
committer | Gerardo Exequiel Pozzi <vmlinuz386@yahoo.com.ar> | 2011-08-15 01:07:31 -0300 |
commit | 90cfe3ce2ce35382595223bf8d264fee63e86df5 (patch) | |
tree | a487b8010b3f96b857cb3c222f5ba6591841096e /archiso/hooks | |
parent | 12e9d32435c0d3c40168c3fea1b6092825227497 (diff) | |
download | archiso32-90cfe3ce2ce35382595223bf8d264fee63e86df5.tar.xz |
[archiso] Add checksum= boot param
Signed-off-by: Gerardo Exequiel Pozzi <vmlinuz386@yahoo.com.ar>
Diffstat (limited to 'archiso/hooks')
-rw-r--r-- | archiso/hooks/archiso | 26 |
1 files changed, 26 insertions, 0 deletions
diff --git a/archiso/hooks/archiso b/archiso/hooks/archiso index 66dbafd..c973ffc 100644 --- a/archiso/hooks/archiso +++ b/archiso/hooks/archiso @@ -77,6 +77,16 @@ _mnt_sfs() { fi } +_verify_checksum() { + local _status + cd "/bootmnt/${archisobasedir}" + md5sum -c checksum.md5 > /checksum.log 2>&1 + _status=$? + cd "${OLDPWD}" + return ${_status} +} + + run_hook() { [[ -z "${arch}" ]] && arch="$(uname -m)" [[ -z "${cowspace_size}" ]] && cowspace_size="75%" @@ -135,6 +145,22 @@ archiso_mount_handler() { launch_interactive_shell fi + if [[ "${checksum}" == "y" ]]; then + if [[ -f "/bootmnt/${archisobasedir}/checksum.md5" ]]; then + msg -n ":: Self-test requested, please wait..." + if _verify_checksum; then + msg "done. Checksum is OK, continue booting." + else + echo "ERROR: one or more files are corrupted" + echo "see /checksum.log for details" + launch_interactive_shell + fi + else + echo "ERROR: checksum=y option specified but checksum.md5 not found" + launch_interactive_shell + fi + fi + if [[ "${copytoram}" == "y" ]]; then msg -n ":: Mounting /copytoram (tmpfs) filesystem, size=${copytoram_size}..." mount -t tmpfs -o "size=${copytoram_size}",mode=0755 copytoram /copytoram |