#!/bin/bash if [ -z $BANAN_DISK_IMAGE_PATH ]; then echo "You must set the BANAN_DISK_IMAGE_PATH environment variable" >&2 exit 1 fi if [ -z $BANAN_SYSROOT ]; then echo "You must set the BANAN_SYSROOT environment variable" >&2 exit 1 fi if [ -z $BANAN_UEFI_BOOT ]; then echo "You must set the BANAN_UEFI_BOOT environment variable" >&2 exit 1 fi if [ -z $BANAN_BUILD_DIR ]; then echo "You must set the BANAN_BUILD_DIR environment variable" >&2 exit 1 fi set -u # create mount directory MOUNT_DIR="$BANAN_BUILD_DIR/mount" mkdir -p $MOUNT_DIR # create empty disk image DISK_SIZE=$((500 * 1024 * 1024)) truncate -s 0 "$BANAN_DISK_IMAGE_PATH" truncate -s $DISK_SIZE "$BANAN_DISK_IMAGE_PATH" # create partition table if (($BANAN_UEFI_BOOT)); then parted --script "$BANAN_DISK_IMAGE_PATH" \ mklabel gpt \ mkpart boot 1M 17M \ set 1 esp on \ mkpart root ext2 17M 100% else parted --script "$BANAN_DISK_IMAGE_PATH" \ mklabel gpt \ mkpart boot 1M 2M \ set 1 bios_grub on \ mkpart root ext2 2M 100% fi # create loop device LOOP_DEV=$(sudo losetup --show -fP "$BANAN_DISK_IMAGE_PATH" || exit 1 ) PARTITION1=${LOOP_DEV}p1 PARTITION2=${LOOP_DEV}p2 if [ ! -b $PARTITION1 ] || [ ! -b $PARTITION2 ]; then echo "Failed to probe partitions for banan disk image." >&2 sudo losetup -d $LOOP_DEV exit 1 fi # create root filesystem sudo mkfs.ext2 -q $PARTITION2 # delete loop device sudo losetup -d $LOOP_DEV # install bootloader $BANAN_SCRIPT_DIR/install-bootloader.sh