Finn BIOS Trip + Power-Loss Drill, Handoff for Vector¶
URL: https://mkdocs.justinsforge.com/memory/handoffs/finn-bios-trip-2026-04-30/
Audience: Justin running this from Vector (Windows PC) with a Claude Code session in remote-control. The forge resilience stack is fully shipped on Console — every reboot test passed in the dress rehearsal. This trip closes the loop with the BIOS settings that make the auto-recovery actually fire on real power loss.
What you're doing¶
Two physical BIOS changes on Finn (the MS-01) that can't be done from software because the BMC LAN isn't configured yet:
- Set "State After G3" to S0 (auto-power-on after AC loss). This is the whole reason for the trip.
- Configure BMC LAN so future BIOS changes can be done remotely.
Then run stage 6: pull the Tapo plug to validate the BIOS policy actually fires.
Pre-flight (do this on Console BEFORE you walk to Finn)¶
-
Save active sessions so they auto-resume after the reboot:
Should printSaved N session(s). -
Confirm fleet probe is 18/18 green as a clean baseline:
-
Tell whichever Claude session you're in that you're going dark so it doesn't try to start anything mid-flight.
At the box: Enter BIOS¶
- Plug a USB keyboard + monitor into Finn (or use the IPMI/BMC port if you have a way to access it pre-config).
- Power cycle: tap Delete (or F2) repeatedly during POST until InsydeH2O BIOS comes up.
- The screens below are based on MS-01 firmware 1.27. Layout may shift slightly between firmware revs — search by setting name if a path is off.
BIOS settings to change¶
1. State After G3 (the critical one)¶
| Path | Setting | Change to |
|---|---|---|
| Advanced → Power & Performance (or Chipset → PCH-IO Configuration on some firmwares) | State After G3 (sometimes "AC Power Loss" or "Restore AC Power Loss") | S0 (always power on) |
Don't pick "Last State" — if Finn was powered off when AC dies, it stays off. S0 means "always come back on, regardless of prior state."
2. Quality-of-life settings, while you're here¶
| Path | Setting | Change to | Why |
|---|---|---|---|
| Boot menu | Quiet Boot | Disabled | If POST hangs in the future, you see the error instead of a black screen. |
| Advanced → POST behavior | Halt on Errors / "Wait for F1" | Disabled / "no halt" | Some firmwares stop boot for a missing keyboard or fan-speed warning. Brutal failure mode for a headless box. |
| Boot menu → Boot order | NVMe first, PXE/Network boot disabled | (already likely set) | Saves 5-30s of boot delay; PXE timeout is a common silent boot delay culprit. |
| Wake | Wake on LAN | Enabled | Belt + suspenders once BMC LAN is up. |
| DO NOT CHANGE | SecureBoot | leave as-is | Flipping mid-reboot can soft-brick PVE boot. |
3. BMC LAN configure¶
| Path | Setting | Set to |
|---|---|---|
| Server Mgmt → BMC Network Configuration | IP Source | Static |
| IP Address | 192.168.86.68 |
|
| Subnet Mask | 255.255.255.0 |
|
| Gateway | 192.168.86.1 |
|
| Configure Mode (or "BMC LAN Selection") | Dedicated (use the dedicated BMC NIC, not the OS-shared one) | |
| Server Mgmt → BMC User Settings | Set admin password (default is often admin/admin) |
use NordPass-generated password, save it under "Finn BMC" entry |
Plug an Ethernet cable into the dedicated BMC NIC (separate physical port from the regular NICs).
4. Save and exit¶
F10 → Save Changes and Reset.
Finn boots up. Forge resilience stack handles the rest:
- All 6 prod CTs auto-start in tier order (adguard → plex/media → immich/frigate → n8n + Console)
- Console boots, fires forge-boot-notify → you get a Telegram ping with kernel + uptime + fleet probe
- forge-post-boot-sessions spawns recap + blank Opus sessions on the homebase tmux socket, with up to 2 additional sessions resumed from ~/.forge-last-session
Verify before walking back to your desk¶
- Check Telegram for the boot-notify message from
@forge_notify_outbound_bot. Should show "Fleet probe: 18/18 green" within ~6 minutes of the BIOS save. - Test BMC LAN from Console via Tailscale: Should report "System Power: on" without errors.
Stage 6: The real test, pull the Tapo plug¶
- Open the Tapo app. Find the Finn smart plug.
- Pull the Tapo plug, OR toggle "Off" in the app, OR just unplug Finn from the wall.
- Wait 30 seconds.
- Power back on (re-toggle Tapo or replug).
- Watch:
- Telegram boot-notify should fire within ~6-7 min.
- Run
forge_fleet_probe.shfrom any Claude session, expect 18/18. - Verify recap session in claude.ai/code shows the conversation history.
If boot-notify never fires after 10 min, the BIOS setting didn't take. Try option 5 fallback below.
If something goes wrong¶
| Symptom | Likely cause | Fix |
|---|---|---|
| Finn doesn't boot after BIOS save | "State After G3" still set wrong, OR the BMC LAN config conflicted | Press power button manually. Re-enter BIOS, double-check S0. |
| Boot notify never arrives | Console not booting, OR network issue | SSH to finn from Console, check pct status 103 (Console VM). If running, SSH to Console (Tailscale 100.97.43.104). |
| Fleet probe shows reds after stage 6 | One CT slow to start, OR one service genuinely broken | Wait 5 min, retry. If still red, pct status <id> on the failing CT. |
| Resume session is wrong/missing | ~/.forge-last-session was stale (>6h old) |
Use /resume skill to find specific session by UUID/URL/fuzzy. |
How Vector should reach Claude Code for this trip¶
If you're using Vector during the trip, you have two ways to keep a Claude session live:
- claude.ai/code from Vector's browser — find session
finn-reboot-resume_Opus47(or whatever the active drill session is named) and resume. Full conversation history present. - Spawn a fresh Vector-side Opus session — via remote-control tab in claude.ai/code, then point it at this handoff: tell it "read
forge/memory/handoffs/finn-bios-trip-2026-04-30.mdand walk me through it."
The post-boot recap session will already have a full state report waiting after the BIOS reboot — useful as a sanity check before stage 6.
What's still pending (not blocking this trip)¶
- UPS + NUT integration: real fix for actual wall power loss + forensic clarity next time. Different day.
forge_fleet_update.shorchestrator for apt + docker compose updates across the fleet, with kernel-bump triggering the same drill flow. Build after stage 6 passes.forge-tmux-anchorType=forking + tmux-resurrect (B7 from the recovery handoff).
References¶
- Reboot resilience stack — the five-piece forge stack that makes recovery automatic
- Finn recovery shipped — what was hardened earlier today
- Finn power-loss original report — incident that started this whole chain
- Finn power resilience proposal — full proposal, BMC LAN section is the relevant one for stage 5
[Claude Code]