Xenon/mkdisk.sh

46 lines
830 B
Bash
Executable File

#!/usr/bin/env sh
set -eu -o pipefail
if [ -d out/mnt ]; then
echo Path out/mnt already exists, aborting
exit 1
fi
./mkinitrd.sh
NEW_DISK=0
if [ ! -f out/disk.img ]; then
NEW_DISK=1
truncate -s 64M out/disk.img
sfdisk out/disk.img <<END
label: gpt
2048 - U *
END
fi
LOOPBACK=$(losetup -f)
sudo losetup -P $LOOPBACK $(readlink -f out/disk.img)
if [ -n $NEW_DISK ]; then
sudo mkfs.fat -F 32 ${LOOPBACK}p1
fi
mkdir -p out/mnt
sudo mount ${LOOPBACK}p1 out/mnt
sudo mkdir -p out/mnt/bootboot/ out/mnt/EFI/Boot/
sudo cp third_party/bootboot/bootboot.bin out/mnt/bootboot/loader
sudo cp third_party/bootboot/bootboot.efi out/mnt/EFI/Boot/bootx64.efi
sudo cp out/initrd out/mnt/bootboot/
sudo umount out/mnt
rmdir out/mnt
sudo losetup -d $LOOPBACK
./third_party/bootboot/x86_64-bios/mkboot out/disk.img