diff options
author | Daniel Baumann <daniel@debian.org> | 2009-11-22 14:36:42 +0100 |
---|---|---|
committer | Daniel Baumann <daniel@debian.org> | 2009-11-22 14:38:00 +0100 |
commit | a62f12110b19a52a58d7eae871012202cfa16055 (patch) | |
tree | 0bd188079c808ee8956fb5304c46ce8266b49f75 /functions/losetup.sh | |
download | vyos-live-build-a62f12110b19a52a58d7eae871012202cfa16055.tar.gz vyos-live-build-a62f12110b19a52a58d7eae871012202cfa16055.zip |
Renaming categories to archive areas (Closes: #519690).
Diffstat (limited to 'functions/losetup.sh')
-rwxr-xr-x | functions/losetup.sh | 52 |
1 files changed, 52 insertions, 0 deletions
diff --git a/functions/losetup.sh b/functions/losetup.sh new file mode 100755 index 000000000..1b1f61f42 --- /dev/null +++ b/functions/losetup.sh @@ -0,0 +1,52 @@ +#!/bin/sh + +# losetup - wrapper around losetup +# Copyright (C) 2006-2009 Daniel Baumann <daniel@debian.org> +# +# live-helper comes with ABSOLUTELY NO WARRANTY; for details see COPYING. +# This is free software, and you are welcome to redistribute it +# under certain conditions; see COPYING for details. + +Losetup () +{ + DEVICE="${1}" + FILE="${2}" + PARTITION="${3:-1}" + + ${LH_ROOT_COMMAND} ${LH_LOSETUP} "${DEVICE}" "${FILE}" + FDISK_OUT="$(${LH_FDISK} -l -u ${DEVICE} 2>&1)" + ${LH_ROOT_COMMAND} ${LH_LOSETUP} -d "${DEVICE}" + + LOOPDEVICE="$(echo ${DEVICE}p${PARTITION})" + + if [ "${PARTITION}" = "0" ] + then + Echo_message "Mounting %s with offset 0" "${DEVICE}" + + ${LH_ROOT_COMMAND} ${LH_LOSETUP} "${DEVICE}" "${FILE}" + else + SECTORS="$(echo "$FDISK_OUT" | sed -ne "s|^$LOOPDEVICE[ *]*\([0-9]*\).*|\1|p")" + OFFSET="$(expr ${SECTORS} '*' 512)" + + Echo_message "Mounting %s with offset %s" "${DEVICE}" "${OFFSET}" + + ${LH_ROOT_COMMAND} ${LH_LOSETUP} -o "${OFFSET}" "${DEVICE}" "${FILE}" + fi +} + +Calculate_partition_size () +{ + ORIGINAL_SIZE="${1}" + FILESYSTEM="${2}" + + case "${FILESYSTEM}" in + ext2|ext3) + PERCENT="5" + ;; + *) + PERCENT="3" + ;; + esac + + echo $(expr ${ORIGINAL_SIZE} + ${ORIGINAL_SIZE} \* ${PERCENT} / 100 + 1) +} |