Skip to content

fix: disable ISO injection pending dual-boot safety guard - #1690

Closed
iesllc2026 wants to merge 1 commit into
Atlas-OS:mainfrom
iesllc2026:fix/disable-unsafe-iso-injection
Closed

fix: disable ISO injection pending dual-boot safety guard#1690
iesllc2026 wants to merge 1 commit into
Atlas-OS:mainfrom
iesllc2026:fix/disable-unsafe-iso-injection

Conversation

@iesllc2026

Copy link
Copy Markdown

Questions

Summary

Temporarily disables Atlas ISO Injection because issue #1682 reports possible automatic whole-disk formatting and loss of non-Windows partitions in dual-boot configurations.

This is a fail-closed containment change. Normal live Playbook installation remains available.

Risk

The reported failure mode may cause irreversible loss of Linux installations and unrelated user data.

Root cause and ownership

Atlas packages the .apbx Playbook and opts it into ISO support through <SupportsISO>true</SupportsISO>. A repository-wide static search found no Atlas implementation of unattended Windows Setup, target-disk selection, partition selection, whole-disk wiping, or disk formatting.

AME Beta/AME Wizard owns ISO injection, Windows Setup automation, target-disk selection, and any partition operations. Atlas therefore cannot repair the underlying installer behavior in this repository. This pull request contains the risk by opting Atlas out of ISO Injection until the responsible component has a verified partition-preservation fix.

Changes

  • src/playbook/playbook.conf: adds a concise issue [BUG] - ISO Injectjon attempts to format entire drive with no regards for a Linux dualboot #1682 safety comment and changes <SupportsISO> from true to false.
  • The optional <ISO> block remains unchanged. Official AME source defines SupportsISO as a boolean defaulting to false, keeps ISO nullable independently, and performs ISO-specific validation only when SupportsISO is true, so removal is not schema-required.
  • No documentation file described ISO Injection as an available Atlas feature, so no documentation change was needed.

Validation

All validation was static or packaging-only. No Playbook, ISO, Windows Setup, unattended installer, or disk command was executed.

  • git fetch --prune upstream; git fetch --prune origin — exit 0; HEAD, origin/main, and upstream/main all resolved to 1ed96306 before the fix.
  • gh issue view 1682 --repo Atlas-OS/Atlas --json ... plus the GitHub issue-comments API — issue open; issue body and all 3 comments reviewed.
  • Repository-wide case-insensitive git grep for SupportsISO, <ISO>, ISO Injection, autounattend, unattend.xml, DiskConfiguration, WillWipeDisk, InstallTo, InstallToAvailablePartition, diskpart, select disk, clean, clean all, format, Clear-Disk, Remove-Partition, partition-selection logic, and unattended setup logic — only the playbook opt-in and optional ISO settings were relevant; no installer or destructive disk logic was found.
  • gh search code SupportsISO --owner Ameliorated-LLC and official Playbook.cs inspection through gh apiSupportsISO is a boolean with default false; ISO is nullable; ISO-specific validation is guarded by if (SupportsISO).
  • [xml](Get-Content src/playbook/playbook.conf -Raw) with property assertions — parsed successfully; exactly 1 SupportsISO node; boolean value False; safety comment present; optional ISO block present.
  • yamllint -d "{extends: relaxed, rules: {empty-lines: disable, line-length: disable, new-line-at-end-of-file: disable, trailing-spaces: disable, new-lines: {type: platform}}}" . — exit 0, no findings.
  • src/dependencies/local-build.ps1 -AddLiveLog -Removals WinverRequirement,Verification -DontOpenPbLocation -FileName "Atlas 1682 Validation"Built successfully; archive size 48,024,818 bytes; SHA-256 F600C0142BB65CECE4DDF9352BC75A787D15FF8C254A5621E6C13C1079139564.
  • Extracted the generated archive only into a temporary directory — 540 files inspected; packaged playbook.conf parsed successfully; exactly 1 SupportsISO node with value false; 0 matches for unattended wipe, disk-selection, or partition-deletion directives.
  • git diff --check upstream/main..HEAD — exit 0, no whitespace errors.
  • git diff --name-status upstream/main..HEAD — exactly 1 modified file: src/playbook/playbook.conf.
  • Final prohibited-directive search for autounattend, unattend.xml, DiskConfiguration, WillWipeDisk, InstallToAvailablePartition, diskpart, select disk, clean all, Clear-Disk, and the Remove-Partition command — 0 matches.
  • git status --short --branch — clean branch, 1 commit ahead of upstream/main before push.

Upstream dependency

The complete repair belongs in AME Beta/AME Wizard or whichever component generates and drives Windows Setup. That component must prove it never assumes Disk 0, never schedules an unattended whole-disk wipe, requires explicit target-partition selection and confirmation, preserves all non-target partitions, aborts on ambiguity, and performs no disk modification on cancellation.

Re-enablement criteria

ISO Injection should not be restored until all of the following are verified:

  • No unattended whole-disk wipe.
  • No hardcoded Disk 0 selection.
  • Explicit target-partition selection.
  • Preservation of all non-target partitions.
  • Safe handling of dual-boot and multi-disk systems.
  • Cancellation causes no destructive operation.
  • Regression tests using disposable virtual disks.
  • Independent review of the generated unattended configuration.

Review process

This pull request should remain open for upstream review.

Do not merge it.

The project requires at least two reviews for non-team contributors, depending on the size of the change. The upstream maintainers will squash-merge it if accepted.

@github-actions github-actions Bot added the playbook Playbook related issues/PRs label Jul 25, 2026
@iesllc2026
iesllc2026 marked this pull request as ready for review July 25, 2026 02:07
@RadNotRed RadNotRed closed this Jul 28, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

playbook Playbook related issues/PRs

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants