Skip to content

docs(runbook): the spare needs morpheus's I226 card, not a USB NIC (#92) - #425

Merged
Gerrrt merged 2 commits into
mainfrom
gerrrt/firewall-backup-restore-1cb8e2
Sep 9, 2026
Merged

Gerrrt merged 2 commits into
mainfrom
gerrrt/firewall-backup-restore-1cb8e2

Conversation

@Gerrrt

@Gerrrt Gerrrt commented Sep 9, 2026

Copy link
Copy Markdown
Owner

Part of #92 — preparing the restore rehearsal so it does not stall the day the ProDesk arrives. Does not close the issue; the rehearsal itself is still blocked on the box.

What was wrong

The runbook, the roadmap's shopping list, and the newest comment on #404 all said the spare needs a USB NIC matching morpheus's. morpheus has no USB NIC, read off the box on 2026-09-09:

Device Hardware Carries
em0 onboard Intel I219-LM WAN
igc0 Intel I226-V 2.5 GbE card, M.2 B+M-key adapter, second M.2 slot untagged switch-management LAN + all six VLANs

pciconf shows the I226 on PCIe root port 21; usbconfig lists only the Wi-Fi module's Bluetooth half. The "USB NIC" label came from the footnote in network.md, whose link actually sells the M.2 card. A USB adapter would come up as ure0/axge0 and drop the restore into the interface-assignment dialogue — the exact failure the same-model spare exists to avoid. The card, not the box, is what makes the restore go straight through.

The version the verify prints is not the release. make backup-firewall prints config version 24.6, which is pfSense's config schema (latest_config in globals.inc). The runbook told the reader to install "the same version" as that field, which no installer is labelled with. The release is /etc/version: pfSense CE 2.9.0-RELEASE, build 20260817-1836. 2.9.0's own schema is 24.6, so it is the floor for the current export.

Changes

  • restore-the-firewall.md §3: the interface table above, the release vs schema distinction with the floor, two cables not three, the WAN MAC caveat (nothing in the config pins a MAC, so the ISP lease may not follow), and a Before the box arrives list. Rehearsal step 2 puts the laptop on the card's port — after the restore that is LAN with the anti-lockout rule and the only port the UI answers on.
  • hardware.md: morpheus row records the release; a paragraph on the two NICs; the ordered ProDesk notes it ships with the onboard NIC only.
  • network.md: the footnote names what the link sells.
  • roadmap.md: the shopping-list row is the I226 card, per that section's rule; the Rehearse the firewall restore on trinity #92 entry records the finding.

Verified

  • Nightly copy healthy: 29 exports on oracle, --verify-only says the newest decrypts here and is byte-identical there, last timer run homelab_job_last_exit_code 0.
  • scripts/lint.sh passes (markdownlint, yamllint, editorconfig).

No config, script or rule changes. Nothing to deploy.

🤖 Generated with Claude Code

Preparing the restore rehearsal, by reading morpheus rather than the
documents, found two things that would have stalled it on day one.

The runbook, an issue comment on #92, the newest comment on #404 and the
roadmap's shopping list all said the spare needs a USB NIC "the same
chipset as morpheus's". morpheus has no USB NIC. Its two interfaces are
the onboard Intel I219-LM (em0, the WAN) and an Intel I226-V 2.5 GbE card
on an M.2 B+M-key adapter in the G4's second M.2 slot (igc0, the untagged
switch-management LAN and every VLAN). pciconf puts it on a PCIe root
port; the only USB device is the Wi-Fi module's Bluetooth half. The label
came from network.md's footnote, which called the M.2 card a "USB NIC
adapter" — the link itself sells the M.2 card. A USB adapter would come
up as ure0 or axge0 and put the restore into the interface-assignment
dialogue the same-model rule exists to avoid; the card is the part that
makes the restore go straight through.

And the version `make backup-firewall` prints on every verify (24.6) is
pfSense's config schema, not its release. The runbook told the reader to
install the same version as that field, which no installer is labelled
with. The release is /etc/version on the box — pfSense CE 2.9.0-RELEASE,
build 20260817-1836 — and is now recorded in hardware.md for the day
morpheus cannot be asked; 2.9.0's own schema is 24.6, so it is the floor.

Runbook §3 carries the interface table, the cabling (two cables, not
three), the WAN MAC caveat (nothing in the config pins one), and a
"before the box arrives" list; the rehearsal steps put the laptop on the
card's port, which is the only one the UI can be reached on after the
restore. The shopping list row names the card. The nightly copy was
verified as part of this: 29 exports on oracle, newest byte-identical,
last timer run exit 0.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
… lives in prose with its date

check_docs.py rejects a point release in the Compute table's OS column,
because it goes stale on the next update the host takes and nothing here
would notice. It also cannot be read from node_os_info for morpheus,
since pfSense runs no exporter — so the release is recorded in the
paragraph beside the table, dated, which is what the restore runbook
sends the reader to.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
@Gerrrt
Gerrrt merged commit f108050 into main Sep 9, 2026
3 checks passed
@Gerrrt
Gerrrt deleted the gerrrt/firewall-backup-restore-1cb8e2 branch September 9, 2026 23:29
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant