Create a contiguous VHD on a FAT32 image #13

Closed
opened 2026-10-11 19:10:43 +00:00 by phg · 1 comment
Owner

Parent

IODD Tool specification

What to build

Execute an approved creation preview on a disposable FAT32 image and publish a valid fixed VHD only after complete-file contiguity verification.

Acceptance criteria

  • The native Create action executes the approved preview through the operation API with progress and safe Stop behavior.
  • The accepted capacity and chosen guest initialization produce the exact required file length and valid fixed footer.
  • The final live FAT32 allocation independently proves one extent covering the payload and footer; existing files and unrelated data remain preserved.
  • Directory growth, metadata accounting, reserved FAT bits, and mirrored/active FAT rules follow the chosen filesystem contract.
  • Insufficient space, destination conflicts, stale plans, short I/O, and unsupported/failed flushes cannot report creation success.
  • Each meaningful data/metadata/flush failure boundary has a defined rollback or recoverable outcome verified through the public API.
  • Partial-file publication/cleanup and retained recovery evidence match the approved creation/recovery policies.
  • Independent VHD parsing, guest-content checks, allocation manifests, and unchanged-file hashes validate the completed slice.

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.

## Parent [IODD Tool specification](https://git.s1q.dev/phg/iodd-tool/issues/7) ## What to build Execute an approved creation preview on a disposable FAT32 image and publish a valid fixed VHD only after complete-file contiguity verification. ## Acceptance criteria - [ ] The native Create action executes the approved preview through the operation API with progress and safe Stop behavior. - [ ] The accepted capacity and chosen guest initialization produce the exact required file length and valid fixed footer. - [ ] The final live FAT32 allocation independently proves one extent covering the payload and footer; existing files and unrelated data remain preserved. - [ ] Directory growth, metadata accounting, reserved FAT bits, and mirrored/active FAT rules follow the chosen filesystem contract. - [ ] Insufficient space, destination conflicts, stale plans, short I/O, and unsupported/failed flushes cannot report creation success. - [ ] Each meaningful data/metadata/flush failure boundary has a defined rollback or recoverable outcome verified through the public API. - [ ] Partial-file publication/cleanup and retained recovery evidence match the approved creation/recovery policies. - [ ] Independent VHD parsing, guest-content checks, allocation manifests, and unchanged-file hashes validate the completed slice. ## Blocked by - [Assess IODD image eligibility](https://git.s1q.dev/phg/iodd-tool/issues/11) - [Preview fixed VHD creation](https://git.s1q.dev/phg/iodd-tool/issues/12) ## Validation contract Completion requires the applicable independently checked software evidence in [Set validation gates and the implementation handoff](https://git.s1q.dev/phg/iodd-tool/issues/6). 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.
phg self-assigned this 2026-10-13 11:16:16 +00:00
Author
Owner

Resolution — contiguous FAT32 VHD creation implemented

Implemented on implement/iodd-tool-spec-7, implementation 33fb234, integration merge 2b1dbcb.

The native creation form and public operation API revalidate the exact reviewed create-only request, reserve the full guest-plus-footer run and separate supported directory growth, initialize and verify the complete zero guest and fixed footer, then publish through the shared bounded journal driver. FAT copies, spanning LFN/short entries, directory growth and hints preserve unrelated metadata. Every expanded physical write unit remains in verified free allocation; materially changed previews refuse. Source-free rollback/forward recovery regenerates permitted writes and preserves incomplete/corrupt/imported evidence. Create requires preparation; its journal correctly records that existing-file backup acknowledgement is inapplicable.

Validation:105 tests passed in961.981s on stable Xcode27.0/27A266a, including all32 FAT32 geometry pairs and1010 creation/recovery fault cases (initial176, rollback126, forward165, directory-growth38 observed boundaries, each before/after). Independent full guest-zero/footer/checksum/EOF/single-extent oracles, original content/metadata/entry/extent checks, QEMU explicit VPC and nonrepairing fsck pass. Imported extreme geometry and read/resource budgets refuse before writes. Final native owned-image Create and safe Stop during genuine536871424-byte verification passed with conclusive retired journals. Sources/Tests match the qualified build after merging shared15 and current integration; integration focused Create/Stop, arm64 release, plist and minimumOS15 checks pass.

Reproducible validation, complete logs and native screenshots. Qualification covers disposable FAT32 images/internal recovery storage. Existing default recovery evidence is preserved. exFAT creation, native external-device access and signed/notarized release remain their separate tickets.

## Resolution — contiguous FAT32 VHD creation implemented Implemented on [implement/iodd-tool-spec-7](https://git.s1q.dev/phg/iodd-tool/src/branch/implement/iodd-tool-spec-7), implementation [33fb234](https://git.s1q.dev/phg/iodd-tool/commit/33fb234afef2256e90648aba2e983ec3b2fe6e6b), integration merge [2b1dbcb](https://git.s1q.dev/phg/iodd-tool/commit/2b1dbcb5c3f1921b26a3e96fbb4d3442ad23f23e). The native creation form and public operation API revalidate the exact reviewed create-only request, reserve the full guest-plus-footer run and separate supported directory growth, initialize and verify the complete zero guest and fixed footer, then publish through the shared bounded journal driver. FAT copies, spanning LFN/short entries, directory growth and hints preserve unrelated metadata. Every expanded physical write unit remains in verified free allocation; materially changed previews refuse. Source-free rollback/forward recovery regenerates permitted writes and preserves incomplete/corrupt/imported evidence. Create requires preparation; its journal correctly records that existing-file backup acknowledgement is inapplicable. Validation:105 tests passed in961.981s on stable Xcode27.0/27A266a, including all32 FAT32 geometry pairs and1010 creation/recovery fault cases (initial176, rollback126, forward165, directory-growth38 observed boundaries, each before/after). Independent full guest-zero/footer/checksum/EOF/single-extent oracles, original content/metadata/entry/extent checks, QEMU explicit VPC and nonrepairing fsck pass. Imported extreme geometry and read/resource budgets refuse before writes. Final native owned-image Create and safe Stop during genuine536871424-byte verification passed with conclusive retired journals. Sources/Tests match the qualified build after merging shared15 and current integration; integration focused Create/Stop, arm64 release, plist and minimumOS15 checks pass. [Reproducible validation, complete logs and native screenshots](https://git.s1q.dev/phg/iodd-tool/src/commit/2b1dbcb5c3f1921b26a3e96fbb4d3442ad23f23e/docs/validation/fat32-creation.md). Qualification covers disposable FAT32 images/internal recovery storage. Existing default recovery evidence is preserved. exFAT creation, native external-device access and signed/notarized release remain their separate tickets.
phg closed this issue 2026-10-13 15:51:23 +00:00
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
phg/iodd-tool#13
No description provided.