Create a contiguous VHD on an exFAT image #14
Labels
No labels
needs-info
needs-triage
ready-for-agent
ready-for-human
wayfinder:grilling
wayfinder:map
wayfinder:prototype
wayfinder:research
wontfix
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
phg/iodd-tool#14
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Parent
IODD Tool specification
What to build
Use the same approved creation workflow on exFAT images with correctly committed bitmap, allocation, and directory-entry metadata.
Acceptance criteria
Blocked by
Validation contract
Completion requires the applicable independently checked software evidence in Set validation gates and the implementation handoff. A closed policy decision does not establish that implementation tests have passed. Use disposable images/virtual volumes and controlled faults; no hardware-trial or performance gate applies.
Scope
This ticket belongs to the later implementation effort. All planning decisions are resolved; current work covers tracker and documentation updates. The parent specification indexes the authoritative product and software-validation contracts. Forgejo governs live updates; retained local files record the handoff.
Resolution — contiguous exFAT VHD creation implemented
Implemented on implement/iodd-tool-spec-7, completed branch 9b57bad, integration merge fef4131.
The native Create preview/confirmation/Stop workflow and public operation API reserve and verify the complete guest-plus-footer allocation, initialize every guest byte to zero and publish the fixed VHD through the shared bounded journal. Bitmap/FAT, NoFatChain stream publication, complete entry checksums/name hash, directory growth and zero-length-directory first allocation are regenerated from verified metadata. Root/nested and chained/contiguous parents preserve original files, supported vendor/unknown secondary payloads and unrelated allocation. Source-free precommit rollback/postcommit completion, imported authority refusal, checked persistence and durable retirement preserve recoverable evidence.
Validation: frozen source3572fa5 passed 143 tests in1154.814s with ordinary release optimization on pinned Xcode27.0/27A266a. All62 exFAT geometry pairs, 1008 source-free creation/replay fault cases, short/torn/lost/reordered persistence, Stop, imported-authority cases, 4096-byte physical writes, 512-byte subcluster writes, directory growth and complete zero/footer/EOF/single-extent independent oracles passed, with inherited FAT32 regression. Native checker evidence covers17 nonrepairing 512-byte-sector rows; remaining45 geometries retain software-only qualification. Actual native Create and Stop during verification, QEMU explicit VPC validation and conclusive journal retirement passed.
Latest-integration refresh preserves the entire qualified production Sources tree; its sole Tests delta adds two independently qualified #16 relocation parameter rows. Fresh merged integration passes8tests/25cases in3.581s, arm64 release, plist and macOS15.0 minimum checks. Root ran the exact final standalone creation probe on pristine macOS15.6.1/24G90: existing-directory creation completed, every original logical/full-allocation hash and entry metadata remained unchanged, the new VHD has complete guest zeros, exact fixed footer/EOF, contiguous allocation and exact16MiB QEMU capacity. That probe does not claim directory growth or a native checker pass: direct regular-file native checking lacks required ioctls (exit211) and leaves identical bytes.
Reproducible validation, full logs, integration equivalence proof and qualification limits. Qualification covers disposable regular images/internal recovery storage; raw-device, physical-media and final signing/notarization/Gatekeeper gates remain separate. Existing recovery evidence is preserved.