#!/bin/bash set -e PROJECT_DIR=$(dirname "$(realpath "$0")") cargo build mkdir -p "$PROJECT_DIR/target/esp/efi/boot" cp "$PROJECT_DIR/target/x86_64-unknown-uefi/debug/efi-loader.efi" "$PROJECT_DIR/target/esp/efi/boot/bootx64.efi" if [[ ! -f "$PROJECT_DIR/disk.img" ]]; then dd if=/dev/zero of="$PROJECT_DIR/disk.img" bs=1M count=256 sgdisk --zap-all --new=1::+64M --new=2:: disk.img echo Creating file systems on test disk, might require password DEVICE=$(sudo losetup -fP --show "$PROJECT_DIR/disk.img") sudo mkfs.fat -F32 ${DEVICE}p1 sudo mkfs.ext4 ${DEVICE}p2 sudo losetup -d $DEVICE fi qemu-system-x86_64 -enable-kvm \ -drive format=raw,file=fat:rw:target/esp,id=disk0,if=none \ -drive format=raw,file=disk.img,id=disk1,if=none \ -drive if=pflash,format=raw,readonly=on,file=OVMF_CODE.fd \ -drive if=pflash,format=raw,readonly=on,file=OVMF_VARS.fd \ -device ahci,id=ahci \ -device ide-hd,bus=ahci.0,drive=disk0 \ -device ide-hd,bus=ahci.1,drive=disk1 \ --no-shutdown