diff --git a/.gitignore b/.gitignore index 2239ab5..41a46e2 100644 --- a/.gitignore +++ b/.gitignore @@ -2,3 +2,5 @@ /keys /.idea /.vscode +hack/disk/bootloader_util +hack/disk/mbr.bin diff --git a/hack/disk/boot_config.json b/hack/disk/boot_config.json new file mode 100644 index 0000000..079d3e7 --- /dev/null +++ b/hack/disk/boot_config.json @@ -0,0 +1,9 @@ +{ + "boot_entries": [ + { + "partition": 0, + "uki_path": "/EFI/BOOT/BOOTX64.EFI", + "boot_count_enabled": false + } + ] +} diff --git a/hack/disk/make.mk b/hack/disk/make.mk new file mode 100644 index 0000000..07726c3 --- /dev/null +++ b/hack/disk/make.mk @@ -0,0 +1,17 @@ +disk: hack/disk/bootloader_util hack/disk/mbr.bin + head -c 64M /dev/zero > target/disk + printf 'label: gpt\nstart=2048, type=uefi, name=EFI\n' | /usr/sbin/sfdisk target/disk + mformat -i target/disk@@2048S -F -v EFI :: + mmd -i target/disk@@2048S ::/EFI + mmd -i target/disk@@2048S ::/EFI/BOOT + mcopy -i target/disk@@2048S target/uki.efi ::/EFI/BOOT/BOOTX64.EFI + dd if=hack/disk/mbr.bin of=target/disk bs=446 count=1 conv=notrunc 2> /dev/null + dd if=hack/disk/mbr.bin of=target/disk bs=512 iseek=1 count=2 seek=34 conv=notrunc 2> /dev/null + ./hack/disk/bootloader_util target/disk < hack/disk/boot_config.json + +hack/disk/bootloader_util: + curl -sSLf https://github.com/nkraetzschmar/bootloader/releases/download/v0.0.1/bootloader_util > '$@' + chmod +x '$@' + +hack/disk/mbr.bin: + curl -sSLf https://github.com/nkraetzschmar/bootloader/releases/download/v0.0.1/mbr.bin > '$@' diff --git a/hack/hack.mk b/hack/hack.mk index 8afa52d..c04c7c3 100644 --- a/hack/hack.mk +++ b/hack/hack.mk @@ -6,6 +6,7 @@ include hack/initramfs/make.mk include hack/cloud-hypervisor/make.mk include hack/cloud-hypervisor-firmware/make.mk include hack/uki/make.mk +include hack/disk/make.mk container-release: # make cargo index cache