init: F3 unlock project — ESP32-C3 bridge + procedure for CLAR200 Exos X18
This commit is contained in:
@@ -0,0 +1,64 @@
|
||||
# Handoff — 2026-06-14 — clar200-unlock bootstrap
|
||||
|
||||
## Context
|
||||
|
||||
Started from a `tank` (pve173, 549 TB ZFS) degradation diagnosis. mirror-35 is a
|
||||
3-way mirror running on effectively ONE healthy disk:
|
||||
- `4450364206979169854` (ZL2PNZ99) — **UNAVAIL / dead**
|
||||
- `wwn-0x5000c500c3663b1d-part1` (/dev/sde) — **healthy** (0 pending/realloc)
|
||||
- `wwn-0x5000c500c37f4eff` (/dev/sdg) — **failing**: 30,536 pending sectors,
|
||||
11,032 reallocated, 18 ZFS read errors
|
||||
|
||||
mirror-35 holds **3.68 TB** of real data (25.3% full) — it is a live stripe
|
||||
member, not empty. Plus **ex-mirror-38** (`wwn-0x5000c500c382f4ac-part1`) is a
|
||||
bare single-disk vdev. Both need **14.6 TB+** replacement disks, of which there
|
||||
are **none free** on pve173 (all 14.6 T disks already in tank; spares are 10.9 T,
|
||||
too small).
|
||||
|
||||
Seth re-added an EMC-locked 16 TB drive (SN **ZRS015V7**) hoping to use it. It's
|
||||
the same CLAR200-locked Exos X18 that a prior session failed to unlock. This
|
||||
project is the unlock attempt.
|
||||
|
||||
## What I confirmed this session (re: the drive)
|
||||
|
||||
- Drive is on **pve173**, dual-pathed: `/dev/sg121` (7:0:43:0) and `/dev/sg122`
|
||||
(8:0:11:0), model `SS160520 CLAR200`, fake serial `Maxtor 5A320J0…RAMB1TV0`.
|
||||
- New HBA (pve173 SAS2116, vs pve197 before) → **same lock** ⇒ not the controller.
|
||||
- SCSI **target/bus reset** (`sg_reset -t`) → drive returns in same state.
|
||||
- `sg_senddiag --test` → Illegal request. READ CAPACITY → Hardware Error.
|
||||
- ⇒ Confirmed firmware-level lock below the SCSI layer. No host fix exists.
|
||||
Prior `EMC_CLAR200_DRIVE_FIX_NOTES.md` conclusion stands; I closed the two
|
||||
doors it left open (HBA + reset).
|
||||
|
||||
## What I built
|
||||
|
||||
Project `~/bin/clar200-unlock` + Gitea repo. ESP32-C3 (already on steel141
|
||||
`/dev/ttyACM0`, MAC 58:8c:81:ac:f0:4c) as a 3.3 V USB-serial bridge to the F3
|
||||
terminal. Firmware (`firmware/clar200_bridge.ino`, live `~N` baud menu), flash
|
||||
script, full `PROCEDURE.md`, and `docs/f3-command-reference.md` (honest about
|
||||
Exos-vs-7200.11 uncertainty).
|
||||
|
||||
## Next steps (ordered)
|
||||
|
||||
1. `cd ~/bin/clar200-unlock/firmware && ./flash.sh /dev/ttyACM0` — installs
|
||||
arduino-cli + esp32 core (first run), builds, uploads. **Not done yet.**
|
||||
2. Bench-test bridge: `screen /dev/ttyACM0 115200`, jumper GPIO4↔GPIO5, confirm echo.
|
||||
3. Bench the drive (pull from pve173 JBOD, standalone power). **Needs an
|
||||
SFF-8482→SATA-power adapter / SAS dock — confirm Seth has one.**
|
||||
4. Multimeter the F3 pinout (PROCEDURE §3), wire, get boot banner + `F3 T>`.
|
||||
5. Map format command via `?`, format to 512, verify with `sg_readcap`/`smartctl`.
|
||||
6. If healthy → `zpool replace tank 4450364206979169854 <newdisk>` for mirror-35
|
||||
(replace before detach), then re-mirror ex-mirror-38. Repeat for ZR511KWK.
|
||||
|
||||
## Open questions / decisions pending
|
||||
|
||||
- RMA to ServerPartDeals vs. attempt F3 first? Leaning F3 first (cable free).
|
||||
- Does Seth have standalone SAS power + jumper wires + multimeter on the bench?
|
||||
- tank mirror-35: the dying sdg is still attached as a (poor) 2nd copy — leave it
|
||||
until a real replacement resilvers; **don't detach early.**
|
||||
|
||||
## Also worth doing
|
||||
|
||||
Minor CKSUM counts on mirror-10/18/19/20/30; no scrub since the tank migration.
|
||||
Worth a `zpool scrub tank` AFTER mirror-35 is on healthy disks (not before — a
|
||||
scrub hammers the dying sdg).
|
||||
Reference in New Issue
Block a user