* choose ESP matching the primary data disk when multiple ESPs exist,
falling back gracefully for single-disk layouts
* keep new helper to normalize device names and reuse the idempotent
mount logic
* apply cargo fmt across the tree
- Orchestrator:
- Add mutually exclusive modes: --mount-existing, --report-current, --apply
- Wire mount-existing/report-current flows and JSON summaries
- Reuse mount planning/application; never mount ESP
- Context builders for new flags
(see: src/orchestrator/run.rs:1)
- CLI:
- Add --mount-existing and --report-current flags
- Keep -t/--topology (ValueEnum) as before
(see: src/cli/args.rs:1)
- FS:
- Implement probe_existing_filesystems() using blkid to detect ZOSDATA/ZOSBOOT and dedupe by UUID
(see: src/fs/plan.rs:1)
- Config loader:
- Precedence now: CLI flags > kernel cmdline (zosstorage.topo) > built-in defaults
- Read kernel cmdline topology only if CLI didn’t set -t/--topology
- Default topology set to DualIndependent
- Do not read /etc config by default in initramfs
(see: src/config/loader.rs:1)
- Main:
- Wire new Context builder flags
(see: src/main.rs:1)
Rationale:
- Enables running from in-kernel initramfs with no config file
- Topology can be selected via kernel cmdline (zosstorage.topo) or CLI; CLI has priority