3.2 KiB
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 / deadwwn-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), modelSS160520 CLAR200, fake serialMaxtor 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.mdconclusion 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)
cd ~/bin/clar200-unlock/firmware && ./flash.sh /dev/ttyACM0— installs arduino-cli + esp32 core (first run), builds, uploads. Not done yet.- Bench-test bridge:
screen /dev/ttyACM0 115200, jumper GPIO4↔GPIO5, confirm echo. - Bench the drive (pull from pve173 JBOD, standalone power). Needs an SFF-8482→SATA-power adapter / SAS dock — confirm Seth has one.
- Multimeter the F3 pinout (PROCEDURE §3), wire, get boot banner +
F3 T>. - Map format command via
?, format to 512, verify withsg_readcap/smartctl. - 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).