[...] # Raspbian RASPBIAN_URL=http://downloads.raspberrypi.org/raspbian/images/raspbian-2015-02-17/2015-02-16-raspbian-wheezy.zip RASPBIAN_SHA1=b71d7b61f44e9bd582df71c9be494c271c97650f [...] function _get_image { echo "Fetching $RASPBIAN_URL " mkdir -p download RASPBIAN_ARCHIVE_FILE=download/${RASPBIAN_URL##*/} wget --no-verbose --continue --directory-prefix download $RASPBIAN_URL || die "Download of $RASPBIAN_URL failed" echo -n "Checksum of " sha1sum --strict --check - <<<"$RASPBIAN_SHA1 *$RASPBIAN_ARCHIVE_FILE" || die "Download checksum validation failed, please check http://www.raspberrypi.org/downloads" unzip -q $RASPBIAN_ARCHIVE_FILE -d temp/ || die "Could not unzip $RASPBIAN_ARCHIVE_FILE" } [...] function _open_image { echo "Loop-back mounting" temp/*.img kpartx="$(kpartx -av temp/*.img)" || die "Could not setup loop-back access to $RASPBIAN_ARCHIVE_FILE:$NL$kpartx" read img_boot_dev img_root_dev <<<$(grep -o 'loop.p.' <<<"$kpartx") test "$img_boot_dev" -a "$img_root_dev" || die "Could not extract boot and root loop device from kpartx output:$NL$kpartx" img_boot_dev=/dev/mapper/$img_boot_dev img_root_dev=/dev/mapper/$img_root_dev mkdir -p mnt/img_root mount -t ext4 $img_root_dev mnt/img_root || die "Could not mount $img_root_dev mnt/img_root" mkdir -p mnt/img_root/boot || die "Could not mkdir mnt/img_root/boot" mount -t vfat $img_boot_dev mnt/img_root/boot || die "Could not mount $img_boot_dev mnt/img_root/boot" cp -a "$(type -p qemu-arm-static)" mnt/img_root/usr/bin/ || die "Could not copy qemu-arm-static" echo "Raspbian Image Details:" df -h mnt/img_root/boot mnt/img_root | sed -e "s#$(pwd)/##" } [...]