Clarify: home-blocks thumbdrives are not bound to any particular size
Captain Bob's correction. 64MB (disk/zuse.img, usb-thumbdrive-test.img) was always just an arbitrary QEMU-test convenience size, never a real-world constraint -- but the docs and script didn't say so explicitly, and an earlier memory's "16GB reference size" phrasing (already hedged as tentative) risked reading as a decided target. Audited the actual format for hardcoded size assumptions: none found. homeblocks_sig_t already carries its own metadata_devblocks field, recording whatever size a real drive's partition actually is. Changes: scripts/bleach_zuse_img.sh gains a --size-mb override (tested both the override and the unchanged default); disk/README.md's zuse.img entry and FABRIC-3.md both now state the point explicitly; the memory file and its MEMORY.md index line corrected to match (the GPT layout's design point is the *proportions* -- small metadata partition, everything else block storage -- not any absolute size). Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01CXjAPTEKrgY2Mrk25KoLDn
This commit is contained in:
co-authored by
Claude Sonnet 5
parent
35f84d4a45
commit
8b2fb448c7
@@ -1,5 +1,6 @@
|
||||
#!/bin/bash
|
||||
# bleach_zuse_img.sh - Reset disk/zuse.img back to pristine/unminted state.
|
||||
# bleach_zuse_img.sh - Reset disk/zuse.img (or any home-blocks test image)
|
||||
# back to pristine/unminted state.
|
||||
#
|
||||
# disk/zuse.img simulates the physical Zuse superuser thumbdrive for QEMU
|
||||
# testing (FABRIC-3.md, Phase 8 kickoff). "Bleaching" it means restoring the
|
||||
@@ -8,21 +9,43 @@
|
||||
# be exercised repeatedly during development without hand-regenerating the
|
||||
# whole image each time.
|
||||
#
|
||||
# 64MB is only this script's default -- an arbitrary QEMU-test convenience
|
||||
# size (matching the existing usb-thumbdrive-test.img precedent for BOT
|
||||
# driver testing scale), not a constraint on real home-blocks thumbdrives.
|
||||
# The design is not bound to any particular drive size: homeblocks_sig_t's
|
||||
# own metadata_devblocks field records whatever size is actually observed,
|
||||
# nothing in the format or this repo hardcodes one. Override with --size-mb
|
||||
# for a different test size.
|
||||
#
|
||||
# Deliberately a flat/raw image, not GPT-partitioned, matching the same
|
||||
# simplifying assumption homeblocks_sig_check()'s current call site in
|
||||
# repl.c uses (sig_start_fblock=0) -- both will need to move to a real
|
||||
# GPT-partition-relative offset together, once a GPT parser exists. Not
|
||||
# invented ahead of that work here.
|
||||
#
|
||||
# Usage: scripts/bleach_zuse_img.sh [path]
|
||||
# path Optional override; defaults to disk/zuse.img relative to repo root.
|
||||
# Usage: scripts/bleach_zuse_img.sh [path] [--size-mb N]
|
||||
# path Optional override; defaults to disk/zuse.img relative to repo root.
|
||||
# --size-mb N Optional override; defaults to 64 (arbitrary test convenience, see above).
|
||||
|
||||
set -euo pipefail
|
||||
|
||||
REPO_ROOT="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)"
|
||||
IMG="${1:-$REPO_ROOT/disk/zuse.img}"
|
||||
IMG="$REPO_ROOT/disk/zuse.img"
|
||||
SIZE_MB=64
|
||||
|
||||
while [ $# -gt 0 ]; do
|
||||
case "$1" in
|
||||
--size-mb)
|
||||
SIZE_MB="$2"
|
||||
shift 2
|
||||
;;
|
||||
*)
|
||||
IMG="$1"
|
||||
shift
|
||||
;;
|
||||
esac
|
||||
done
|
||||
|
||||
if [ -e "$IMG" ] && [ ! -f "$IMG" ]; then
|
||||
echo "bleach_zuse_img: refusing to overwrite non-regular-file '$IMG'" >&2
|
||||
exit 1
|
||||
|
||||
Reference in New Issue
Block a user