X-Git-Url: http://git.grml.org/?a=blobdiff_plain;f=scripts%2Fboot%2F9990-misc-helpers.sh;h=82099a43c88dc7b5bfc3fbd649fdaaf6ec54d970;hb=f788126730ccd13eeef5a7a97796e001cfc6bb50;hp=fb7c64419ea836f7a4948519fff6f7e7b3754216;hpb=947290a2a0c11f6c37283b40d9b7a9ae89fc8a47;p=live-boot-grml.git diff --git a/scripts/boot/9990-misc-helpers.sh b/scripts/boot/9990-misc-helpers.sh index fb7c644..82099a4 100755 --- a/scripts/boot/9990-misc-helpers.sh +++ b/scripts/boot/9990-misc-helpers.sh @@ -2,21 +2,21 @@ #set -e -is_live_path () +file_pattern_matches() { - DIRECTORY="${1}" - - if [ -d "${DIRECTORY}"/"${LIVE_MEDIA_PATH}" ] - then - for FILESYSTEM in squashfs ext2 ext3 ext4 xfs dir jffs2 - do - if [ "$(echo ${DIRECTORY}/${LIVE_MEDIA_PATH}/*.${FILESYSTEM})" != "${DIRECTORY}/${LIVE_MEDIA_PATH}/*.${FILESYSTEM}" ] - then - return 0 - fi - done - fi + [ -e "$1" ] +} +is_live_path() +{ + DIRECTORY="${1}/${LIVE_MEDIA_PATH}" + for FILESYSTEM in squashfs ext2 ext3 ext4 xfs dir jffs + do + if file_pattern_matches "${DIRECTORY}/"*.${FILESYSTEM} + then + return 0 + fi + done return 1 } @@ -62,32 +62,13 @@ get_backing_device () esac } -match_files_in_dir () -{ - # Does any files match pattern ${1} ? - local pattern - pattern="${1}" - - if [ "$(echo ${pattern})" != "${pattern}" ] - then - return 0 - fi - - return 1 -} - mount_images_in_directory () { directory="${1}" rootmnt="${2}" mac="${3}" - if match_files_in_dir "${directory}/${LIVE_MEDIA_PATH}/*.squashfs" || - match_files_in_dir "${directory}/${LIVE_MEDIA_PATH}/*.ext2" || - match_files_in_dir "${directory}/${LIVE_MEDIA_PATH}/*.ext3" || - match_files_in_dir "${directory}/${LIVE_MEDIA_PATH}/*.ext4" || - match_files_in_dir "${directory}/${LIVE_MEDIA_PATH}/*.jffs2" || - match_files_in_dir "${directory}/${LIVE_MEDIA_PATH}/*.dir" + if is_live_path "${directory}" then [ -n "${mac}" ] && adddirectory="${directory}/${LIVE_MEDIA_PATH}/${mac}" setup_unionfs "${directory}/${LIVE_MEDIA_PATH}" "${rootmnt}" "${adddirectory}" @@ -957,7 +938,7 @@ find_persistence_media () white_listed_devices="${2}" ret="" - black_listed_devices="$(what_is_mounted_on /live/medium)" + black_listed_devices="$(what_is_mounted_on /live/medium) $(what_is_mounted_on /live/findiso) $(what_is_mounted_on /live/fromiso)" for dev in $(storage_devices "${black_listed_devices}" "${white_listed_devices}") do @@ -1008,6 +989,21 @@ find_persistence_media () result=$(probe_for_file_name "${overlays}" ${dev}) if [ -n "${result}" ] then + local loopdevice + loopdevice=${result##*=} + if is_in_comma_sep_list luks ${PERSISTENCE_ENCRYPTION} && is_luks_partition ${loopdevice} + then + local luksfile + luksfile="" + if luksfile=$(open_luks_device "${loopdevice}") + then + result=${result%%=*} + result="${result}=${luksfile}" + else + losetup -d $loopdevice + result="" + fi + fi ret="${ret} ${result}" continue fi @@ -1297,7 +1293,7 @@ get_custom_mounts () continue fi - if [ -n "${DEBUG}" ] && [ -e "${include_list}" ] + if [ -n "${LIVE_BOOT_DEBUG}" ] && [ -e "${include_list}" ] then cp ${include_list} /live/persistence/${persistence_list}.${device_name} fi