diff options
Diffstat (limited to 'helpers/lh_losetup')
-rwxr-xr-x | helpers/lh_losetup | 25 |
1 files changed, 25 insertions, 0 deletions
diff --git a/helpers/lh_losetup b/helpers/lh_losetup new file mode 100755 index 0000000..e99f9e0 --- /dev/null +++ b/helpers/lh_losetup @@ -0,0 +1,25 @@ +#!/bin/sh + +# lh_losetup <device> <file> <partition> + +DEVICE="${1}" +FILE="${2}" +PARTITION="${3}" + +losetup "${DEVICE}" "${FILE}" +FDISK_OUT="`fdisk -l -u ${DEVICE} 2>&1`" +losetup -d "${DEVICE}" + +LOOPDEVICE="`echo ${DEVICE}p${PARTITION:=1}`" +CYL="`echo ${FDISK_OUT} | sed -ne "s_^${LOOPDEVICE}[ *]*\([0-9]*\).*_\1_p" `" +#OFFSET="`expr ${CYL}*512`" +OFFSET="$((CYL*512))" + +echo loop $DEVICE at offset $OFFSET + +if [ "${PARTITION}" = "0" ] +then + losetup "${DEVICE}" "${FILE}" +else + losetup -o "${OFFSET}" "${DEVICE}" "${FILE}" +fi |