#!/bin/bash IMG_FILE=rootfs.img IMG_SIZE=100 # MB function log() { echo "$*" } function yes_or_no() { while true; do read -p "$* [y/n]: " yn case $yn in [Yy]*) return 0 ;; [Nn]*) echo "Aborted" return 1 ;; esac done } function setup_lb() { sudo losetup -fP --show ${IMG_FILE} } if [ ! -d mnt ]; then mkdir mnt fi if [ -f "${IMG_FILE}" ]; then log "${IMG_FILE} already exists" if ! yes_or_no "Continue?"; then exit 1 fi fi # build img dd if=/dev/zero of=${IMG_FILE} bs=1M count=${IMG_SIZE} parted -s ${IMG_FILE} mktable msdos parted -s ${IMG_FILE} mkpart primary ext2 0 100% LB_DEV="$(setup_lb)" if [ -z "${LB_DEV}" ]; then log "Failed to setup loobback" exit 1 fi sudo mkfs.ext2 -L rootfs "${LB_DEV}p1" sudo mount "${LB_DEV}p1" mnt