Skip to content

Handle Rust e2fsck exit Some(4) in verified state recovery #29

Description

@Deadbytes101

Alpha.12 physical boot on exact image SHA-256 e4cc44215c70cba7b3d7a9c5916256992c40161e110314a657c1856d9d1a3a16 still left persistent state unavailable.

Physical evidence:

  • release commit: 5af491daed09dff4b5f90244f4fee718edd5ade2
  • state device: /dev/sdb4
  • state PARTUUID: 5249474f-04
  • state outcome: limited_capacity
  • exact core message: bounded command failed: e2fsck: exit Some(4): ... UNEXPECTED INCONSISTENCY; RUN fsck MANUALLY.
  • /var/lib/rigos remained the live overlay
  • recovery credential remained boot-scoped and non-persistent
  • SSH host identity remained ephemeral
  • profile and miner remained blocked

Root cause:

Alpha.12 routes e2fsck: exit 4 into the verified repair path, but the Rust state core formats the process status as exit Some(4). The string matcher therefore misses the physical condition and never reaches the bounded verified e2fsck -f -y escalation.

Required fix:

  • advance the next immutable artifact to Alpha.13
  • recognize the exact Rust exit Some(4) representation as the uncorrected ext4 condition
  • retain compatibility with the Python repair helper's exit 4 representation
  • use a narrow parser/helper rather than broad substring matching
  • reject exit 8 and other operational/usage/cancelled/library failures
  • preserve current-boot USB attestation, exact PARTUUID/ext4/label verification, and unmounted-device checks
  • rerun source and exact-image gates
  • keep credentials boot-scoped and miner/configuration fail-closed until state is genuinely ready

Physical acceptance requires state ready, /var/lib/rigos mounted from the verified ext4 state partition, password restoration across reboot, persistent SSH fingerprint, configuration activation, and miner startup.

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions