summaryrefslogtreecommitdiff
path: root/helpers/lh_losetup
diff options
context:
space:
mode:
authorDaniel Baumann <daniel@debian.org>2007-09-23 10:04:40 +0200
committerDaniel Baumann <daniel@debian.org>2007-09-23 10:04:40 +0200
commit6f5e2da03e5fd1af2200d2f55ca84647bc8d3626 (patch)
treee2a861c1995eea707b2ac1c72930351191714493 /helpers/lh_losetup
parent9a9491318d4a0469e4c97b28879ab34391c39095 (diff)
downloadlive-build-6f5e2da03e5fd1af2200d2f55ca84647bc8d3626.zip
live-build-6f5e2da03e5fd1af2200d2f55ca84647bc8d3626.tar.gz
Adding live-package 0.99.22-1.
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