From 42cc61803cc9d1500abc9f4ea3d01cbdd416c983 Mon Sep 17 00:00:00 2001 From: Jeremy Soller Date: Mon, 7 Feb 2022 20:20:03 -0700 Subject: [PATCH] Fix live disk and ISO --- bootloader | 2 +- mk/disk.mk | 15 +++++++++++++-- mk/filesystem.mk | 4 ++++ 3 files changed, 18 insertions(+), 3 deletions(-) diff --git a/bootloader b/bootloader index 6ed05fc..75b7827 160000 --- a/bootloader +++ b/bootloader @@ -1 +1 @@ -Subproject commit 6ed05fcaa4f493f8b9c46e716f5edf5bcecc83e5 +Subproject commit 75b78273752b2679507689945300aa326dbfd209 diff --git a/mk/disk.mk b/mk/disk.mk index 38d6bc5..9fe0947 100644 --- a/mk/disk.mk +++ b/mk/disk.mk @@ -7,8 +7,19 @@ build/harddrive.bin: build/filesystem.bin build/bootloader.bin dd if=$< of=$@.partial bs=1M seek=1 conv=notrunc mv $@.partial $@ -build/livedisk.bin: build/kernel_live bootloader/$(ARCH)/** - nasm -f bin -o $@ -D ARCH_$(ARCH) -D KERNEL=$< -ibootloader/$(ARCH)/ bootloader/$(ARCH)/disk.asm +build/livedisk: build/kernel_live + mkdir -p $@.partial + cp $< $@.partial/kernel + mv $@.partial $@ + +build/livedisk.bin: build/filesystem-live.bin build/bootloader.bin + 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 $$(expr $$(du -m $< | cut -f1) \* 2048 + 2048)s + dd if=build/bootloader.bin of=$@.partial bs=1 count=446 conv=notrunc + dd if=build/bootloader.bin of=$@.partial bs=512 skip=1 seek=1 conv=notrunc + dd if=$< of=$@.partial bs=1M seek=1 conv=notrunc + mv $@.partial $@ build/livedisk.iso: build/livedisk.bin.gz rm -rf build/iso/ diff --git a/mk/filesystem.mk b/mk/filesystem.mk index ff77151..89f279a 100644 --- a/mk/filesystem.mk +++ b/mk/filesystem.mk @@ -20,6 +20,10 @@ build/filesystem.bin: filesystem.toml build/kernel prefix rm -rf build/filesystem/ mv $@.partial $@ +build/filesystem-live.bin: build/livedisk + cargo run --manifest-path redoxfs/Cargo.toml --release --bin redoxfs-ar -- $@.partial $< + mv $@.partial $@ + mount: FORCE mkdir -p build/filesystem/ cargo build --manifest-path redoxfs/Cargo.toml --release --bin redoxfs