46 lines
830 B
Bash
Executable File
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
|