#!/bin/sh set -e if [ $# -ne 1 ]; then echo Usage: `basename "$0"` FILE >&2 exit 1 fi ISO_FILE="$1" IMG_FILE="`echo "$ISO_FILE" | sed "s|\.iso$||"`.img" if ! [ -e $ISO_FILE ]; then echo `basename "$0"`: $ISO_FILE: No such file or directory >&2 exit 1 fi if [ -e $IMG_FILE ]; then echo `basename "$0"`: $IMG_FILE: File exists >&2 exit 1 fi if ! sudo true; then echo "You must have root access." >&2 exit 1 fi echo Converting $ISO_FILE TO $IMG_FILE... ISO_DIR="" IMG_DIR="" trap 'sudo umount "$ISO_DIR" 2>/dev/null ; umount "$IMG_DIR" 2>/dev/null ; [ "x$ISO_DIR" = "x" ] || rmdir "$ISO_DIR" ; [ "x$IMG_DIR" = "x" ] || rmdir "$IMG_DIR" ; rm -f "$IMG_FILE"' TERM INT sudo mkfs.msdos -C "$IMG_FILE" 1440 ISO_DIR="`mktemp -d`" IMG_DIR="`mktemp -d`" sudo mount -o loop $ISO_FILE $ISO_DIR sudo mount -o loop $IMG_FILE $IMG_DIR sudo cp -r $ISO_DIR/* $IMG_DIR/ sudo umount $ISO_DIR sudo umount $IMG_DIR sudo chown --reference="$ISO_FILE" "$IMG_FILE" sudo chmod --reference="$ISO_FILE" "$IMG_FILE"