From ed5c8eb92c8f9efdd950725f4e311f4ac4fbb218 Mon Sep 17 00:00:00 2001 From: Jeremy Soller Date: Mon, 20 Jan 2020 09:29:37 -0700 Subject: [PATCH] Correctly determine size of MBR partition --- mk/disk.mk | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/mk/disk.mk b/mk/disk.mk index 36fe76d..a261325 100644 --- a/mk/disk.mk +++ b/mk/disk.mk @@ -6,11 +6,10 @@ build/harddrive.bin: build/filesystem.bin bootloader/$(ARCH)/** nasm -f bin -o $@ -D ARCH_$(ARCH) -D FILESYSTEM=$< -ibootloader/$(ARCH)/ bootloader/$(ARCH)/disk.asm build/harddrive-mbr.bin: build/filesystem.bin bootloader/$(ARCH)/** - # TODO: Determine the correct size nasm -f bin -o build/bootsector.bin -D ARCH_$(ARCH) -ibootloader/$(ARCH)/ bootloader/$(ARCH)/disk.asm - dd if=/dev/zero of=$@.partial bs=1M count=384 + dd if=/dev/zero of=$@.partial bs=1M count=$$(expr $$(du -m $< | cut -f1) + 2) parted -s -a minimal $@.partial mklabel msdos - parted -s -a minimal $@.partial mkpart primary 2048s 786431s + parted -s -a minimal $@.partial mkpart primary 2048s $$(expr $$(du -m $< | cut -f1) \* 2048 + 2048)s dd if=build/bootsector.bin of=$@.partial bs=1 count=446 conv=notrunc dd if=build/bootsector.bin of=$@.partial bs=512 skip=1 seek=1 conv=notrunc dd if=$< of=$@.partial bs=1M seek=1 conv=notrunc