From 8160d711ca082843d54d77c7d75604d02890921c Mon Sep 17 00:00:00 2001
From: Jeremy Soller <jeremy@system76.com>
Date: Sat, 16 Mar 2019 15:18:30 -0600
Subject: [PATCH] Configurable filesystem size and automatic FAT filesystem
 size

---
 mk/config.mk     | 2 ++
 mk/disk.mk       | 4 ++--
 mk/filesystem.mk | 2 +-
 3 files changed, 5 insertions(+), 3 deletions(-)

diff --git a/mk/config.mk b/mk/config.mk
index bfb686792..791c18f39 100644
--- a/mk/config.mk
+++ b/mk/config.mk
@@ -2,6 +2,8 @@
 ARCH?=x86_64
 INSTALLER_FLAGS?=--cookbook=cookbook
 PREFIX_RUSTC?=0
+# Filesystem Size in MB
+FILESYSTEM_SIZE?=256
 
 # Per host variables
 UNAME := $(shell uname)
diff --git a/mk/disk.mk b/mk/disk.mk
index 5a5a2ea51..715f20f3b 100644
--- a/mk/disk.mk
+++ b/mk/disk.mk
@@ -31,7 +31,7 @@ build/bootloader.efi: bootloader-efi/build/$(EFI_TARGET)/boot.efi
 	cp -v $< $@
 
 build/harddrive-efi.bin: build/bootloader.efi build/filesystem.bin
-	dd if=/dev/zero of=$@.partial bs=1048576 count=4
+	dd if=/dev/zero of=$@.partial bs=1048576 count=$$(du -m $< | cut -f1)
 	mkfs.vfat $@.partial
 	mmd -i $@.partial efi
 	mmd -i $@.partial efi/boot
@@ -39,7 +39,7 @@ build/harddrive-efi.bin: build/bootloader.efi build/filesystem.bin
 	cat $@.partial build/filesystem.bin > $@
 
 build/livedisk-efi.iso: build/bootloader.efi build/kernel_live
-	dd if=/dev/zero of=$@.partial bs=1048576 count=272
+	dd if=/dev/zero of=$@.partial bs=1048576 count=$$(du -mc $^ | grep 'total$$' | cut -f1)
 	mkfs.vfat $@.partial
 	mmd -i $@.partial efi
 	mmd -i $@.partial efi/boot
diff --git a/mk/filesystem.mk b/mk/filesystem.mk
index 41674b571..81db43aa8 100644
--- a/mk/filesystem.mk
+++ b/mk/filesystem.mk
@@ -1,7 +1,7 @@
 build/filesystem.bin: filesystem.toml build/bootloader build/kernel prefix
 	-$(FUMOUNT) build/filesystem/ || true
 	rm -rf $@  $@.partial build/filesystem/
-	dd if=/dev/zero of=$@.partial bs=1048576 count=256
+	dd if=/dev/zero of=$@.partial bs=1048576 count="$(FILESYSTEM_SIZE)"
 	cargo run --manifest-path redoxfs/Cargo.toml --release --bin redoxfs-mkfs $@.partial
 	mkdir -p build/filesystem/
 	cargo build --manifest-path redoxfs/Cargo.toml --release --bin redoxfs
-- 
GitLab