summaryrefslogtreecommitdiff
path: root/helpers/lh_losetup
diff options
context:
space:
mode:
Diffstat (limited to 'helpers/lh_losetup')
-rwxr-xr-xhelpers/lh_losetup25
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