Files
doc/nas
Julien LutranandClaude Opus 5 81d22c5daf nas+nuc: cold boot verified; record what clearing the metadata errors took
Both hosts were powered off and brought back from a cold start, which is
the first real test of everything built on 2026-08-30.

nas: both pools imported from /etc/zfs/zpool.cache, all instances
autostarted, NFS exports republished, 0 failed units. nuc: /dev/dri
present with 0 i915 warnings (booted with the display unplugged), NFS
auto-remounted, VAAPI transcode at 9.5x realtime.

Records the ordering that actually cleared tank's inherited
<metadata>:<0x0> and <0x3d>: a scrub alone found 0 errors and repaired 0B
but left them, and a plain `zpool clear` afterwards did not drop them —
ZFS flushes the persistent error log on a scrub run *after* the clear.
That matters beyond tidiness, because while those entries stand
`zpool status -x` reports the pool unhealthy forever and zpool-health.sh
cannot signal anything new.

Two kiosk corrections, both from observed behaviour:

- the Pioneer DAC being switched off is the most likely cause of
  "video, no sound" — asound.conf pins the ALSA default to it by card
  name, so `default` fails to open outright and mpv falls back to null
  silently. Adds the one-line aplay check.
- hotplugging the display makes cage exit once and Restart=on-failure
  recovers it ~5s later. Do NOT restart it by hand; check
  ActiveEnterTimestamp against the hotplug time first.

Also flags that the OS mirror is still untested with a disk physically
unplugged — it is a guess until then.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-08-31 10:16:44 +02:00
..

Storage: nas

Storage + backup host on the LAN, added 2026-08.

  • Always-on host. nuc is now an on-demand media box (see nuc/README.md), so everything that must stay up — LAN DNS, the HTTP proxy, torrents — lives here.
  • Debian 13, Supermicro A1SAi-2750F / Intel Atom C2750 (8 c, 20 W, ECC DDR3) — build procedure: nas-install.md
  • SSH: ssh -i id_rsa_claude root@192.168.0.4
  • No iGPU (Avoton is headless; video is the AST2400 BMC). Anything needing hardware transcoding stays on nuc.
  • Pools:
    • incus — ZFS mirror across the last partition of both 120 GB SSDs; holds this host's container roots. OS itself is on mdraid RAID1 + ext4 across the same disks (rationale in nas-install.md §2).
    • tank — the 4 TB WD Red, on direct SATA. This is the whole point of the box: the disk used to hang off a JMicron USB bridge on nuc that suspended the pool 61 times in 30 days (nuc/usb4t-dropouts.md). Single vdev, accepted — nothing on it is irreplaceable.
  • tank/media/export/media: the media library. Exported read-only over NFSv4 to nuc, where jellyfin-server reads it; written locally only by transmission-bt.
  • Backups: nuc ↔ nas cross-replication (each host's instances live on the other), plus the ks4 pull leg — nas-install.md §9, ks2/nas-seed.md.

Instances

Name IP Doc Features
blocky 192.168.0.254 unprivileged, autostart; DNS ad-blocker for the LAN. Moved from nuc 2026-08-30 so it survives nuc being powered off
privoxy 192.168.0.11 unprivileged, autostart; filtering HTTP proxy, listens on :3128 (not privoxy's default 8118); static config in /etc/systemd/network/eth0.network, DNS=192.168.0.254. Moved from nuc 2026-08-30
transmission-bt 192.168.0.7 unprivileged, autostart; always-on WireGuard full tunnel → ks4 (egress = 193.70.35.17, kill switch: no default route); /export/media disk device (shift=true), downloads to /media/downloads; web UI :9091 (LAN only). Moved from nuc 2026-08-30

Backup pools hosted here

incus pool dataset receives
nucbackup tank/backup/nuc nuc's instances (pushed nightly, 03:30)
ks4backup tank/backup/ks4 ks4's instances (pulled over WG, 05:00 — after FTTH)
nasbackup tank/backup/nas nas's own instances (local copy, 04:00)

nas's own instances are replicated locally rather than to nuc: nuc is an on-demand box and usually powered off, so it is not a usable backup target. nasbackup lives on tank, a different pool from the incus SSD mirror the instances run on.