diff options
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 |