#!/us set -e if [[ $# -ne 1 ]]; then echo "Must specify disk image name." fi dd if=/dev/zero of=$1 bs=1M count=200 dev=$(losetup --find --partscan --show $1) if [ -z "$dev" ]; then echo "Couldn't mount loopback device" exit 1; fi echo "Loopback device: ${dev}" cleanup() { umount efi rm -rf efi umount sysroot rm -rf sysroot losetup -d $dev } trap cleanup EXIT parted -s $dev mklabel gpt mkpart EFI fat32 1MiB 10MiB mkpart ext2 10MiB 100% set 1 esp on mkfs.fat -F 12 "${dev}p1" mke2fs "${dev}p2" limine bios-install "${dev}" mkdir -p efi/ mount "${dev}p1" efi/ mkdir -p efi/EFI/BOOT cp /usr/share/limine/BOOTX64.EFI efi/EFI/BOOT cp /usr/share/limine/limine-bios.sys efi/ cp ../zion/boot/limine.cfg efi/ cp zion/zion efi/ mkdir -p efi/sys cp sys/yellowstone/yellowstone efi/sys/yellowstone cp sys/denali/denali efi/sys/denali cp sys/victoriafalls/victoriafalls efi/sys/victoriafalls mkdir -p sysroot mount "${dev}p2" sysroot/ rsync -a ../sysroot . ls sysroot/ chown drew:drew $1