Files

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 / 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).