Use sparse files for the generated disk images on all OSes

Rather than just on macOS. This can save quite a bit of space depending
on the amount of free space on the root filesystem of the disk image.
This commit is contained in:
bjorn3 2024-01-08 19:09:31 +01:00
parent f04bb44e55
commit cf04f50d86
2 changed files with 3 additions and 6 deletions

View file

@ -41,7 +41,6 @@ ifeq ($(UNAME),Darwin)
VB_AUDIO=coreaudio VB_AUDIO=coreaudio
VBM=/Applications/VirtualBox.app/Contents/MacOS/VBoxManage VBM=/Applications/VirtualBox.app/Contents/MacOS/VBoxManage
HOST_TARGET ?= $(HOST_ARCH)-apple-darwin HOST_TARGET ?= $(HOST_ARCH)-apple-darwin
ALLOC_FILE=truncate -s "$(FILESYSTEM_SIZE)m"
else ifeq ($(UNAME),FreeBSD) else ifeq ($(UNAME),FreeBSD)
FUMOUNT=sudo umount FUMOUNT=sudo umount
export NPROC=sysctl -n hw.ncpu export NPROC=sysctl -n hw.ncpu
@ -49,7 +48,6 @@ else ifeq ($(UNAME),FreeBSD)
VB_AUDIO=pulse # To check, will probaly be OSS on most setups VB_AUDIO=pulse # To check, will probaly be OSS on most setups
VBM=VBoxManage VBM=VBoxManage
HOST_TARGET ?= $(HOST_ARCH)-unknown-freebsd HOST_TARGET ?= $(HOST_ARCH)-unknown-freebsd
ALLOC_FILE=fallocate --posix --length "$(FILESYSTEM_SIZE)MiB"
else else
# Detect which version of the fusermount binary is available. # Detect which version of the fusermount binary is available.
ifneq (, $(shell which fusermount3)) ifneq (, $(shell which fusermount3))
@ -63,7 +61,6 @@ else
VB_AUDIO=pulse VB_AUDIO=pulse
VBM=VBoxManage VBM=VBoxManage
HOST_TARGET ?= $(HOST_ARCH)-unknown-linux-gnu HOST_TARGET ?= $(HOST_ARCH)-unknown-linux-gnu
ALLOC_FILE=fallocate --posix --length "$(FILESYSTEM_SIZE)MiB"
endif endif
ifneq ($(UNAME),Linux) ifneq ($(UNAME),Linux)

View file

@ -2,7 +2,7 @@ $(BUILD)/harddrive.img: $(FSTOOLS_TAG) $(REPO_TAG)
mkdir -p $(BUILD) mkdir -p $(BUILD)
rm -rf $@ $@.partial rm -rf $@ $@.partial
-$(FUMOUNT) /tmp/redox_installer || true -$(FUMOUNT) /tmp/redox_installer || true
${ALLOC_FILE} $@.partial truncate -s "$(FILESYSTEM_SIZE)m" $@.partial
umask 002 && $(INSTALLER) -c $(FILESYSTEM_CONFIG) $@.partial umask 002 && $(INSTALLER) -c $(FILESYSTEM_CONFIG) $@.partial
mv $@.partial $@ mv $@.partial $@
@ -10,7 +10,7 @@ $(BUILD)/livedisk.iso: $(FSTOOLS_TAG) $(REPO_TAG)
mkdir -p $(BUILD) mkdir -p $(BUILD)
rm -rf $@ $@.partial rm -rf $@ $@.partial
-$(FUMOUNT) /tmp/redox_installer || true -$(FUMOUNT) /tmp/redox_installer || true
${ALLOC_FILE} $@.partial truncate -s "$(FILESYSTEM_SIZE)m" $@.partial
umask 002 && $(INSTALLER) -c $(FILESYSTEM_CONFIG) --live $@.partial umask 002 && $(INSTALLER) -c $(FILESYSTEM_CONFIG) --live $@.partial
mv $@.partial $@ mv $@.partial $@
@ -19,7 +19,7 @@ $(BUILD)/filesystem.img: $(FSTOOLS_TAG) $(REPO_TAG)
-$(FUMOUNT) $(BUILD)/filesystem/ || true -$(FUMOUNT) $(BUILD)/filesystem/ || true
rm -rf $@ $@.partial $(BUILD)/filesystem/ rm -rf $@ $@.partial $(BUILD)/filesystem/
-$(FUMOUNT) /tmp/redox_installer || true -$(FUMOUNT) /tmp/redox_installer || true
${ALLOC_FILE} $@.partial truncate -s "$(FILESYSTEM_SIZE)m" $@.partial
redoxfs/target/release/redoxfs-mkfs $(REDOXFS_MKFS_FLAGS) $@.partial redoxfs/target/release/redoxfs-mkfs $(REDOXFS_MKFS_FLAGS) $@.partial
mkdir -p $(BUILD)/filesystem/ mkdir -p $(BUILD)/filesystem/
redoxfs/target/release/redoxfs $@.partial $(BUILD)/filesystem/ redoxfs/target/release/redoxfs $@.partial $(BUILD)/filesystem/