30 lines
1.0 KiB
Bash
Executable File
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
|