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:
Robert Allan James
2026-08-26 07:56:07 -04:00
co-authored by Claude Sonnet 5
parent 35f84d4a45
commit 8b2fb448c7
3 changed files with 59 additions and 16 deletions
+20 -12
View File
@@ -85,18 +85,26 @@ carrying timestamp noise in git history.
- `zuse.img` — 64MB raw image simulating the physical Zuse superuser
thumbdrive for QEMU testing (FABRIC-3.md, Phase 8: `zuse.img` "bleach"
mechanism, added 2026-08-26). Blank (all zero) at creation — reads back
as `HOMEBLOCKS_SIG_BLANK` via `homeblocks_sig_check()`, confirmed live
(`xhci: USB drive not recognized (blank or foreign media)`), simulating
a genuine first boot for exercising the still-to-be-built one-time
mint-Zuse flow. **"Bleach" it back to this pristine/unminted state with
`scripts/bleach_zuse_img.sh`** before each first-boot test run, rather
than hand-regenerating the file — same all-zero content either way, the
script just makes the reset a single documented, repeatable command.
Deliberately a flat/raw image, not GPT-partitioned, matching
`homeblocks_sig_check()`'s current call site (`repl.c`,
`sig_start_fblock=0`) — both will move to a real GPT-partition-relative
offset together once a GPT parser exists, not attempted ahead of that.
mechanism, added 2026-08-26). **64MB is only this fixture's size, not a
constraint on real home-blocks thumbdrives** (Captain Bob, 2026-08-26) —
the design is not bound to any particular drive size; `homeblocks_sig_t`'s
own `metadata_devblocks` field records whatever size is actually observed
on a real drive, nothing in the format hardcodes one. 64MB here is purely
an arbitrary QEMU-test convenience (matching `usb-thumbdrive-test.img`'s
existing precedent for BOT driver testing scale); use
`scripts/bleach_zuse_img.sh --size-mb N` for a different test size. Blank
(all zero) at creation — reads back as `HOMEBLOCKS_SIG_BLANK` via
`homeblocks_sig_check()`, confirmed live (`xhci: USB drive not recognized
(blank or foreign media)`), simulating a genuine first boot for exercising
the still-to-be-built one-time mint-Zuse flow. **"Bleach" it back to this
pristine/unminted state with `scripts/bleach_zuse_img.sh`** before each
first-boot test run, rather than hand-regenerating the file — same
all-zero content either way, the script just makes the reset a single
documented, repeatable command. Deliberately a flat/raw image, not
GPT-partitioned, matching `homeblocks_sig_check()`'s current call site
(`repl.c`, `sig_start_fblock=0`) — both will move to a real
GPT-partition-relative offset together once a GPT parser exists, not
attempted ahead of that.
**Convention, standing as of 2026-08-22: every virtual disk/thumb-drive image
used for testing — Artemis persistence disks above, and USB Mass Storage