+++ /dev/null
-#!/bin/bash
-
-# $1 disk name
-# $2 disk size
-function allocate_disk() {
- local disk
- local size
-
- disk=$1
- size=$2
-
- size=$((size+511))
- size=$((size/512))
-
- dd if=/dev/zero of=$disk bs=512 count=$size
- sync
-}
-
-# $1 disk name
-# print loop device name
-function create_loop() {
- local disk
- local loop
-
- disk=`readlink -f $1`
-
- losetup -f $disk
- loop=`losetup -a | grep $disk | cut -d : -f 1`
- echo $loop
-}
-
-# $1 disk name
-# print loop device name of the partition
-function create_one_partition() {
- local disk
- local dev
-
- disk=$1
- echo -e "o\nn\np\n1\n\n\nw" | fdisk $disk &>/dev/null
- dev=`scripts/lopartsetup $disk | head -1 | cut -d ":" -f 1`
- echo $dev
-}
+++ /dev/null
-#!/usr/bin/env bash
-#
-# Need root privileges
-#
-# Create loop devices corresponding to partitions within an existing
-# file.
-#
-
-set -e
-
-function _help() {
- echo "Usage: lopartsetup file"
-}
-
-function _create_loop_device() {
- local devnode
- local filename
- local offset
- local index
-
- filename="$1"
- index="$2"
- offset="$3"
-
- devnode="`losetup -f 2>/dev/null`"
- if [[ -z "$devnode" ]]
- then
- echo "no loop devices available"
- exit 1
- fi
-
- echo "$devnode: partition $index of $filename"
- losetup "$devnode" "$filename" -o "$offset"
-}
-
-if [[ $# -lt 1 ]]
-then
- _help
- exit 1
-fi
-
-if [[ -f "$1" && -r "$1" ]]
-then
- filename="$1"
- shift
-else
- echo invalid image file
- exit 1
-fi
-
-if [[ ! "`file -b $filename`" = *"boot sector"* ]]
-then
- echo "$filename does not have a partition table"
- exit 1
-fi
-
-unitstring=""
-column=0
-if [ `fdisk -lu $filename 2>/dev/null | grep -e "^Units = " | wc -l` -eq 1 ]
-then
- unitstring="^Units = "
- column=9
-elif [ `fdisk -lu $filename 2>/dev/null | grep -e "^Units:" | wc -l` -eq 1 ]
-then
- unitstring="^Units:"
- column=8
-else
- exit 1
-fi
-
-unit="`fdisk -lu $filename 2>/dev/null | grep -e "$unitstring" | cut -d " " -f $column`"
-
-index=0
-for i in "`fdisk -lu $filename 2>/dev/null | grep -e "^$filename"`"
-do
- index=$((index+1))
- offset=`echo "$i" | tr -s " " | cut -d " " -f 2`
- if [[ "$offset" == "*" ]]
- then
- offset=`echo "$i" | tr -s " " | cut -d " " -f 3`
- fi
- offset=$((unit*offset))
-
- _create_loop_device "$filename" "$index" "$offset"
-done
-
-exit 0