#!/bin/sh # lh_losetup if [ -z "${1}" ] then DEVICE="`losetup -f`" else DEVICE="${1}" fi 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 512 '*' ${CYL}`" OFFSET="$((CYL*512))" echo loop $DEVICE at offset $OFFSET if [ "${PARTITION}" = "0" ] then losetup "${DEVICE}" "${FILE}" else losetup -o "${OFFSET}" "${DEVICE}" "${FILE}" fi