Files
efi-loader/run.sh
2026-03-22 10:58:47 +01:00

30 lines
1.0 KiB
Bash
Executable File

#!/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