wip
This commit is contained in:
@@ -5,6 +5,7 @@
|
||||
# Purpose: Create a loopback ext4 filesystem for the LFS build environment.
|
||||
# This avoids repartitioning and uses free space on your root drive.
|
||||
# The loopback file acts exactly like a real partition.
|
||||
# If a previous build exists, tears it down and starts fresh.
|
||||
# Inputs: None (uses defaults below, override via environment)
|
||||
# Outputs: 50GB ext4 filesystem mounted at /mnt/darkforge
|
||||
# Assumes: Running as root, ~50GB free on root filesystem
|
||||
@@ -39,13 +40,17 @@ echo " Image size: ${LFS_SIZE}"
|
||||
echo " Mount point: ${LFS}"
|
||||
echo ""
|
||||
|
||||
# --- Check if already mounted ------------------------------------------------
|
||||
# --- Tear down any existing build --------------------------------------------
|
||||
if mountpoint -q "${LFS}" 2>/dev/null; then
|
||||
ok "${LFS} is already mounted:"
|
||||
df -h "${LFS}"
|
||||
echo ""
|
||||
echo "To start over: umount ${LFS} && rm ${LFS_IMAGE}"
|
||||
exit 0
|
||||
warn "Existing build found at ${LFS} — tearing down..."
|
||||
umount -l "${LFS}" 2>/dev/null || true
|
||||
ok "Unmounted ${LFS}"
|
||||
fi
|
||||
|
||||
if [ -f "${LFS_IMAGE}" ]; then
|
||||
warn "Removing old image: ${LFS_IMAGE}"
|
||||
rm -f "${LFS_IMAGE}"
|
||||
ok "Old image removed"
|
||||
fi
|
||||
|
||||
# --- Check free space ---------------------------------------------------------
|
||||
@@ -59,22 +64,17 @@ fi
|
||||
ok "Free space check: ${AVAIL_GB}GB available, need ${NEED_GB}GB"
|
||||
|
||||
# --- Create the loopback image -----------------------------------------------
|
||||
if [ -f "${LFS_IMAGE}" ]; then
|
||||
warn "Image file already exists: ${LFS_IMAGE}"
|
||||
echo " Reusing existing image."
|
||||
else
|
||||
echo ">>> Creating ${LFS_SIZE} image file (this takes a moment)..."
|
||||
# Use fallocate for instant allocation (no slow dd)
|
||||
fallocate -l "${LFS_SIZE}" "${LFS_IMAGE}" || {
|
||||
warn "fallocate failed, falling back to truncate..."
|
||||
truncate -s "${LFS_SIZE}" "${LFS_IMAGE}"
|
||||
}
|
||||
ok "Image created: ${LFS_IMAGE}"
|
||||
echo ">>> Creating ${LFS_SIZE} image file..."
|
||||
# Use fallocate for instant allocation (no slow dd)
|
||||
fallocate -l "${LFS_SIZE}" "${LFS_IMAGE}" || {
|
||||
warn "fallocate failed, falling back to truncate..."
|
||||
truncate -s "${LFS_SIZE}" "${LFS_IMAGE}"
|
||||
}
|
||||
ok "Image created: ${LFS_IMAGE}"
|
||||
|
||||
echo ">>> Formatting as ext4..."
|
||||
mkfs.ext4 -q -L darkforge "${LFS_IMAGE}"
|
||||
ok "Formatted as ext4"
|
||||
fi
|
||||
echo ">>> Formatting as ext4..."
|
||||
mkfs.ext4 -q -L darkforge "${LFS_IMAGE}"
|
||||
ok "Formatted as ext4"
|
||||
|
||||
# --- Mount it -----------------------------------------------------------------
|
||||
mkdir -p "${LFS}"
|
||||
@@ -84,11 +84,7 @@ ok "Mounted ${LFS_IMAGE} at ${LFS}"
|
||||
echo ""
|
||||
df -h "${LFS}"
|
||||
echo ""
|
||||
ok "LFS build partition is ready."
|
||||
echo ""
|
||||
echo "Next steps:"
|
||||
echo " export LFS=${LFS}"
|
||||
echo " bash toolchain/scripts/000-env-setup.sh"
|
||||
ok "LFS build partition is ready (fresh start)."
|
||||
echo ""
|
||||
echo "To remount after reboot:"
|
||||
echo " sudo mount -o loop ${LFS_IMAGE} ${LFS}"
|
||||
|
||||
@@ -14,7 +14,7 @@ set -euo pipefail
|
||||
|
||||
LFS="${LFS:-/mnt/darkforge}"
|
||||
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
||||
LOG_DIR="${SCRIPT_DIR}/../logs"
|
||||
LOG_DIR="${LFS}/sources/logs"
|
||||
|
||||
mkdir -p "${LOG_DIR}"
|
||||
|
||||
|
||||
Reference in New Issue
Block a user