Completed systems case study

Recovery.

Rebuilding a failed Linux control environment from host to runtime.

A virtualized control-system environment could no longer be trusted. I rebuilt the host, restored its PostgreSQL data, repaired permission and networking failures, validated the application pipeline, and documented the process as I went.

ROLESystems recovery & validation

OSRocky Linux / RHEL family

DATAPostgreSQL · SQL · filesystem

FOCUSRoot cause · recovery · handoff

01 · The situation

The application was not one broken component. It was a broken chain.

The system depended on a specific Linux account model, application configuration, PostgreSQL database, generated files, network layout, and runtime sequence. Restoring only the virtual machine or only the database would not make it operational.

The recovery therefore followed the dependency chain instead of treating each error as an isolated incident.

02 · Failure path

Host, data, permissions, runtime.

Each layer had to be correct before the next layer could be meaningfully tested. That order kept later failures from hiding earlier causes.

FOUNDATION

Linux host

Accounts, groups, storage layout, virtual hardware, and application configuration.

STATE

Database & files

Restored SQL data, generated outputs, ownership, and targeted ACL boundaries.

PROOF

Build to runtime

Build, conversion, load, network, and application behavior validated in sequence.

03 · Recovery work

Four layers, one controlled rebuild.

The work stayed narrow at every step: identify the exact boundary, correct it, rerun the failing stage, and retain the evidence before moving forward.

01

Rebuild the host

Recreated the Rocky Linux virtual machine, restored the application account structure, and re-established the expected runtime layout.

02

Restore the data

Identified the database backup as plain SQL, restored it with the correct PostgreSQL workflow, and rebuilt the application's generated data.

03

Repair permissions

Traced conversion failures to a write boundary and applied targeted ownership and ACL changes instead of broadening access across the system.

04

Recover connectivity

Preserved the isolated control network while adding a separate route for normal package and support access, then validated both paths.

04 · Verification

The recovery was proven at the application boundary.

A booting VM was not the finish line. Success meant the application could consume the restored data, produce required files, load its runtime state, and remain supportable afterward.

Database
Schema and project records restored from the available SQL backup.
Build path
Application build, conversion, load, and runtime stages completed in order.
Access
The runtime account could write required outputs without unnecessary global permissions.
Network
Control traffic stayed isolated while standard support connectivity was recovered.
Handoff
The full procedure, failures, evidence, and recovery sequence were documented.

Completed outcome

A functioning environment and a repeatable recovery path.

The system returned to an operational state with its data, generated artifacts, network boundaries, and runtime workflow intact. The recovery steps were captured so the next rebuild starts with a procedure instead of another investigation.

  • Rocky Linux
  • PostgreSQL
  • SQL restore
  • ACLs
  • Networking
  • VirtualBox
  • Validation
  • Documentation
Sanitized case study

Customer names, file paths, network addresses, signal names, and proprietary control details are intentionally omitted. The troubleshooting method and technical boundaries are preserved.

The larger takeaway

I can recover unfamiliar systems without pretending the layers are separate.

Discuss the work View résuméView all selected work